-
- Announcing ncurses 5.4
+ Announcing ncurses 5.5
The ncurses (new curses) library is a free software emulation of
curses in System V Release 4.0, and more. It uses terminfo format,
enhancements over BSD curses.
In mid-June 1995, the maintainer of 4.4BSD curses declared that he
- considered 4.4BSD curses obsolete, and is encouraging the keepers of
- Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
- ncurses.
+ considered 4.4BSD curses obsolete, and encouraged the keepers of Unix
+ releases such as BSD/OS, FreeBSD and NetBSD to switch over to ncurses.
The ncurses code was developed under GNU/Linux. It has been in use for
some time with OpenBSD as the system curses library, and on FreeBSD
Release Notes
- This release is designed to be upward compatible from ncurses 5.0 and
- 5.3; very few applications will require recompilation, depending on
- the platform. These are the highlights from the change-log since
- ncurses 5.3 release.
+ This release is designed to be upward compatible from ncurses 5.0
+ through 5.4; very few applications will require recompilation,
+ depending on the platform. These are the highlights from the
+ change-log since ncurses 5.4 release.
Interface changes:
- * add the remaining functions for X/Open curses wide-character
- support.
- + pecho_wchar()
- + slk_wset()
- These are only available if the library is configured using the
- --enable-widec option.
- * write getyx() and related 2-return macros in terms of getcury(),
- getcurx(), etc.
- * simplify ifdef for bool declaration in curses.h
- * modify ifdef's in curses.h that disabled use of __attribute__()
- for g++, since recent versions implement the cases which ncurses
- uses.
- * add key_defined() function, to tell which keycode a string is
- bound to.
+ * terminfo installs "xterm-new" as "xterm" entry rather than
+ "xterm-old" (aka xterm-r6).
+ * terminfo data is installed using the tic -x option (few systems
+ still use ncurses 4.2).
+ * modify C++ binding to work with newer C++ compilers by providing
+ initializers and using modern casts. Old-style header names are
+ still used in this release to allow compiling with not-so-old
+ compilers.
+ * modify parameter type in c++ binding for insch() and mvwinsch() to
+ be consistent with underlying ncurses library (was char, is
+ chtype).
+ * change NCursesWindow::err_handler() to a virtual function.
+ * form and menu libraries now work with wide-character data.
+ Applications which bypassed the form library and manipulated the
+ FIELD.buf data directly will not work properly with libformw,
+ since that no longer points to an array of char. The
+ set_field_buffer() and field_buffer() functions translate to/from
+ the actual field data.
+ * add symbol to curses.h which can be used to suppress include of
+ stdbool.h, e.g.,
+ #define NCURSES_ENABLE_STDBOOL_H 0
+ #include <curses.h>
+
+ * change SP->_current_attr to a pointer, adjust ifdef's to ensure
+ that libtinfo.so and libtinfow.so have the same ABI. The reason
+ for this is that the corresponding data which belongs to the
+ upper-level ncurses library has a different size in each model.
+ * winnstr() now returns multibyte character strings for the
+ wide-character configuration.
+ * assume_default_colors() no longer requires that
+ use_default_colors() be called first.
+ * data_ahead() now works with wide-characters.
+ * slk_set() and slk_wset() now accept and store multibyte or
+ multicolumn characters.
+ * start_color() now returns OK if colors have already been started.
+ start_color() also returns ERR if it cannot allocate memory.
+ * pair_content() now returns -1 for consistency with init_pair() if
+ it corresponds to the default-color.
+ * unctrl() now returns null if its parameter does not correspond to
+ an unsigned char.
New features and improvements:
* library
- + implement logic in lib_mouse.c to handle position reports
- which are generated when XFree86 xterm is initialized with
- private modes 1002 or 1003. These are returned to the
- application as the REPORT_MOUSE_POSITION mask, which was not
- implemented.
- + modify soft-key initialization to use A_REVERSE if A_STANDOUT
- would not be shown when colors are used, i.e., if ncv#1 is
- set in the terminfo as is done in "screen".
- + add configure option for FreeBSD sysmouse, --with-sysmouse,
- and implement library support for that.
+ + environment variable NCURSES_NO_UTF8_ACS supports
+ miscellaneous terminal emulators which ignore alternate
+ character set escape sequences when in UTF-8 mode.
+ + modify initialization of key lookup table so that if an
+ extended capability (tic -x) string is defined, and its name
+ begins with 'k', ncurses will automatically treat it as a
+ key.
+ + change GPM initialization, using dl library to load it
+ dynamically at runtime.
+ + form, menu and panel libraries support debug-tracing.
+ * add NCURSES-Programming-HOWTO.html by Pradeep Padala (see
+ http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
* programs:
- + tack:
- o allow it to run from fallback terminfo data.
- o reset colors after each color test, correct a place
- where exit_standout_mode was used instead of
- exit_attribute_mode.
- o improve bce test by making it set colors other than
- black on white.
- + tic:
- o handle a case where an entry has no description, and
- capabilities begin on the same line as the entry name.
- o allow a terminfo entry with a leading 2-character name.
- o improved warnings when suppressing items to fit in
- termcap's 1023-byte limit.
- o add check for multiple "tc=" clauses in a termcap.
- o correct logic for resolving "use=" clauses allow infocmp
- and tic to show cancelled capabilities.
- o check for incomplete line-drawing character mapping.
- o check for missing/empty/illegal terminfo name.
- + tput:
- o modify tput to use the same parameter analysis as
- tparm() does, to provide for user-defined strings, e.g.,
- for xterm title, a corresponding capability might be
- title=\E]2;%p1%s^G,
- + tset:
- o use the system's default values for CKILL and other
- default control characters.
- o correct interchanged defaults for kill and interrupt
- characters, which caused it to report unnecessarily.
+ * infocmp:
+ + The -i option now matches 8-bit controls against its table
+ entries, e.g., so it can analyze the xterm-8bit entry.
+ + add "-x" option to infocmp like tic's "-x", for use in "-F"
+ comparisons. This modifies infocmp to only report extended
+ capabilities if the -x option is given, making this more
+ consistent with tic. Some scripts may break, since infocmp
+ previous gave this information without an option.
+ * tic:
+ + modify termcap-parsing to retain 2-character aliases at the
+ beginning of an entry if the "-x" option is used in tic.
+ + filter out long extended names when translating to termcap
+ format. Only two characters are permissible for termcap
+ capability names.
+ + correct translation of "%%" in terminfo format to termcap,
+ e.g., using "tic -C".
+ + modify the "-c -v" options to ignore delays when comparing
+ strings. Also modify it to ignore a canceled sgr string,
+ e.g., for terminals which cannot properly combine attributes
+ in one control sequence.
+ + add a check for improperly ended strings, i.e., where a
+ following line begins in column 1.
+ + add a check in tic for terminfo entries having an sgr0 but no
+ sgr string. This confuses Tru64 and HPUX curses when combined
+ with color, e.g., making them leave line-drawing characters
+ in odd places.
+ + add check (with debug configuration) that provides about the
+ runtime changes that would be made to sgr0 for termcap
+ applications.
+ * tset:
+ + add -c and -w options to allow user to suppress ncurses'
+ resizing of the terminal emulator window in the special case
+ where it is not able to detect the true size.
Major bug fixes:
- * prevent recursion in wgetch() via wgetnstr() if the connection
- cannot be switched between cooked/raw modes because it is not a
- TTY.
- * correct a case in _nc_remove_string(), used by define_key(), to
- avoid infinite loop if the given string happens to be a substring
- of other strings which are assigned to keys.
- * modify logic of acsc to use the original character if no mapping
- is defined, rather than a null.
- * several improvements for handling multi-cell display of wide
- characters.
- + modify setcchar() to allow converting control characters to
- complex characters.
- + correct handling of multibyte characters in waddch_literal()
- which force wrapping because they are started too late on the
- line.
- + modify setcchar() to allow for wchar_t input strings that
- have more than one spacing character.
- * other fixes for wide-character support:
- + rewrote lib_acs.c to allow PutAttrChar() to decide how to
- render alternate-characters, i.e., to work with Linux console
- and UTF-8 locale.
- + implement a workaround so that line-drawing works with
- screen's crippled UTF-8 support (tested with 3.9.13). This
- only works with the wide-character support (--enable-widec);
- the normal library will simply suppress line-drawing when
- running in a UTF-8 locale in screen.
- + corrections to lib_get_wstr.c:
- o null-terminate buffer passed to setcchar(), which
- occasionally failed.
- o map special characters such as erase- and
- kill-characters into key-codes so those will work as
- expected even if they are not mentioned in the terminfo.
- * modify setupterm() to check if the terminfo and terminal-modes
- have already been read. This ensures that it does not reinvoke
- def_prog_mode() when an application calls more than one function,
- such as tgetent() and initscr().
- * fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL,
- REQ_DEL_CHAR, REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure
- the cursor was at the editing position before making
- modifications.
- * correct keybound(), which reported definitions in the wrong table,
- i.e., the list of definitions which are disabled by keyok().
- * fixes related to safe_sprintf.c:
- + correct an allocation size in safe_sprintf.c for the "*"
- format code.
- + correct safe_sprintf.c to not return a null pointer if the
- format happens to be an empty string.
- + make return value from _nc_printf_string() consistent.
- Before, depending on whether --enable-safe-sprintf was used,
- it might not be cached for reallocating.
- * other low-level improvements to the optimization code include:
- + if the output is a socket or other non-tty device, use 1
- millisecond for the cost in mvcur; previously it was 9
- milliseconds because the baudrate was not known.
- + modify lib_getch.c to avoid recursion via wgetnstr() when the
- input is not a tty and consequently mode-changes do not work.
- + fix several places in tack/pad.c which tested and used the
- parameter- and parameterless strings inconsistently.
- + change several tputs() calls in scrolling code to use putp(),
- to enable padding which may be needed for some terminals.
- + improve mvcur() by checking if it is safe to move when video
- attributes are set (msgr), and if not, reset/restore
- attributes within that function rather than doing it
- separately in the GoTo() function in tty_update.c.
- + use tputs() rather than putp() in a few cases in tty_update.c
- since the corresponding delays are proportional to the number
- of lines affected: repeat_char, clr_eos,
- change_scroll_region.
- * correct line/column reference in adjust_window(), needed to make
- special windows such as curscr track properly when resizing.
- * fix a potential recursion between napms() and _nc_timed_wait()
- * rewrote lib_insch.c, combining it with lib_insstr.c so both handle
- tab and other control characters consistently.
- * do not try to open gpm mouse driver if standard output is not a
- tty; the gpm library does not make this check.
+ * improve logic in tgetent() which adjusts the termcap "me" string
+ to work with ISO-2022 string used in xterm-new. This is a feature
+ that was incompletely implemented in ncurses 5.3. ncurses attempts
+ to provide termcap clients with the portion of the sgr0 (termcap
+ "me") string that does not reset line-drawing.
+ * cells in the WINDOW which are continuations of a multicolumn
+ character are encoded differently, making repainting more
+ reliable.
+ * amend change to setupterm() in ncurses 5.4 (20030405) which would
+ reuse the value of cur_term if the same output was selected. This
+ now reuses it only when setupterm() is called from tgetent(),
+ which has no notion of separate SCREENs. Note that tgetent() must
+ be called after initscr() or newterm() to use this feature.
+ * make setcchar() now works when its wchar_t* parameter is pointing
+ to a string which contains more data than can be converted.
+ * win_wchnstr() now works for more than one cell.
+ * resizeterm() now processes all levels of window hierarchy.
+ * disable GPM mouse support when $TERM happens to be prefixed with
+ "xterm". Gpm_Open() would otherwise assert that it can deal with
+ mouse events in this case.
+ * add SP->_screen_acs_map[], used to ensure that mapping of missing
+ line-drawing characters is handled properly. For example,
+ ACS_DARROW is absent from xterm-new, and it was coincidentally
+ displayed the same as ACS_BTEE.
Portability:
* configure script:
+ new options:
- --with-abi-version option.
- addresses platforms where packagers have diverged
- from ncurses ABI numbering.
-
- --with-manpage-format=catonly
- addresses behavior of BSDI, allow install of
- man+cat files on NetBSD, whose behavior has
- diverged by requiring both to be present.
-
- --with-manpage-aliases
- extends "--with-manpage-aliases" to provide the
- option of generating ".so" files rather than
- symbolic links for manpage aliases.
-
- --with-rel-version
- workaround to force libtool on Darwin generate the
- "same" library names as with the "--with-shared"
- option. The Darwin ld program does not work well
- with a zero as the minor-version value.
-
- --with-trace
- simplifies defining TRACE to incorporate trace() in
- libraries.
-
+ --enable-largefile
+ set compiler and linker flags to use largefile
+ support.
+
+ --enable-ext-colors
+ Allow encoding of 256 foreground and background
+ colors, e.g., with the xterm-256color or
+ xterm-88color terminfo entries. This requires ABI 6
+ because it changes the size of cchar_t.
+
+ --enable-ext-mouse
+ This defines NCURSES_MOUSE_VERSION 2, and modifies
+ the encoding of mouse events to support wheel mice,
+ which may transmit buttons 4 and 5. This works with
+ xterm and similar terminal emulators. This requires
+ ABI 6 because it changes the encoding of mouse
+ events.
+
+ --with-chtype
+ overriding of the non-LP64 model's use of chtype
+
+ --with-mmask-t
+ overriding of the non-LP64 model's use of mmask_t
+
+ --without-xterm-new
+ Installs "xterm-old" as the "xterm" entry of the
+ terminfo database.
+
+ + The --with-termlib option now accepts a value which sets the
+ name of the terminfo library. This would allow a packager to
+ build libtinfow.so renamed to coincide with libtinfo.so
+ fixes/improvements for cross-compiling:
- o allow BUILD_CC and related configure script variables to
- be overridden from the environment.
- o use AC_CHECK_TOOL to get proper values for AR and LD for
- cross compiling.
- o use $cross_compiling variable in configure script rather
- than comparing $host_alias and $target alias, since
- "host" is traditionally misused in autoconf to refer to
- the target platform.
- o modify run_tic.in to avoid using wrong shared libraries
- when cross-compiling.
- + fixes for Mac OS X:
- o fix a redefinition of $RANLIB in the configure script
- when libtool is used.
- o modify MKlib_gen.sh to avoid passing "#" tokens through
- the C preprocessor. This works around Mac OS X's
- preprocessor, which insists on adding a blank on each
- side of the token.
- + workarounds for broken tools:
- o add configure check for wchar_t and wint_t types, rather
- than rely on preprocessor definitions. Also work around
- for gcc fixinclude bug which creates a shadow copy of
- curses.h if it sees these symbols apparently typedef'd.
- o modify configure script to omit -Winline for gcc 3.3,
- since that feature is broken.
- o several script fixes to work around the ironically named
- POSIXLY_CORRECT feature of GNU sed 4.0.
- o modify configure script to avoid using "head -1", which
- does not work if POSIXLY_CORRECT (sic) is set.
- o update configure script to reflect fix for
- AC_PROG_GCC_TRADITIONAL, which is broken in autoconf
- 2.5x for Mac OS X 10.2.3.
- o repair check for missing C++ compiler, which is broken
- in autoconf 2.5x by hardcoding it to g++.
- + corrected ifdef's relating to configure check for wchar_t,
- etc.
- + remove configure script check to allow -Wconversion for older
- versions of gcc
- + modify configure script to accommodate libtool 1.5, as well
- as add an parameter to the "--with-libtool" option which can
- specify the pathname of libtool.
- + change several sed scripts to avoid using "\+" since it is
- not a BRE (basic regular expression). One instance caused
- terminfo.5 to be misformatted on FreeBSD.
- + use '%' as sed substitute delimiter in run_tic script to
- avoid problems with pathname delimiters such as ':' and '@'.
- + add -D_XOPEN_SOURCE=500 if needed when configuring with
- "--enable-widec", to get mbstate_t declaration on HPUX 11.11.
+ o suppress $suffix in misc/run_tic.sh when
+ cross-compiling. This allows cross-compiles to use the
+ host's tic program to handle the "make install.data"
+ step.
+ o correct BUILD_CPPFLAGS substitution in
+ ncurses/Makefile.in, to allow cross-compiling from a
+ separate directory tree.
* library:
- + adjust include-options in CF_ETIP_DEFINES to avoid missing
- ncurses_dll.h, fixing special definitions that may be needed
- for etip.h.
- + modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use
- a ".so" suffix.
- + improve ifdef's to guard against redefinition of wchar_t and
- wint_t in curses.h.
- + remove an #undef for KEY_EVENT from curses.tail used in the
- experimental NCURSES_WGETCH_EVENTS feature. The #undef
- confuses Debian dpkg's build script.
+ + add ifdef's for _LP64 in curses.h to avoid using wasteful
+ 64-bits for chtype and mmask_t, but add configure option
+ --disable-lp64 in case anyone used that configuration.
+ + modify C++ binding to use some C internal functions to make
+ it compile properly on Solaris (and other platforms).
+ + remove check in newwin() that prevents allocating windows
+ that extend beyond the screen (Solaris does this).
+ + check for nl_langinfo(CODESET), use it if available. This
+ replaces ad hoc tests of environment variables to check if
+ the terminal is setup for UTF-8 encoding. Applications which
+ do not call setlocale() should be corrected, to make them
+ work properly with UTF-8 encoding.
+ In particular, applications which assume (and do not call
+ setlocale()) that Latin-1 codes are printable will no longer
+ work in a UTF-8 locale since the ad hoc check of environment
+ variables to see if the locale was UTF-8 is not used when
+ nl_langinfo(CODESET) is available.
+ + use setlocale() to query the program's current locale rather
+ than using getenv(). This supports applications which rely
+ upon legacy treatment of 8-bit characters when the locale is
+ not initialized.
Features of Ncurses
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
#
# Author: Juergen Pfeifer, 1996
#
-# Version Control
-# $Revision: 1.44 $
+# $Id: Makefile.in,v 1.49 2005/05/14 13:57:14 tom Exp $
#
.SUFFIXES:
CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
LINK = $(HOST_CC)
-LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS)
+LD_FLAGS = @LD_MODEL@ $(LOCAL_LIBS) @LDFLAGS@ @LIBS@ @LOCAL_LDFLAGS2@ $(LDFLAGS) @TINFO_ARGS2@
RANLIB = @RANLIB@
-LIB_CURSES = -L../../lib -lncurses@LIB_SUFFIX@
-
M4 = m4
M4FLAGS =
all \
libs : $(GEN_TARGETS)
- @
+ @echo made $@
sources:
-@cd $(ADA_OBJECTS) && rm -f $(ALIB)[-.]*
gen$x: gen.o
- @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ $(LIB_CURSES)
+ @ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@
gen.o: $(srcdir)/gen.c
$(HOST_CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
@rm -f instab.tmp
adahtml:
- @rm -rf $(HTML_DIR)/
+ @find $(HTML_DIR) -type f -exec rm -f {} \;
@mkdir -p $(HTML_DIR)
cp -p ../src/*.ad[sb] . && chmod +w *.ad[sb]
ln -sf ../src/*.ali .
@rm -rf html
html : adahtml $(HTML_DIR)/table.html
- @
+ @echo made $@
###############################################################################
# The remainder of this file is automatically generated during configuration
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998,2004,2005 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 *
/*
Version Control
- $Revision: 1.36 $
+ $Id: gen.c,v 1.40 2005/01/22 17:03:48 tom Exp $
--------------------------------------------------------------------------*/
/*
This program generates various record structures and constants from the
static const char *model = "";
static int little_endian = 0;
-typedef struct {
- const char *name;
- unsigned long attr;
-} name_attribute_pair;
+typedef struct
+ {
+ const char *name;
+ unsigned long attr;
+ }
+name_attribute_pair;
-static int find_pos (char *s, unsigned len, int *low, int *high)
+static int
+find_pos(char *s, unsigned len, int *low, int *high)
{
- unsigned int i,j;
+ unsigned int i, j;
int l = 0;
*high = -1;
- *low = 8*len;
+ *low = 8 * len;
- for(i=0; i < len; i++,s++)
+ for (i = 0; i < len; i++, s++)
{
if (*s)
{
- for(j=0;j<8*sizeof(char);j++)
+ for (j = 0; j < 8 * sizeof(char); j++)
+
{
- if ((( little_endian && ((*s)&0x01)) ||
- (!little_endian && ((*s)&0x80))) )
+ if (((little_endian && ((*s) & 0x01)) ||
+ (!little_endian && ((*s) & 0x80))))
{
if (l > *high)
*high = l;
* bit size, i.e. they fit into an (u)int or a (u)short.
*/
static void
-gen_reps
-(const name_attribute_pair *nap, /* array of name_attribute_pair records */
- const char *name, /* name of the represented record type */
- int len, /* size of the record in bytes */
- int bias)
+ gen_reps
+ (const name_attribute_pair * nap, /* array of name_attribute_pair records */
+ const char *name, /* name of the represented record type */
+ int len, /* size of the record in bytes */
+ int bias)
{
- int i,n,l,cnt = 0,low,high;
+ int i, n, l, cnt = 0, low, high;
int width = strlen(RES_NAME) + 3;
unsigned long a;
unsigned long mask = 0;
- assert (nap!=NULL);
+ assert(nap != NULL);
- for (i=0; nap[i].name != (char *)0; i++)
+ for (i = 0; nap[i].name != (char *)0; i++)
{
cnt++;
l = strlen(nap[i].name);
- if (l>width)
+ if (l > width)
width = l;
}
- assert (width > 0);
+ assert(width > 0);
- printf(" type %s is\n",name);
+ printf(" type %s is\n", name);
printf(" record\n");
- for (i=0; nap[i].name != (char *)0; i++)
+ for (i = 0; nap[i].name != (char *)0; i++)
{
- printf(" %-*s : Boolean;\n",width,nap[i].name);
+ printf(" %-*s : Boolean;\n", width, nap[i].name);
}
printf(" end record;\n");
- printf(" pragma Pack (%s);\n",name);
- printf(" pragma Convention (C, %s);\n\n",name);
+ printf(" pragma Convention (C, %s);\n\n", name);
- printf(" for %s use\n",name);
+ printf(" for %s use\n", name);
printf(" record\n");
- for (i=0; nap[i].name != (char *)0; i++)
+ for (i = 0; nap[i].name != (char *)0; i++)
{
a = nap[i].attr;
mask |= a;
- l = find_pos( (char *)&a,sizeof(a),&low,&high );
- if (l>=0)
- printf(" %-*s at 0 range %2d .. %2d;\n",width,nap[i].name,
- low-bias,high-bias);
+ l = find_pos((char *)&a, sizeof(a), &low, &high);
+ if (l >= 0)
+ printf(" %-*s at 0 range %2d .. %2d;\n", width, nap[i].name,
+ low - bias, high - bias);
}
- i = 1; n = cnt;
+ i = 1;
+ n = cnt;
printf(" end record;\n");
- printf(" for %s'Size use %d;\n", name, 8*len);
+ printf(" for %s'Size use %d;\n", name, 8 * len);
printf(" -- Please note: this rep. clause is generated and may be\n");
printf(" -- different on your system.");
}
-
-static void chtype_rep (const char *name, attr_t mask)
+static void
+chtype_rep(const char *name, attr_t mask)
{
attr_t x = -1;
attr_t t = x & mask;
int low, high;
- int l = find_pos ((char *)&t, sizeof(t), &low, &high);
- if (l>=0)
- printf(" %-5s at 0 range %2d .. %2d;\n",name,low,high);
+ int l = find_pos((char *)&t, sizeof(t), &low, &high);
+
+ if (l >= 0)
+ printf(" %-5s at 0 range %2d .. %2d;\n", name, low, high);
}
-static void gen_chtype_rep(const char *name)
+static void
+gen_chtype_rep(const char *name)
{
- printf(" for %s use\n record\n",name);
- chtype_rep("Ch",A_CHARTEXT);
- chtype_rep("Color",A_COLOR);
- chtype_rep("Attr",(A_ATTRIBUTES&~A_COLOR));
- printf(" end record;\n for %s'Size use %ld;\n", name, (long)(8*sizeof(chtype)));
+ printf(" for %s use\n record\n", name);
+ chtype_rep("Ch", A_CHARTEXT);
+ chtype_rep("Color", A_COLOR);
+ chtype_rep("Attr", (A_ATTRIBUTES & ~A_COLOR));
+ printf(" end record;\n for %s'Size use %ld;\n",
+ name, (long)(8 * sizeof(chtype)));
+
printf(" -- Please note: this rep. clause is generated and may be\n");
printf(" -- different on your system.\n");
}
-
-static void mrep_rep (const char *name, void *rec)
+static void
+mrep_rep(const char *name, void *rec)
{
int low, high;
int l = find_pos((char *)rec, sizeof(MEVENT), &low, &high);
- if (l>=0)
- printf(" %-7s at 0 range %3d .. %3d;\n",name,low,high);
-}
+ if (l >= 0)
+ printf(" %-7s at 0 range %3d .. %3d;\n", name, low, high);
+}
-static void gen_mrep_rep(const char *name)
+static void
+gen_mrep_rep(const char *name)
{
MEVENT x;
- printf(" for %s use\n record\n",name);
+ printf(" for %s use\n record\n", name);
- memset(&x,0,sizeof(x));
+ memset(&x, 0, sizeof(x));
x.id = -1;
- mrep_rep("Id",&x);
+ mrep_rep("Id", &x);
- memset(&x,0,sizeof(x));
+ memset(&x, 0, sizeof(x));
x.x = -1;
- mrep_rep("X",&x);
+ mrep_rep("X", &x);
- memset(&x,0,sizeof(x));
+ memset(&x, 0, sizeof(x));
x.y = -1;
- mrep_rep("Y",&x);
+ mrep_rep("Y", &x);
- memset(&x,0,sizeof(x));
+ memset(&x, 0, sizeof(x));
x.z = -1;
- mrep_rep("Z",&x);
+ mrep_rep("Z", &x);
- memset(&x,0,sizeof(x));
+ memset(&x, 0, sizeof(x));
x.bstate = -1;
- mrep_rep("Bstate",&x);
+ mrep_rep("Bstate", &x);
printf(" end record;\n");
printf(" -- Please note: this rep. clause is generated and may be\n");
printf(" -- different on your system.\n");
}
-static void gen_attr_set( const char *name )
+static void
+gen_attr_set(const char *name)
{
/* All of the A_xxx symbols are defined in ncurses, but not all are nonzero
* if "configure --enable-widec" is specified.
*/
- static const name_attribute_pair nap[] = {
+ static const name_attribute_pair nap[] =
+ {
#if A_STANDOUT
- {"Stand_Out", A_STANDOUT},
+ {"Stand_Out", A_STANDOUT},
#endif
#if A_UNDERLINE
- {"Under_Line", A_UNDERLINE},
+ {"Under_Line", A_UNDERLINE},
#endif
#if A_REVERSE
- {"Reverse_Video", A_REVERSE},
+ {"Reverse_Video", A_REVERSE},
#endif
#if A_BLINK
- {"Blink", A_BLINK},
+ {"Blink", A_BLINK},
#endif
#if A_DIM
- {"Dim_Character", A_DIM},
+ {"Dim_Character", A_DIM},
#endif
#if A_BOLD
- {"Bold_Character", A_BOLD},
+ {"Bold_Character", A_BOLD},
#endif
#if A_ALTCHARSET
{"Alternate_Character_Set", A_ALTCHARSET},
#endif
#if A_INVIS
- {"Invisible_Character", A_INVIS},
+ {"Invisible_Character", A_INVIS},
#endif
#if A_PROTECT
- {"Protected_Character", A_PROTECT},
+ {"Protected_Character", A_PROTECT},
#endif
#if A_HORIZONTAL
- {"Horizontal", A_HORIZONTAL},
+ {"Horizontal", A_HORIZONTAL},
#endif
#if A_LEFT
- {"Left", A_LEFT},
+ {"Left", A_LEFT},
#endif
#if A_LOW
- {"Low", A_LOW},
+ {"Low", A_LOW},
#endif
#if A_RIGHT
- {"Right", A_RIGHT},
+ {"Right", A_RIGHT},
#endif
#if A_TOP
- {"Top", A_TOP},
+ {"Top", A_TOP},
#endif
#if A_VERTICAL
- {"Vertical", A_VERTICAL},
+ {"Vertical", A_VERTICAL},
#endif
- {(char *)0, 0}
+ {(char *)0, 0}
};
chtype attr = A_ATTRIBUTES & ~A_COLOR;
- int start=-1, len=0, i, set;
- for(i=0;i<(int)(8*sizeof(chtype));i++) {
- set = attr&1;
- if (set) {
- if (start<0)
- start = i;
- if (start>=0) {
- len++;
- }
+ int start = -1;
+ int len = 0;
+ int i, set;
+ for (i = 0; i < (int)(8 * sizeof(chtype)); i++)
+
+ {
+ set = attr & 1;
+ if (set)
+ {
+ if (start < 0)
+ start = i;
+ if (start >= 0)
+ {
+ len++;
+ }
+ }
+ attr = attr >> 1;
}
- attr = attr >> 1;
- }
- gen_reps (nap, name, (len+7)/8, little_endian?start:0);
+ gen_reps(nap, name, (len + 7) / 8, little_endian ? start : 0);
}
-static void gen_trace(const char *name)
-{
- static const name_attribute_pair nap[] = {
- {"Times", TRACE_TIMES},
- {"Tputs", TRACE_TPUTS},
- {"Update", TRACE_UPDATE},
- {"Cursor_Move", TRACE_MOVE},
- {"Character_Output", TRACE_CHARPUT},
- {"Calls", TRACE_CALLS},
- {"Virtual_Puts", TRACE_VIRTPUT},
- {"Input_Events", TRACE_IEVENT},
- {"TTY_State", TRACE_BITS},
- {"Internal_Calls", TRACE_ICALLS},
- {"Character_Calls", TRACE_CCALLS},
- {"Termcap_TermInfo", TRACE_DATABASE},
- {(char *)0, 0}
+static void
+gen_trace(const char *name)
+{
+ static const name_attribute_pair nap[] =
+ {
+ {"Times", TRACE_TIMES},
+ {"Tputs", TRACE_TPUTS},
+ {"Update", TRACE_UPDATE},
+ {"Cursor_Move", TRACE_MOVE},
+ {"Character_Output", TRACE_CHARPUT},
+ {"Calls", TRACE_CALLS},
+ {"Virtual_Puts", TRACE_VIRTPUT},
+ {"Input_Events", TRACE_IEVENT},
+ {"TTY_State", TRACE_BITS},
+ {"Internal_Calls", TRACE_ICALLS},
+ {"Character_Calls", TRACE_CCALLS},
+ {"Termcap_TermInfo", TRACE_DATABASE},
+ {(char *)0, 0}
};
- gen_reps(nap,name,sizeof(int),0);
+ gen_reps(nap, name, sizeof(int), 0);
}
-static void gen_menu_opt_rep(const char *name)
+static void
+gen_menu_opt_rep(const char *name)
{
- static const name_attribute_pair nap[] = {
+ static const name_attribute_pair nap[] =
+ {
#ifdef O_ONEVALUE
{"One_Valued", O_ONEVALUE},
#endif
#endif
{(char *)0, 0}
};
- gen_reps (nap, name, sizeof(int),0);
+ gen_reps(nap, name, sizeof(int), 0);
}
-static void gen_item_opt_rep(const char *name)
+static void
+gen_item_opt_rep(const char *name)
{
- static const name_attribute_pair nap[] = {
+ static const name_attribute_pair nap[] =
+ {
#ifdef O_SELECTABLE
{"Selectable", O_SELECTABLE},
#endif
- {(char *)0 , 0}
+ {(char *)0, 0}
};
- gen_reps (nap, name, sizeof(int),0);
+ gen_reps(nap, name, sizeof(int), 0);
}
-static void gen_form_opt_rep(const char *name)
+static void
+gen_form_opt_rep(const char *name)
{
- static const name_attribute_pair nap[] = {
+ static const name_attribute_pair nap[] =
+ {
#ifdef O_NL_OVERLOAD
{"NL_Overload", O_NL_OVERLOAD},
#endif
#ifdef O_BS_OVERLOAD
{"BS_Overload", O_BS_OVERLOAD},
#endif
- {(char *)0 , 0}
+ {(char *)0, 0}
};
- gen_reps (nap, name, sizeof(int),0);
+ gen_reps(nap, name, sizeof(int), 0);
}
/*
* Generate the representation clause for the Field_Option_Set record
*/
-static void gen_field_opt_rep(const char *name)
+static void
+gen_field_opt_rep(const char *name)
{
- static const name_attribute_pair nap[] = {
+ static const name_attribute_pair nap[] =
+ {
#ifdef O_VISIBLE
- {"Visible",O_VISIBLE},
+ {"Visible", O_VISIBLE},
#endif
#ifdef O_ACTIVE
- {"Active",O_ACTIVE},
+ {"Active", O_ACTIVE},
#endif
#ifdef O_PUBLIC
- {"Public",O_PUBLIC},
+ {"Public", O_PUBLIC},
#endif
#ifdef O_EDIT
- {"Edit",O_EDIT},
+ {"Edit", O_EDIT},
#endif
#ifdef O_WRAP
- {"Wrap",O_WRAP},
+ {"Wrap", O_WRAP},
#endif
#ifdef O_BLANK
- {"Blank",O_BLANK},
+ {"Blank", O_BLANK},
#endif
#ifdef O_AUTOSKIP
- {"Auto_Skip",O_AUTOSKIP},
+ {"Auto_Skip", O_AUTOSKIP},
#endif
#ifdef O_NULLOK
- {"Null_Ok",O_NULLOK},
+ {"Null_Ok", O_NULLOK},
#endif
#ifdef O_PASSOK
- {"Pass_Ok",O_PASSOK},
+ {"Pass_Ok", O_PASSOK},
#endif
#ifdef O_STATIC
- {"Static",O_STATIC},
+ {"Static", O_STATIC},
#endif
{(char *)0, 0}
};
- gen_reps (nap, name, sizeof(int),0);
+ gen_reps(nap, name, sizeof(int), 0);
}
/*
* Generate a single key code constant definition.
*/
-static void keydef(const char *name, const char *old_name, int value, int mode)
+static void
+keydef(const char *name, const char *old_name, int value, int mode)
{
- if (mode==0) /* Generate the new name */
- printf(" %-30s : constant Special_Key_Code := 8#%3o#;\n",name,value);
+ if (mode == 0) /* Generate the new name */
+ printf(" %-30s : constant Special_Key_Code := 8#%3o#;\n", name, value);
else
- { /* generate the old name, but only if it doesn't conflict with the old
- * name (Ada95 isn't case sensitive!)
- */
- const char *s = old_name; const char *t = name;
- while ( *s && *t && (toupper(*s++) == toupper(*t++)));
+ { /* generate the old name, but only if it doesn't conflict with the old
+ * name (Ada95 isn't case sensitive!)
+ */
+ const char *s = old_name;
+ const char *t = name;
+
+ while (*s && *t && (toupper(*s++) == toupper(*t++)));
if (*s || *t)
- printf(" %-16s : Special_Key_Code renames %s;\n",old_name,name);
+ printf(" %-16s : Special_Key_Code renames %s;\n", old_name, name);
}
}
* generated, given that the name wasn't already defined in the "nice"
* list.
*/
-static void gen_keydefs (int mode)
+static void
+gen_keydefs(int mode)
{
char buf[16];
char obuf[16];
int i;
#ifdef KEY_CODE_YES
- keydef("Key_Code_Yes","KEY_CODE_YES",KEY_CODE_YES,mode);
+ keydef("Key_Code_Yes", "KEY_CODE_YES", KEY_CODE_YES, mode);
#endif
#ifdef KEY_MIN
- keydef("Key_Min","KEY_MIN",KEY_MIN,mode);
+ keydef("Key_Min", "KEY_MIN", KEY_MIN, mode);
#endif
#ifdef KEY_BREAK
- keydef("Key_Break","KEY_BREAK",KEY_BREAK,mode);
+ keydef("Key_Break", "KEY_BREAK", KEY_BREAK, mode);
#endif
#ifdef KEY_DOWN
- keydef("Key_Cursor_Down","KEY_DOWN",KEY_DOWN,mode);
+ keydef("Key_Cursor_Down", "KEY_DOWN", KEY_DOWN, mode);
#endif
#ifdef KEY_UP
- keydef("Key_Cursor_Up","KEY_UP",KEY_UP,mode);
+ keydef("Key_Cursor_Up", "KEY_UP", KEY_UP, mode);
#endif
#ifdef KEY_LEFT
- keydef("Key_Cursor_Left","KEY_LEFT",KEY_LEFT,mode);
+ keydef("Key_Cursor_Left", "KEY_LEFT", KEY_LEFT, mode);
#endif
#ifdef KEY_RIGHT
- keydef("Key_Cursor_Right","KEY_RIGHT",KEY_RIGHT,mode);
+ keydef("Key_Cursor_Right", "KEY_RIGHT", KEY_RIGHT, mode);
#endif
#ifdef KEY_HOME
- keydef("Key_Home","KEY_HOME",KEY_HOME,mode);
+ keydef("Key_Home", "KEY_HOME", KEY_HOME, mode);
#endif
#ifdef KEY_BACKSPACE
- keydef("Key_Backspace","KEY_BACKSPACE",KEY_BACKSPACE,mode);
+ keydef("Key_Backspace", "KEY_BACKSPACE", KEY_BACKSPACE, mode);
#endif
#ifdef KEY_F0
- keydef("Key_F0","KEY_F0",KEY_F0,mode);
+ keydef("Key_F0", "KEY_F0", KEY_F0, mode);
#endif
#ifdef KEY_F
- for(i=1;i<=24;i++)
+ for (i = 1; i <= 24; i++)
{
- sprintf(buf ,"Key_F%d",i);
- sprintf(obuf,"KEY_F%d",i);
- keydef(buf,obuf,KEY_F(i),mode);
+ sprintf(buf, "Key_F%d", i);
+ sprintf(obuf, "KEY_F%d", i);
+ keydef(buf, obuf, KEY_F(i), mode);
}
#endif
#ifdef KEY_DL
- keydef("Key_Delete_Line","KEY_DL",KEY_DL,mode);
+ keydef("Key_Delete_Line", "KEY_DL", KEY_DL, mode);
#endif
#ifdef KEY_IL
- keydef("Key_Insert_Line","KEY_IL",KEY_IL,mode);
+ keydef("Key_Insert_Line", "KEY_IL", KEY_IL, mode);
#endif
#ifdef KEY_DC
- keydef("Key_Delete_Char","KEY_DC",KEY_DC,mode);
+ keydef("Key_Delete_Char", "KEY_DC", KEY_DC, mode);
#endif
#ifdef KEY_IC
- keydef("Key_Insert_Char","KEY_IC",KEY_IC,mode);
+ keydef("Key_Insert_Char", "KEY_IC", KEY_IC, mode);
#endif
#ifdef KEY_EIC
- keydef("Key_Exit_Insert_Mode","KEY_EIC",KEY_EIC,mode);
+ keydef("Key_Exit_Insert_Mode", "KEY_EIC", KEY_EIC, mode);
#endif
#ifdef KEY_CLEAR
- keydef("Key_Clear_Screen","KEY_CLEAR",KEY_CLEAR,mode);
+ keydef("Key_Clear_Screen", "KEY_CLEAR", KEY_CLEAR, mode);
#endif
#ifdef KEY_EOS
- keydef("Key_Clear_End_Of_Screen","KEY_EOS",KEY_EOS,mode);
+ keydef("Key_Clear_End_Of_Screen", "KEY_EOS", KEY_EOS, mode);
#endif
#ifdef KEY_EOL
- keydef("Key_Clear_End_Of_Line","KEY_EOL",KEY_EOL,mode);
+ keydef("Key_Clear_End_Of_Line", "KEY_EOL", KEY_EOL, mode);
#endif
#ifdef KEY_SF
- keydef("Key_Scroll_1_Forward","KEY_SF",KEY_SF,mode);
+ keydef("Key_Scroll_1_Forward", "KEY_SF", KEY_SF, mode);
#endif
#ifdef KEY_SR
- keydef("Key_Scroll_1_Backward","KEY_SR",KEY_SR,mode);
+ keydef("Key_Scroll_1_Backward", "KEY_SR", KEY_SR, mode);
#endif
#ifdef KEY_NPAGE
- keydef("Key_Next_Page","KEY_NPAGE",KEY_NPAGE,mode);
+ keydef("Key_Next_Page", "KEY_NPAGE", KEY_NPAGE, mode);
#endif
#ifdef KEY_PPAGE
- keydef("Key_Previous_Page","KEY_PPAGE",KEY_PPAGE,mode);
+ keydef("Key_Previous_Page", "KEY_PPAGE", KEY_PPAGE, mode);
#endif
#ifdef KEY_STAB
- keydef("Key_Set_Tab","KEY_STAB",KEY_STAB,mode);
+ keydef("Key_Set_Tab", "KEY_STAB", KEY_STAB, mode);
#endif
#ifdef KEY_CTAB
- keydef("Key_Clear_Tab","KEY_CTAB",KEY_CTAB,mode);
+ keydef("Key_Clear_Tab", "KEY_CTAB", KEY_CTAB, mode);
#endif
#ifdef KEY_CATAB
- keydef("Key_Clear_All_Tabs","KEY_CATAB",KEY_CATAB,mode);
+ keydef("Key_Clear_All_Tabs", "KEY_CATAB", KEY_CATAB, mode);
#endif
#ifdef KEY_ENTER
- keydef("Key_Enter_Or_Send","KEY_ENTER",KEY_ENTER,mode);
+ keydef("Key_Enter_Or_Send", "KEY_ENTER", KEY_ENTER, mode);
#endif
#ifdef KEY_SRESET
- keydef("Key_Soft_Reset","KEY_SRESET",KEY_SRESET,mode);
+ keydef("Key_Soft_Reset", "KEY_SRESET", KEY_SRESET, mode);
#endif
#ifdef KEY_RESET
- keydef("Key_Reset","KEY_RESET",KEY_RESET,mode);
+ keydef("Key_Reset", "KEY_RESET", KEY_RESET, mode);
#endif
#ifdef KEY_PRINT
- keydef("Key_Print","KEY_PRINT",KEY_PRINT,mode);
+ keydef("Key_Print", "KEY_PRINT", KEY_PRINT, mode);
#endif
#ifdef KEY_LL
- keydef("Key_Bottom","KEY_LL",KEY_LL,mode);
+ keydef("Key_Bottom", "KEY_LL", KEY_LL, mode);
#endif
#ifdef KEY_A1
- keydef("Key_Upper_Left_Of_Keypad","KEY_A1",KEY_A1,mode);
+ keydef("Key_Upper_Left_Of_Keypad", "KEY_A1", KEY_A1, mode);
#endif
#ifdef KEY_A3
- keydef("Key_Upper_Right_Of_Keypad","KEY_A3",KEY_A3,mode);
+ keydef("Key_Upper_Right_Of_Keypad", "KEY_A3", KEY_A3, mode);
#endif
#ifdef KEY_B2
- keydef("Key_Center_Of_Keypad","KEY_B2",KEY_B2,mode);
+ keydef("Key_Center_Of_Keypad", "KEY_B2", KEY_B2, mode);
#endif
#ifdef KEY_C1
- keydef("Key_Lower_Left_Of_Keypad","KEY_C1",KEY_C1,mode);
+ keydef("Key_Lower_Left_Of_Keypad", "KEY_C1", KEY_C1, mode);
#endif
#ifdef KEY_C3
- keydef("Key_Lower_Right_Of_Keypad","KEY_C3",KEY_C3,mode);
+ keydef("Key_Lower_Right_Of_Keypad", "KEY_C3", KEY_C3, mode);
#endif
#ifdef KEY_BTAB
- keydef("Key_Back_Tab","KEY_BTAB",KEY_BTAB,mode);
+ keydef("Key_Back_Tab", "KEY_BTAB", KEY_BTAB, mode);
#endif
#ifdef KEY_BEG
- keydef("Key_Beginning","KEY_BEG",KEY_BEG,mode);
+ keydef("Key_Beginning", "KEY_BEG", KEY_BEG, mode);
#endif
#ifdef KEY_CANCEL
- keydef("Key_Cancel","KEY_CANCEL",KEY_CANCEL,mode);
+ keydef("Key_Cancel", "KEY_CANCEL", KEY_CANCEL, mode);
#endif
#ifdef KEY_CLOSE
- keydef("Key_Close","KEY_CLOSE",KEY_CLOSE,mode);
+ keydef("Key_Close", "KEY_CLOSE", KEY_CLOSE, mode);
#endif
#ifdef KEY_COMMAND
- keydef("Key_Command","KEY_COMMAND",KEY_COMMAND,mode);
+ keydef("Key_Command", "KEY_COMMAND", KEY_COMMAND, mode);
#endif
#ifdef KEY_COPY
- keydef("Key_Copy","KEY_COPY",KEY_COPY,mode);
+ keydef("Key_Copy", "KEY_COPY", KEY_COPY, mode);
#endif
#ifdef KEY_CREATE
- keydef("Key_Create","KEY_CREATE",KEY_CREATE,mode);
+ keydef("Key_Create", "KEY_CREATE", KEY_CREATE, mode);
#endif
#ifdef KEY_END
- keydef("Key_End","KEY_END",KEY_END,mode);
+ keydef("Key_End", "KEY_END", KEY_END, mode);
#endif
#ifdef KEY_EXIT
- keydef("Key_Exit","KEY_EXIT",KEY_EXIT,mode);
+ keydef("Key_Exit", "KEY_EXIT", KEY_EXIT, mode);
#endif
#ifdef KEY_FIND
- keydef("Key_Find","KEY_FIND",KEY_FIND,mode);
+ keydef("Key_Find", "KEY_FIND", KEY_FIND, mode);
#endif
#ifdef KEY_HELP
- keydef("Key_Help","KEY_HELP",KEY_HELP,mode);
+ keydef("Key_Help", "KEY_HELP", KEY_HELP, mode);
#endif
#ifdef KEY_MARK
- keydef("Key_Mark","KEY_MARK",KEY_MARK,mode);
+ keydef("Key_Mark", "KEY_MARK", KEY_MARK, mode);
#endif
#ifdef KEY_MESSAGE
- keydef("Key_Message","KEY_MESSAGE",KEY_MESSAGE,mode);
+ keydef("Key_Message", "KEY_MESSAGE", KEY_MESSAGE, mode);
#endif
#ifdef KEY_MOVE
- keydef("Key_Move","KEY_MOVE",KEY_MOVE,mode);
+ keydef("Key_Move", "KEY_MOVE", KEY_MOVE, mode);
#endif
#ifdef KEY_NEXT
- keydef("Key_Next","KEY_NEXT",KEY_NEXT,mode);
+ keydef("Key_Next", "KEY_NEXT", KEY_NEXT, mode);
#endif
#ifdef KEY_OPEN
- keydef("Key_Open","KEY_OPEN",KEY_OPEN,mode);
+ keydef("Key_Open", "KEY_OPEN", KEY_OPEN, mode);
#endif
#ifdef KEY_OPTIONS
- keydef("Key_Options","KEY_OPTIONS",KEY_OPTIONS,mode);
+ keydef("Key_Options", "KEY_OPTIONS", KEY_OPTIONS, mode);
#endif
#ifdef KEY_PREVIOUS
- keydef("Key_Previous","KEY_PREVIOUS",KEY_PREVIOUS,mode);
+ keydef("Key_Previous", "KEY_PREVIOUS", KEY_PREVIOUS, mode);
#endif
#ifdef KEY_REDO
- keydef("Key_Redo","KEY_REDO",KEY_REDO,mode);
+ keydef("Key_Redo", "KEY_REDO", KEY_REDO, mode);
#endif
#ifdef KEY_REFERENCE
- keydef("Key_Reference","KEY_REFERENCE",KEY_REFERENCE,mode);
+ keydef("Key_Reference", "KEY_REFERENCE", KEY_REFERENCE, mode);
#endif
#ifdef KEY_REFRESH
- keydef("Key_Refresh","KEY_REFRESH",KEY_REFRESH,mode);
+ keydef("Key_Refresh", "KEY_REFRESH", KEY_REFRESH, mode);
#endif
#ifdef KEY_REPLACE
- keydef("Key_Replace","KEY_REPLACE",KEY_REPLACE,mode);
+ keydef("Key_Replace", "KEY_REPLACE", KEY_REPLACE, mode);
#endif
#ifdef KEY_RESTART
- keydef("Key_Restart","KEY_RESTART",KEY_RESTART,mode);
+ keydef("Key_Restart", "KEY_RESTART", KEY_RESTART, mode);
#endif
#ifdef KEY_RESUME
- keydef("Key_Resume","KEY_RESUME",KEY_RESUME,mode);
+ keydef("Key_Resume", "KEY_RESUME", KEY_RESUME, mode);
#endif
#ifdef KEY_SAVE
- keydef("Key_Save","KEY_SAVE",KEY_SAVE,mode);
+ keydef("Key_Save", "KEY_SAVE", KEY_SAVE, mode);
#endif
#ifdef KEY_SBEG
- keydef("Key_Shift_Begin","KEY_SBEG",KEY_SBEG,mode);
+ keydef("Key_Shift_Begin", "KEY_SBEG", KEY_SBEG, mode);
#endif
#ifdef KEY_SCANCEL
- keydef("Key_Shift_Cancel","KEY_SCANCEL",KEY_SCANCEL,mode);
+ keydef("Key_Shift_Cancel", "KEY_SCANCEL", KEY_SCANCEL, mode);
#endif
#ifdef KEY_SCOMMAND
- keydef("Key_Shift_Command","KEY_SCOMMAND",KEY_SCOMMAND,mode);
+ keydef("Key_Shift_Command", "KEY_SCOMMAND", KEY_SCOMMAND, mode);
#endif
#ifdef KEY_SCOPY
- keydef("Key_Shift_Copy","KEY_SCOPY",KEY_SCOPY,mode);
+ keydef("Key_Shift_Copy", "KEY_SCOPY", KEY_SCOPY, mode);
#endif
#ifdef KEY_SCREATE
- keydef("Key_Shift_Create","KEY_SCREATE",KEY_SCREATE,mode);
+ keydef("Key_Shift_Create", "KEY_SCREATE", KEY_SCREATE, mode);
#endif
#ifdef KEY_SDC
- keydef("Key_Shift_Delete_Char","KEY_SDC",KEY_SDC,mode);
+ keydef("Key_Shift_Delete_Char", "KEY_SDC", KEY_SDC, mode);
#endif
#ifdef KEY_SDL
- keydef("Key_Shift_Delete_Line","KEY_SDL",KEY_SDL,mode);
+ keydef("Key_Shift_Delete_Line", "KEY_SDL", KEY_SDL, mode);
#endif
#ifdef KEY_SELECT
- keydef("Key_Select","KEY_SELECT",KEY_SELECT,mode);
+ keydef("Key_Select", "KEY_SELECT", KEY_SELECT, mode);
#endif
#ifdef KEY_SEND
- keydef("Key_Shift_End","KEY_SEND",KEY_SEND,mode);
+ keydef("Key_Shift_End", "KEY_SEND", KEY_SEND, mode);
#endif
#ifdef KEY_SEOL
- keydef("Key_Shift_Clear_End_Of_Line","KEY_SEOL",KEY_SEOL,mode);
+ keydef("Key_Shift_Clear_End_Of_Line", "KEY_SEOL", KEY_SEOL, mode);
#endif
#ifdef KEY_SEXIT
- keydef("Key_Shift_Exit","KEY_SEXIT",KEY_SEXIT,mode);
+ keydef("Key_Shift_Exit", "KEY_SEXIT", KEY_SEXIT, mode);
#endif
#ifdef KEY_SFIND
- keydef("Key_Shift_Find","KEY_SFIND",KEY_SFIND,mode);
+ keydef("Key_Shift_Find", "KEY_SFIND", KEY_SFIND, mode);
#endif
#ifdef KEY_SHELP
- keydef("Key_Shift_Help","KEY_SHELP",KEY_SHELP,mode);
+ keydef("Key_Shift_Help", "KEY_SHELP", KEY_SHELP, mode);
#endif
#ifdef KEY_SHOME
- keydef("Key_Shift_Home","KEY_SHOME",KEY_SHOME,mode);
+ keydef("Key_Shift_Home", "KEY_SHOME", KEY_SHOME, mode);
#endif
#ifdef KEY_SIC
- keydef("Key_Shift_Insert_Char","KEY_SIC",KEY_SIC,mode);
+ keydef("Key_Shift_Insert_Char", "KEY_SIC", KEY_SIC, mode);
#endif
#ifdef KEY_SLEFT
- keydef("Key_Shift_Cursor_Left","KEY_SLEFT",KEY_SLEFT,mode);
+ keydef("Key_Shift_Cursor_Left", "KEY_SLEFT", KEY_SLEFT, mode);
#endif
#ifdef KEY_SMESSAGE
- keydef("Key_Shift_Message","KEY_SMESSAGE",KEY_SMESSAGE,mode);
+ keydef("Key_Shift_Message", "KEY_SMESSAGE", KEY_SMESSAGE, mode);
#endif
#ifdef KEY_SMOVE
- keydef("Key_Shift_Move","KEY_SMOVE",KEY_SMOVE,mode);
+ keydef("Key_Shift_Move", "KEY_SMOVE", KEY_SMOVE, mode);
#endif
#ifdef KEY_SNEXT
- keydef("Key_Shift_Next_Page","KEY_SNEXT",KEY_SNEXT,mode);
+ keydef("Key_Shift_Next_Page", "KEY_SNEXT", KEY_SNEXT, mode);
#endif
#ifdef KEY_SOPTIONS
- keydef("Key_Shift_Options","KEY_SOPTIONS",KEY_SOPTIONS,mode);
+ keydef("Key_Shift_Options", "KEY_SOPTIONS", KEY_SOPTIONS, mode);
#endif
#ifdef KEY_SPREVIOUS
- keydef("Key_Shift_Previous_Page","KEY_SPREVIOUS",KEY_SPREVIOUS,mode);
+ keydef("Key_Shift_Previous_Page", "KEY_SPREVIOUS", KEY_SPREVIOUS, mode);
#endif
#ifdef KEY_SPRINT
- keydef("Key_Shift_Print","KEY_SPRINT",KEY_SPRINT,mode);
+ keydef("Key_Shift_Print", "KEY_SPRINT", KEY_SPRINT, mode);
#endif
#ifdef KEY_SREDO
- keydef("Key_Shift_Redo","KEY_SREDO",KEY_SREDO,mode);
+ keydef("Key_Shift_Redo", "KEY_SREDO", KEY_SREDO, mode);
#endif
#ifdef KEY_SREPLACE
- keydef("Key_Shift_Replace","KEY_SREPLACE",KEY_SREPLACE,mode);
+ keydef("Key_Shift_Replace", "KEY_SREPLACE", KEY_SREPLACE, mode);
#endif
#ifdef KEY_SRIGHT
- keydef("Key_Shift_Cursor_Right","KEY_SRIGHT",KEY_SRIGHT,mode);
+ keydef("Key_Shift_Cursor_Right", "KEY_SRIGHT", KEY_SRIGHT, mode);
#endif
#ifdef KEY_SRSUME
- keydef("Key_Shift_Resume","KEY_SRSUME",KEY_SRSUME,mode);
+ keydef("Key_Shift_Resume", "KEY_SRSUME", KEY_SRSUME, mode);
#endif
#ifdef KEY_SSAVE
- keydef("Key_Shift_Save","KEY_SSAVE",KEY_SSAVE,mode);
+ keydef("Key_Shift_Save", "KEY_SSAVE", KEY_SSAVE, mode);
#endif
#ifdef KEY_SSUSPEND
- keydef("Key_Shift_Suspend","KEY_SSUSPEND",KEY_SSUSPEND,mode);
+ keydef("Key_Shift_Suspend", "KEY_SSUSPEND", KEY_SSUSPEND, mode);
#endif
#ifdef KEY_SUNDO
- keydef("Key_Shift_Undo","KEY_SUNDO",KEY_SUNDO,mode);
+ keydef("Key_Shift_Undo", "KEY_SUNDO", KEY_SUNDO, mode);
#endif
#ifdef KEY_SUSPEND
- keydef("Key_Suspend","KEY_SUSPEND",KEY_SUSPEND,mode);
+ keydef("Key_Suspend", "KEY_SUSPEND", KEY_SUSPEND, mode);
#endif
#ifdef KEY_UNDO
- keydef("Key_Undo","KEY_UNDO",KEY_UNDO,mode);
+ keydef("Key_Undo", "KEY_UNDO", KEY_UNDO, mode);
#endif
#ifdef KEY_MOUSE
- keydef("Key_Mouse","KEY_MOUSE",KEY_MOUSE,mode);
+ keydef("Key_Mouse", "KEY_MOUSE", KEY_MOUSE, mode);
#endif
#ifdef KEY_RESIZE
- keydef("Key_Resize","KEY_RESIZE",KEY_RESIZE,mode);
+ keydef("Key_Resize", "KEY_RESIZE", KEY_RESIZE, mode);
#endif
}
* is a reference to the ACS character in the acs_map[] array and
* will be translated into an index.
*/
-static void acs_def (const char *name, chtype *a)
+static void
+acs_def(const char *name, chtype *a)
{
int c = a - &acs_map[0];
- printf(" %-24s : constant Character := ",name);
- if (isprint(c) && (c!='`'))
- printf("'%c';\n",c);
+
+ printf(" %-24s : constant Character := ", name);
+ if (isprint(c) && (c != '`'))
+ printf("'%c';\n", c);
else
- printf("Character'Val (%d);\n",c);
+ printf("Character'Val (%d);\n", c);
}
/*
* Generate the constants for the ACS characters
*/
-static void gen_acs (void)
+static void
+gen_acs(void)
{
#ifdef ACS_ULCORNER
- acs_def("ACS_Upper_Left_Corner",&ACS_ULCORNER);
+ acs_def("ACS_Upper_Left_Corner", &ACS_ULCORNER);
#endif
#ifdef ACS_LLCORNER
- acs_def("ACS_Lower_Left_Corner",&ACS_LLCORNER);
+ acs_def("ACS_Lower_Left_Corner", &ACS_LLCORNER);
#endif
#ifdef ACS_URCORNER
- acs_def("ACS_Upper_Right_Corner",&ACS_URCORNER);
+ acs_def("ACS_Upper_Right_Corner", &ACS_URCORNER);
#endif
#ifdef ACS_LRCORNER
- acs_def("ACS_Lower_Right_Corner",&ACS_LRCORNER);
+ acs_def("ACS_Lower_Right_Corner", &ACS_LRCORNER);
#endif
#ifdef ACS_LTEE
- acs_def("ACS_Left_Tee",&ACS_LTEE);
+ acs_def("ACS_Left_Tee", &ACS_LTEE);
#endif
#ifdef ACS_RTEE
- acs_def("ACS_Right_Tee",&ACS_RTEE);
+ acs_def("ACS_Right_Tee", &ACS_RTEE);
#endif
#ifdef ACS_BTEE
- acs_def("ACS_Bottom_Tee",&ACS_BTEE);
+ acs_def("ACS_Bottom_Tee", &ACS_BTEE);
#endif
#ifdef ACS_TTEE
- acs_def("ACS_Top_Tee",&ACS_TTEE);
+ acs_def("ACS_Top_Tee", &ACS_TTEE);
#endif
#ifdef ACS_HLINE
- acs_def("ACS_Horizontal_Line",&ACS_HLINE);
+ acs_def("ACS_Horizontal_Line", &ACS_HLINE);
#endif
#ifdef ACS_VLINE
- acs_def("ACS_Vertical_Line",&ACS_VLINE);
+ acs_def("ACS_Vertical_Line", &ACS_VLINE);
#endif
#ifdef ACS_PLUS
- acs_def("ACS_Plus_Symbol",&ACS_PLUS);
+ acs_def("ACS_Plus_Symbol", &ACS_PLUS);
#endif
#ifdef ACS_S1
- acs_def("ACS_Scan_Line_1",&ACS_S1);
+ acs_def("ACS_Scan_Line_1", &ACS_S1);
#endif
#ifdef ACS_S9
- acs_def("ACS_Scan_Line_9",&ACS_S9);
+ acs_def("ACS_Scan_Line_9", &ACS_S9);
#endif
#ifdef ACS_DIAMOND
- acs_def("ACS_Diamond",&ACS_DIAMOND);
+ acs_def("ACS_Diamond", &ACS_DIAMOND);
#endif
#ifdef ACS_CKBOARD
- acs_def("ACS_Checker_Board",&ACS_CKBOARD);
+ acs_def("ACS_Checker_Board", &ACS_CKBOARD);
#endif
#ifdef ACS_DEGREE
- acs_def("ACS_Degree",&ACS_DEGREE);
+ acs_def("ACS_Degree", &ACS_DEGREE);
#endif
#ifdef ACS_PLMINUS
- acs_def("ACS_Plus_Minus",&ACS_PLMINUS);
+ acs_def("ACS_Plus_Minus", &ACS_PLMINUS);
#endif
#ifdef ACS_BULLET
- acs_def("ACS_Bullet",&ACS_BULLET);
+ acs_def("ACS_Bullet", &ACS_BULLET);
#endif
#ifdef ACS_LARROW
- acs_def("ACS_Left_Arrow",&ACS_LARROW);
+ acs_def("ACS_Left_Arrow", &ACS_LARROW);
#endif
#ifdef ACS_RARROW
- acs_def("ACS_Right_Arrow",&ACS_RARROW);
+ acs_def("ACS_Right_Arrow", &ACS_RARROW);
#endif
#ifdef ACS_DARROW
- acs_def("ACS_Down_Arrow",&ACS_DARROW);
+ acs_def("ACS_Down_Arrow", &ACS_DARROW);
#endif
#ifdef ACS_UARROW
- acs_def("ACS_Up_Arrow",&ACS_UARROW);
+ acs_def("ACS_Up_Arrow", &ACS_UARROW);
#endif
#ifdef ACS_BOARD
- acs_def("ACS_Board_Of_Squares",&ACS_BOARD);
+ acs_def("ACS_Board_Of_Squares", &ACS_BOARD);
#endif
#ifdef ACS_LANTERN
- acs_def("ACS_Lantern",&ACS_LANTERN);
+ acs_def("ACS_Lantern", &ACS_LANTERN);
#endif
#ifdef ACS_BLOCK
- acs_def("ACS_Solid_Block",&ACS_BLOCK);
+ acs_def("ACS_Solid_Block", &ACS_BLOCK);
#endif
#ifdef ACS_S3
- acs_def("ACS_Scan_Line_3",&ACS_S3);
+ acs_def("ACS_Scan_Line_3", &ACS_S3);
#endif
#ifdef ACS_S7
- acs_def("ACS_Scan_Line_7",&ACS_S7);
+ acs_def("ACS_Scan_Line_7", &ACS_S7);
#endif
#ifdef ACS_LEQUAL
- acs_def("ACS_Less_Or_Equal",&ACS_LEQUAL);
+ acs_def("ACS_Less_Or_Equal", &ACS_LEQUAL);
#endif
#ifdef ACS_GEQUAL
- acs_def("ACS_Greater_Or_Equal",&ACS_GEQUAL);
+ acs_def("ACS_Greater_Or_Equal", &ACS_GEQUAL);
#endif
#ifdef ACS_PI
- acs_def("ACS_PI",&ACS_PI);
+ acs_def("ACS_PI", &ACS_PI);
#endif
#ifdef ACS_NEQUAL
- acs_def("ACS_Not_Equal",&ACS_NEQUAL);
+ acs_def("ACS_Not_Equal", &ACS_NEQUAL);
#endif
#ifdef ACS_STERLING
- acs_def("ACS_Sterling",&ACS_STERLING);
+ acs_def("ACS_Sterling", &ACS_STERLING);
#endif
}
-
#define GEN_EVENT(name,value) \
printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
#name, value)
#name, name)
static
-void gen_mouse_events(void)
+void
+gen_mouse_events(void)
{
mmask_t all1 = 0;
mmask_t all2 = 0;
#endif
#ifdef REPORT_MOUSE_POSITION
GEN_MEVENT(REPORT_MOUSE_POSITION);
-#endif
+#endif
#ifdef ALL_MOUSE_EVENTS
GEN_MEVENT(ALL_MOUSE_EVENTS);
#endif
-GEN_EVENT(BUTTON1_EVENTS,all1);
-GEN_EVENT(BUTTON2_EVENTS,all2);
-GEN_EVENT(BUTTON3_EVENTS,all3);
-GEN_EVENT(BUTTON4_EVENTS,all4);
+ GEN_EVENT(BUTTON1_EVENTS, all1);
+ GEN_EVENT(BUTTON2_EVENTS, all2);
+ GEN_EVENT(BUTTON3_EVENTS, all3);
+ GEN_EVENT(BUTTON4_EVENTS, all4);
}
/*
* The name parameter is the name of the facility to be used in
* the comment.
*/
-static void prologue(const char *name)
+static void
+prologue(const char *name)
{
- printf("-- %s binding.\n",name);
+ printf("-- %s binding.\n", name);
printf("-- This module is generated. Please don't change it manually!\n");
printf("-- Run the generator instead.\n-- |");
printf("define(`M4_BIT_ORDER',`%s_Order_First')",
- little_endian ? "Low":"High");
+ little_endian ? "Low" : "High");
}
/*
* Write the prologue for the curses facility and make sure that
* KEY_MIN and KEY_MAX are defined for the rest of this source.
*/
-static void basedefs (void)
+static void
+basedefs(void)
{
prologue("curses");
#ifndef KEY_MAX
# define KEY_MAX 0777
#endif
- printf("define(`M4_KEY_MAX',`8#%o#')",KEY_MAX);
+ printf("define(`M4_KEY_MAX',`8#%o#')", KEY_MAX);
#ifndef KEY_MIN
# define KEY_MIN 0401
#endif
- if (KEY_MIN == 256) {
- fprintf(stderr,"Unexpected value for KEY_MIN: %d\n",KEY_MIN);
- exit(1);
- }
- printf("define(`M4_SPECIAL_FIRST',`8#%o#')",KEY_MIN - 1);
+ if (KEY_MIN == 256)
+ {
+ fprintf(stderr, "Unexpected value for KEY_MIN: %d\n", KEY_MIN);
+ exit(1);
+ }
+ printf("define(`M4_SPECIAL_FIRST',`8#%o#')", KEY_MIN - 1);
}
/*
* Write out the comment lines for the menu facility
*/
-static void menu_basedefs (void)
+static void
+menu_basedefs(void)
{
prologue("menu");
}
/*
* Write out the comment lines for the form facility
*/
-static void form_basedefs (void)
+static void
+form_basedefs(void)
{
prologue("form");
}
/*
* Write out the comment lines for the mouse facility
*/
-static void mouse_basedefs(void)
+static void
+mouse_basedefs(void)
{
prologue("mouse");
}
/*
* Write the definition of a single color
*/
-static void color_def (const char *name, int value)
+static void
+color_def(const char *name, int value)
{
- printf(" %-16s : constant Color_Number := %d;\n",name,value);
+ printf(" %-16s : constant Color_Number := %d;\n", name, value);
}
#define HAVE_USE_DEFAULT_COLORS 1
/*
* Generate all color definitions
*/
-static void gen_color (void)
+static void
+gen_color(void)
{
#ifdef HAVE_USE_DEFAULT_COLORS
- color_def ("Default_Color",-1);
+ color_def("Default_Color", -1);
#endif
#ifdef COLOR_BLACK
- color_def ("Black",COLOR_BLACK);
+ color_def("Black", COLOR_BLACK);
#endif
#ifdef COLOR_RED
- color_def ("Red",COLOR_RED);
+ color_def("Red", COLOR_RED);
#endif
#ifdef COLOR_GREEN
- color_def ("Green",COLOR_GREEN);
+ color_def("Green", COLOR_GREEN);
#endif
#ifdef COLOR_YELLOW
- color_def ("Yellow",COLOR_YELLOW);
+ color_def("Yellow", COLOR_YELLOW);
#endif
#ifdef COLOR_BLUE
- color_def ("Blue",COLOR_BLUE);
+ color_def("Blue", COLOR_BLUE);
#endif
#ifdef COLOR_MAGENTA
- color_def ("Magenta",COLOR_MAGENTA);
+ color_def("Magenta", COLOR_MAGENTA);
#endif
#ifdef COLOR_CYAN
- color_def ("Cyan",COLOR_CYAN);
+ color_def("Cyan", COLOR_CYAN);
#endif
#ifdef COLOR_WHITE
- color_def ("White",COLOR_WHITE);
+ color_def("White", COLOR_WHITE);
#endif
}
/*
* Generate the linker options for the base facility
*/
-static void gen_linkopts (void)
+static void
+gen_linkopts(void)
{
- printf(" pragma Linker_Options (\"-lncurses%s\");\n", model);
+ printf(" pragma Linker_Options (\"-lncurses%s\");\n", model);
}
/*
* Generate the linker options for the menu facility
*/
-static void gen_menu_linkopts (void)
+static void
+gen_menu_linkopts(void)
{
- printf(" pragma Linker_Options (\"-lmenu%s\");\n", model);
+ printf(" pragma Linker_Options (\"-lmenu%s\");\n", model);
}
/*
* Generate the linker options for the form facility
*/
-static void gen_form_linkopts (void)
+static void
+gen_form_linkopts(void)
{
- printf(" pragma Linker_Options (\"-lform%s\");\n", model);
+ printf(" pragma Linker_Options (\"-lform%s\");\n", model);
}
/*
* Generate the linker options for the panel facility
*/
-static void gen_panel_linkopts (void)
+static void
+gen_panel_linkopts(void)
{
- printf(" pragma Linker_Options (\"-lpanel%s\");\n", model);
+ printf(" pragma Linker_Options (\"-lpanel%s\");\n", model);
}
-static void gen_version_info (void)
+static void
+gen_version_info(void)
{
- static const char* v1 =
- " NC_Major_Version : constant := %d; -- Major version of the library\n";
- static const char* v2 =
- " NC_Minor_Version : constant := %d; -- Minor version of the library\n";
- static const char* v3 =
- " NC_Version : constant String := %c%d.%d%c; -- Version of library\n";
+ static const char *v1 =
+ " NC_Major_Version : constant := %d; -- Major version of the library\n";
+ static const char *v2 =
+ " NC_Minor_Version : constant := %d; -- Minor version of the library\n";
+ static const char *v3 =
+ " NC_Version : constant String := %c%d.%d%c; -- Version of library\n";
printf(v1, NCURSES_VERSION_MAJOR);
printf(v2, NCURSES_VERSION_MINOR);
- printf(v3, '"',NCURSES_VERSION_MAJOR,NCURSES_VERSION_MINOR,'"');
+ printf(v3, '"', NCURSES_VERSION_MAJOR, NCURSES_VERSION_MINOR, '"');
}
static int
-eti_gen(char*buf, int code, const char* name, int* etimin, int* etimax)
+eti_gen(char *buf, int code, const char *name, int *etimin, int *etimax)
{
- sprintf(buf," E_%-16s : constant Eti_Error := %d;\n",name,code);
+ sprintf(buf, " E_%-16s : constant Eti_Error := %d;\n", name, code);
if (code < *etimin)
*etimin = code;
if (code > *etimax)
o = offsetof(WINDOW, member); \
if ((o%sizeof(itype) == 0)) { \
printf(" Offset%-*s : constant Natural := %2ld; -- %s\n", \
- 12, #member, o/sizeof(itype),#itype); \
+ 12, #member, (long)(o/sizeof(itype)),#itype); \
} \
}
-
+
static void
gen_offsets(void)
{
long o;
- const char* s_bool = "";
-
- GEN_OFFSET(_maxy,short);
- GEN_OFFSET(_maxx,short);
- GEN_OFFSET(_begy,short);
- GEN_OFFSET(_begx,short);
- GEN_OFFSET(_cury,short);
- GEN_OFFSET(_curx,short);
- GEN_OFFSET(_yoffset,short);
- GEN_OFFSET(_pary,int);
- GEN_OFFSET(_parx,int);
- if (sizeof(bool) == sizeof(char)) {
- GEN_OFFSET(_notimeout,char);
- GEN_OFFSET(_clear,char);
- GEN_OFFSET(_leaveok,char);
- GEN_OFFSET(_scroll,char);
- GEN_OFFSET(_idlok,char);
- GEN_OFFSET(_idcok,char);
- GEN_OFFSET(_immed,char);
- GEN_OFFSET(_sync,char);
- GEN_OFFSET(_use_keypad,char);
- s_bool = "char";
- } else if (sizeof(bool) == sizeof(short)) {
- GEN_OFFSET(_notimeout,short);
- GEN_OFFSET(_clear,short);
- GEN_OFFSET(_leaveok,short);
- GEN_OFFSET(_scroll,short);
- GEN_OFFSET(_idlok,short);
- GEN_OFFSET(_idcok,short);
- GEN_OFFSET(_immed,short);
- GEN_OFFSET(_sync,short);
- GEN_OFFSET(_use_keypad,short);
- s_bool = "short";
- } else if (sizeof(bool) == sizeof(int)) {
- GEN_OFFSET(_notimeout,int);
- GEN_OFFSET(_clear,int);
- GEN_OFFSET(_leaveok,int);
- GEN_OFFSET(_scroll,int);
- GEN_OFFSET(_idlok,int);
- GEN_OFFSET(_idcok,int);
- GEN_OFFSET(_immed,int);
- GEN_OFFSET(_sync,int);
- GEN_OFFSET(_use_keypad,int);
- s_bool = "int";
- }
+ const char *s_bool = "";
+
+ GEN_OFFSET(_maxy, short);
+ GEN_OFFSET(_maxx, short);
+ GEN_OFFSET(_begy, short);
+ GEN_OFFSET(_begx, short);
+ GEN_OFFSET(_cury, short);
+ GEN_OFFSET(_curx, short);
+ GEN_OFFSET(_yoffset, short);
+ GEN_OFFSET(_pary, int);
+ GEN_OFFSET(_parx, int);
+ if (sizeof(bool) == sizeof(char))
+ {
+ GEN_OFFSET(_notimeout, char);
+ GEN_OFFSET(_clear, char);
+ GEN_OFFSET(_leaveok, char);
+ GEN_OFFSET(_scroll, char);
+ GEN_OFFSET(_idlok, char);
+ GEN_OFFSET(_idcok, char);
+ GEN_OFFSET(_immed, char);
+ GEN_OFFSET(_sync, char);
+ GEN_OFFSET(_use_keypad, char);
+
+ s_bool = "char";
+ }
+ else if (sizeof(bool) == sizeof(short))
+ {
+ GEN_OFFSET(_notimeout, short);
+ GEN_OFFSET(_clear, short);
+ GEN_OFFSET(_leaveok, short);
+ GEN_OFFSET(_scroll, short);
+ GEN_OFFSET(_idlok, short);
+ GEN_OFFSET(_idcok, short);
+ GEN_OFFSET(_immed, short);
+ GEN_OFFSET(_sync, short);
+ GEN_OFFSET(_use_keypad, short);
+
+ s_bool = "short";
+ }
+ else if (sizeof(bool) == sizeof(int))
+ {
+ GEN_OFFSET(_notimeout, int);
+ GEN_OFFSET(_clear, int);
+ GEN_OFFSET(_leaveok, int);
+ GEN_OFFSET(_scroll, int);
+ GEN_OFFSET(_idlok, int);
+ GEN_OFFSET(_idcok, int);
+ GEN_OFFSET(_immed, int);
+ GEN_OFFSET(_sync, int);
+ GEN_OFFSET(_use_keypad, int);
+
+ s_bool = "int";
+ }
printf(" Sizeof%-*s : constant Natural := %2ld; -- %s\n",
- 12, "_bool", (long) sizeof(bool),"bool");
+ 12, "_bool", (long)sizeof(bool), "bool");
+
/* In ncurses _maxy and _maxx needs an offset for the "public"
* value
*/
printf(" Offset%-*s : constant Natural := %2d; -- %s\n",
- 12, "_XY",1,"int");
+ 12, "_XY", 1, "int");
printf("\n");
- printf(" type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n",s_bool);
+ printf(" type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n", s_bool);
}
/*
* The second character then denotes the specific output that should be
* generated for the selected facility.
*/
-int main(int argc, char *argv[])
+int
+main(int argc, char *argv[])
{
int x = 0x12345678;
char *s = (char *)&x;
if (*s == 0x78)
little_endian = 1;
- if (argc!=4)
+ if (argc != 4)
exit(1);
model = *++argv;
- switch(argv[1][0])
+ switch (argv[1][0])
{
- /* ---------------------------------------------------------------*/
- case 'B': /* The Base facility */
- switch(argv[2][0])
+ /* --------------------------------------------------------------- */
+ case 'B': /* The Base facility */
+ switch (argv[2][0])
{
- case 'A': /* chtype translation into Ada95 record type */
+ case 'A': /* chtype translation into Ada95 record type */
gen_attr_set("Character_Attribute_Set");
break;
- case 'K': /* translation of keycodes */
+ case 'K': /* translation of keycodes */
gen_keydefs(0);
break;
- case 'B': /* write some initial comment lines */
+ case 'B': /* write some initial comment lines */
basedefs();
break;
- case 'C': /* generate color constants */
+ case 'C': /* generate color constants */
gen_color();
break;
- case 'D': /* generate displacements of fields in WINDOW struct. */
+ case 'D': /* generate displacements of fields in WINDOW struct. */
gen_offsets();
break;
- case 'E': /* generate Mouse Event codes */
+ case 'E': /* generate Mouse Event codes */
gen_mouse_events();
break;
- case 'M': /* generate constants for the ACS characters */
+ case 'M': /* generate constants for the ACS characters */
gen_acs();
break;
- case 'L': /* generate the Linker_Options pragma */
+ case 'L': /* generate the Linker_Options pragma */
gen_linkopts();
break;
- case 'O': /* generate definitions of the old key code names */
+ case 'O': /* generate definitions of the old key code names */
gen_keydefs(1);
break;
- case 'R': /* generate representation clause for Attributed character */
+ case 'R': /* generate representation clause for Attributed character */
gen_chtype_rep("Attributed_Character");
break;
- case 'V': /* generate version info */
+ case 'V': /* generate version info */
gen_version_info();
break;
- case 'T': /* generate the Trace info */
+ case 'T': /* generate the Trace info */
gen_trace("Trace_Attribute_Set");
break;
default:
break;
}
break;
- /* ---------------------------------------------------------------*/
- case 'M': /* The Menu facility */
- switch(argv[2][0])
+ /* --------------------------------------------------------------- */
+ case 'M': /* The Menu facility */
+ switch (argv[2][0])
{
- case 'R': /* generate representation clause for Menu_Option_Set */
+ case 'R': /* generate representation clause for Menu_Option_Set */
gen_menu_opt_rep("Menu_Option_Set");
break;
- case 'B': /* write some initial comment lines */
+ case 'B': /* write some initial comment lines */
menu_basedefs();
break;
- case 'L': /* generate the Linker_Options pragma */
+ case 'L': /* generate the Linker_Options pragma */
gen_menu_linkopts();
break;
- case 'I': /* generate representation clause for Item_Option_Set */
+ case 'I': /* generate representation clause for Item_Option_Set */
gen_item_opt_rep("Item_Option_Set");
break;
default:
break;
}
break;
- /* ---------------------------------------------------------------*/
- case 'F': /* The Form facility */
- switch(argv[2][0])
+ /* --------------------------------------------------------------- */
+ case 'F': /* The Form facility */
+ switch (argv[2][0])
{
- case 'R': /* generate representation clause for Form_Option_Set */
+ case 'R': /* generate representation clause for Form_Option_Set */
gen_form_opt_rep("Form_Option_Set");
break;
- case 'B': /* write some initial comment lines */
+ case 'B': /* write some initial comment lines */
form_basedefs();
break;
- case 'L': /* generate the Linker_Options pragma */
+ case 'L': /* generate the Linker_Options pragma */
gen_form_linkopts();
break;
- case 'I': /* generate representation clause for Field_Option_Set */
+ case 'I': /* generate representation clause for Field_Option_Set */
gen_field_opt_rep("Field_Option_Set");
break;
default:
break;
}
break;
- /* ---------------------------------------------------------------*/
- case 'P': /* The Pointer(=Mouse) facility */
- switch(argv[2][0]) {
- case 'B': /* write some initial comment lines */
+ /* --------------------------------------------------------------- */
+ case 'P': /* The Pointer(=Mouse) facility */
+ switch (argv[2][0])
+ {
+ case 'B': /* write some initial comment lines */
mouse_basedefs();
break;
- case 'M': /* generate representation clause for Mouse_Event */
+ case 'M': /* generate representation clause for Mouse_Event */
gen_mrep_rep("Mouse_Event");
break;
- case 'L': /* generate the Linker_Options pragma */
+ case 'L': /* generate the Linker_Options pragma */
gen_panel_linkopts();
break;
default:
break;
}
- break;
- /* ---------------------------------------------------------------*/
- case 'E' : /* chtype size detection */
- switch(argv[2][0]) {
- case 'C':
+ break;
+ /* --------------------------------------------------------------- */
+ case 'E': /* chtype size detection */
+ switch (argv[2][0])
{
- const char* fmt = " type C_Chtype is new %s;\n";
- const char* afmt = " type C_AttrType is new %s;\n";
-
- if (sizeof(chtype)==sizeof(int)) {
- if (sizeof(int)==sizeof(long))
- printf(fmt,"C_ULong");
+ case 'C':
+ {
+ const char *fmt = " type C_Chtype is new %s;\n";
+ const char *afmt = " type C_AttrType is new %s;\n";
+
+ if (sizeof(chtype) == sizeof(int))
+ {
+ if (sizeof(int) == sizeof(long))
+ printf(fmt, "C_ULong");
+
+ else
+ printf(fmt, "C_UInt");
+ }
+ else if (sizeof(chtype) == sizeof(long))
+ {
+ printf(fmt, "C_ULong");
+ }
else
- printf(fmt,"C_UInt");
- }
- else if (sizeof(chtype)==sizeof(long)) {
- printf(fmt,"C_ULong");
- }
- else
- printf("Error\n");
-
- if (sizeof(attr_t)==sizeof(int)) {
- if (sizeof(int)==sizeof(long))
- printf(afmt,"C_ULong");
+ printf("Error\n");
+
+ if (sizeof(attr_t) == sizeof(int))
+ {
+ if (sizeof(int) == sizeof(long))
+ printf(afmt, "C_ULong");
+
+ else
+ printf(afmt, "C_UInt");
+ }
+ else if (sizeof(attr_t) == sizeof(long))
+ {
+ printf(afmt, "C_ULong");
+ }
else
- printf(afmt,"C_UInt");
- }
- else if (sizeof(attr_t)==sizeof(long)) {
- printf(afmt,"C_ULong");
- }
- else
- printf("Error\n");
+ printf("Error\n");
- printf("define(`CF_CURSES_OK',`%d')",OK);
- printf("define(`CF_CURSES_ERR',`%d')",ERR);
- printf("define(`CF_CURSES_TRUE',`%d')",TRUE);
- printf("define(`CF_CURSES_FALSE',`%d')",FALSE);
- }
- break;
- case 'E':
- {
- char* buf = (char*)malloc(2048);
- char* p = buf;
- int etimin = E_OK;
- int etimax = E_OK;
- if (p) {
- p += eti_gen(p, E_OK, "Ok", &etimin, &etimax);
- p += eti_gen(p, E_SYSTEM_ERROR,"System_Error", &etimin, &etimax);
- p += eti_gen(p, E_BAD_ARGUMENT, "Bad_Argument", &etimin, &etimax);
- p += eti_gen(p, E_POSTED, "Posted", &etimin, &etimax);
- p += eti_gen(p, E_CONNECTED, "Connected", &etimin, &etimax);
- p += eti_gen(p, E_BAD_STATE, "Bad_State", &etimin, &etimax);
- p += eti_gen(p, E_NO_ROOM, "No_Room", &etimin, &etimax);
- p += eti_gen(p, E_NOT_POSTED, "Not_Posted", &etimin, &etimax);
- p += eti_gen(p, E_UNKNOWN_COMMAND,
- "Unknown_Command", &etimin, &etimax);
- p += eti_gen(p, E_NO_MATCH, "No_Match", &etimin, &etimax);
- p += eti_gen(p, E_NOT_SELECTABLE,
- "Not_Selectable", &etimin, &etimax);
- p += eti_gen(p, E_NOT_CONNECTED,
- "Not_Connected", &etimin, &etimax);
- p += eti_gen(p, E_REQUEST_DENIED,
- "Request_Denied", &etimin, &etimax);
- p += eti_gen(p, E_INVALID_FIELD,
- "Invalid_Field", &etimin, &etimax);
- p += eti_gen(p, E_CURRENT,
- "Current", &etimin, &etimax);
+ printf("define(`CF_CURSES_OK',`%d')", OK);
+ printf("define(`CF_CURSES_ERR',`%d')", ERR);
+ printf("define(`CF_CURSES_TRUE',`%d')", TRUE);
+ printf("define(`CF_CURSES_FALSE',`%d')", FALSE);
+ }
+ break;
+ case 'E':
+ {
+ char *buf = (char *)malloc(2048);
+ char *p = buf;
+ int etimin = E_OK;
+ int etimax = E_OK;
+
+ if (p)
+ {
+ p += eti_gen(p, E_OK, "Ok", &etimin, &etimax);
+ p += eti_gen(p, E_SYSTEM_ERROR, "System_Error", &etimin, &etimax);
+ p += eti_gen(p, E_BAD_ARGUMENT, "Bad_Argument", &etimin, &etimax);
+ p += eti_gen(p, E_POSTED, "Posted", &etimin, &etimax);
+ p += eti_gen(p, E_CONNECTED, "Connected", &etimin, &etimax);
+ p += eti_gen(p, E_BAD_STATE, "Bad_State", &etimin, &etimax);
+ p += eti_gen(p, E_NO_ROOM, "No_Room", &etimin, &etimax);
+ p += eti_gen(p, E_NOT_POSTED, "Not_Posted", &etimin, &etimax);
+ p += eti_gen(p, E_UNKNOWN_COMMAND,
+ "Unknown_Command", &etimin, &etimax);
+ p += eti_gen(p, E_NO_MATCH, "No_Match", &etimin, &etimax);
+ p += eti_gen(p, E_NOT_SELECTABLE,
+ "Not_Selectable", &etimin, &etimax);
+ p += eti_gen(p, E_NOT_CONNECTED,
+ "Not_Connected", &etimin, &etimax);
+ p += eti_gen(p, E_REQUEST_DENIED,
+ "Request_Denied", &etimin, &etimax);
+ p += eti_gen(p, E_INVALID_FIELD,
+ "Invalid_Field", &etimin, &etimax);
+ p += eti_gen(p, E_CURRENT,
+ "Current", &etimin, &etimax);
+ }
+ printf(" subtype Eti_Error is C_Int range %d .. %d;\n\n",
+ etimin, etimax);
+ printf(buf);
}
- printf(" subtype Eti_Error is C_Int range %d .. %d;\n\n",
- etimin,etimax);
- printf(buf);
+ break;
+ default:
+ break;
}
- break;
- default:
- break;
- }
break;
- /* ---------------------------------------------------------------*/
- case 'V' : /* plain version dump */
+ /* --------------------------------------------------------------- */
+ case 'V': /* plain version dump */
{
- switch(argv[2][0]) {
- case '1': /* major version */
+ switch (argv[2][0])
+ {
+ case '1': /* major version */
#ifdef NCURSES_VERSION_MAJOR
- printf("%d",NCURSES_VERSION_MAJOR);
+ printf("%d", NCURSES_VERSION_MAJOR);
#endif
- break;
- case '2': /* minor version */
+ break;
+ case '2': /* minor version */
#ifdef NCURSES_VERSION_MINOR
- printf("%d",NCURSES_VERSION_MINOR);
+ printf("%d", NCURSES_VERSION_MINOR);
#endif
- break;
- case '3': /* patch level */
+ break;
+ case '3': /* patch level */
#ifdef NCURSES_VERSION_PATCH
- printf("%d",NCURSES_VERSION_PATCH);
+ printf("%d", NCURSES_VERSION_PATCH);
#endif
- break;
- default:
- break;
- }
+ break;
+ default:
+ break;
+ }
}
break;
- /* ---------------------------------------------------------------*/
+ /* --------------------------------------------------------------- */
default:
break;
}
return 0;
}
-
-- S P E C --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.22 $
+-- $Revision: 1.25 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
include(`Mouse_Base_Defs')
Bstate : Event_Mask;
end record;
pragma Convention (C, Mouse_Event);
- pragma Pack (Mouse_Event);
include(`Mouse_Event_Rep')
Generation_Bit_Order : constant System.Bit_Order := System.M4_BIT_ORDER;
-- S P E C --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.31 $
+-- $Revision: 1.35 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
include(`Base_Defs')
subtype Column_Count is Column_Position range 1 .. Column_Position'Last;
-- Type to count columns. We do not allow null windows, so must be positive
- type Key_Code is new Natural;
+ type Key_Code is new Integer;
-- That is anything including real characters, special keys and logical
-- request codes.
- subtype Real_Key_Code is Key_Code range 0 .. M4_KEY_MAX;
+ -- FIXME: The "-1" should be Curses_Err
+ subtype Real_Key_Code is Key_Code range -1 .. M4_KEY_MAX;
-- This are the codes that potentially represent a real keystroke.
-- Not all codes may be possible on a specific terminal. To check the
-- availability of a special key, the Has_Key function is provided.
##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
#
# Author: Juergen Pfeifer, 1996
#
-# Version Control
-# $Revision: 1.30 $
+# $Id: Makefile.in,v 1.33 2005/05/28 16:11:01 tom Exp $
#
.SUFFIXES:
ABASE = $(ALIB)-curses
CARGS =-cargs $(ADAFLAGS)
-LARGS =-largs -L../../lib @TEST_ARGS@ $(LD_FLAGS) -lAdaCurses @EXTRA_LIBS@
+LARGS =-largs @TEST_ARG2@ $(LD_FLAGS) -lAdaCurses
PROGS = tour rain ncurses
all :: tour$x rain$x ncurses$x
- @
+ @echo made $@
sources :
- @
+ @echo made $@
libs \
install \
install.libs ::
- @
+ @echo made $@
uninstall \
uninstall.libs ::
- @
+ @echo made $@
ncurses$x :
$(ADAMAKE) $(ADAMAKEFLAGS) ncurses $(CARGS) $(LARGS)
$(ADAMAKE) $(ADAMAKEFLAGS) rain $(CARGS) $(LARGS)
mostlyclean:
- @
+ @echo made $@
clean :: mostlyclean
rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] \
rm -f Makefile
realclean :: distclean
- @
-
-
+ @echo made $@
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.6 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
-- Windows and scrolling tester.
);
buf : Bounded_String;
- do_keypad : Boolean := HaveKeyPad (curpw);
- do_scroll : Boolean := HaveScroll (curpw);
+ do_keypad : constant Boolean := HaveKeyPad (curpw);
+ do_scroll : constant Boolean := HaveScroll (curpw);
pos : Natural;
res : pair;
i : Line_Position := 0;
j : Column_Position := 0;
- si : Line_Position := lri - uli + 1;
- sj : Column_Position := lrj - ulj + 1;
+ si : constant Line_Position := lri - uli + 1;
+ sj : constant Column_Position := lrj - ulj + 1;
begin
res.y := uli;
res.x := ulj;
Allow_Scrolling (Mode => True);
- End_Mouse;
+ End_Mouse (Mask2);
Set_Raw_Mode (SwitchOn => True);
Erase;
End_Windows;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.4 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
procedure show_upper_chars (first : Integer) is
- C1 : Boolean := (first = 128);
- last : Integer := first + 31;
+ C1 : constant Boolean := (first = 128);
+ last : constant Integer := first + 31;
package p is new ncurses2.genericPuts (200);
use p;
use p.BS;
for code in first .. last loop
declare
- row : Line_Position := Line_Position (4 + ((code - first) mod 16));
- col : Column_Position := Column_Position (((code - first) / 16) *
- Integer (Columns) / 2);
+ row : constant Line_Position
+ := Line_Position (4 + ((code - first) mod 16));
+ col : constant Column_Position
+ := Column_Position (((code - first) / 16) *
+ Integer (Columns) / 2);
tmp3 : String (1 .. 3);
tmpx : String (1 .. Integer (Columns / 4));
reply : Key_Code;
code : Attributed_Character)
return Integer is
height : constant Integer := 16;
- row : Line_Position := Line_Position (4 + (N mod height));
- col : Column_Position := Column_Position ((N / height) *
+ row : constant Line_Position := Line_Position (4 + (N mod height));
+ col : constant Column_Position := Column_Position ((N / height) *
Integer (Columns) / 2);
tmpx : String (1 .. Integer (Columns) / 3);
begin
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2001,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.2 $
+-- $Revision: 1.5 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
elsif ncv > 0 and has_A_COLOR (Get_Background) then
declare
Color_Supported_Attributes :
- Character_Attribute_Set := make_record (ncv);
+ constant Character_Attribute_Set := make_record (ncv);
begin
if intersect (Color_Supported_Attributes, attr) then
Add (Str => " (NCV) ");
procedure attr_getc (skip : out Integer; fg, bg : in out Color_Number;
result : out Boolean) is
- ch : Key_Code := Getchar;
+ ch : constant Key_Code := Getchar;
nc : constant Color_Number := Color_Number (Number_Of_Colors);
curscr : Window;
pragma Import (C, curscr, "curscr");
-- row := 2; -- weird, row is set to 0 without this.
-- TODO delete the above line, it was a gdb quirk that confused me
if Has_Colors then declare
- pair : Color_Pair :=
+ pair : constant Color_Pair :=
Color_Pair (fg * Color_Number (Number_Of_Colors) + bg);
begin
-- Go though each color pair. Assume that the number of
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.4 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
current : Color_Number := 0;
field : RGB_Enum := Redx;
this_c : Key_Code := 0;
- last_c : Key_Code;
begin
Refresh;
Move_Cursor (Line => 2 + Line_Position (current), Column => 0);
- last_c := this_c;
this_c := Getchar;
if Is_Digit (this_c) then
value := 0;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.4 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
);
c : Key_Code := Getchar (w);
- me : Field := Current (f);
+ me : constant Field := Current (f);
begin
if c = Character'Pos (']') mod 16#20# then
end form_virtualize;
function my_form_driver (f : Form; c : Key_Code) return Boolean is
- flag : Driver_Result := Driver (f, F_Validate_Field);
+ flag : constant Driver_Result := Driver (f, F_Validate_Field);
begin
if c = Form_Request_Code'Last + 1
and flag = Form_Ok then
function make_label (frow : Line_Position;
fcol : Column_Position;
label : String) return Field is
- f : Field := Create (1, label'Length, frow, fcol, 0, 0);
+ f : constant Field := Create (1, label'Length, frow, fcol, 0, 0);
o : Field_Option_Set := Get_Options (f);
begin
if f /= Null_Field then
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.5 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
package myP is new System.Address_To_Access_Conversions (timeval);
use myP;
- t : Object_Pointer := new timeval;
+ t : constant Object_Pointer := new timeval;
function gettimeofday
(TP : System.Storage_Elements.Integer_Address;
(myP.To_Address (t)),
System.Storage_Elements.To_Integer
(myP.To_Address (null)));
- retval.seconds := Integer (t.tv_sec);
- retval.microseconds := Integer (t.tv_usec);
+ if tmp < 0 then
+ retval.seconds := 0;
+ retval.microseconds := 0;
+ else
+ retval.seconds := Integer (t.tv_sec);
+ retval.microseconds := Integer (t.tv_usec);
+ end if;
return retval;
end gettime;
"Use <,> (or h,l) to grow/shrink the panner horizontally. ");
legendsize : constant := 4;
- n : Integer := legendsize - Integer (Lines - line);
+ n : constant Integer := legendsize - Integer (Lines - line);
begin
if line < Lines and n >= 0 then
Move_Cursor (Line => line, Column => 0);
end panner_legend;
procedure panner_legend (line : Line_Position) is
- tmp : Boolean;
begin
- tmp := panner_legend (line);
+ if not panner_legend (line) then
+ Beep;
+ end if;
end panner_legend;
procedure panner_h_cleanup (from_y : Line_Position;
when Key_Cursor_Right =>
-- pan rightwards
-- if (basex + portx - (pymax > porty) < pxmax)
- if (basex + portx -
- Column_Position (greater (pymax, porty)) < pxmax) then
+ if basex + portx -
+ Column_Position (greater (pymax, porty)) < pxmax then
-- if basex + portx < pxmax or
-- (pymax > porty and basex + portx - 1 < pxmax) then
basex := basex + 1;
when Key_Cursor_Down =>
-- pan downwards
-- same as if (basey + porty - (pxmax > portx) < pymax)
- if (basey + porty -
- Line_Position (greater (pxmax, portx)) < pymax) then
+ if basey + porty -
+ Line_Position (greater (pxmax, portx)) < pymax then
-- if (basey + porty < pymax) or
-- (pxmax > portx and basey + porty - 1 < pymax) then
basey := basey + 1;
when Character'Pos ('E') |
Key_End |
Key_Select =>
- basey := pymax - porty;
- if basey < 0 then -- basey := max(basey, 0);
+ if pymax < porty then
basey := 0;
+ else
+ basey := pymax - porty;
end if;
when others =>
-- in C was ... pxmax > portx - 1
if scrollers and pxmax >= portx then
declare
- length : Column_Position := portx - top_x - 1;
+ length : constant Column_Position := portx - top_x - 1;
lowend, highend : Column_Position;
begin
-- Instead of using floats, I'll use integers only.
if scrollers and pymax >= porty then
declare
- length : Line_Position := porty - top_y - 1;
+ length : constant Line_Position := porty - top_y - 1;
lowend, highend : Line_Position;
begin
lowend := top_y + (basey * length) / pymax;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.4 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
procedure wait_a_while (msec : Integer) is
begin
-- The C version had some #ifdef blocks here
- if nap_msec = 1 then
+ if msec = 1 then
Getchar;
else
- Nap_Milli_Seconds (nap_msec);
+ Nap_Milli_Seconds (msec);
end if;
end wait_a_while;
use PUD;
procedure fill_panel (pan : Panel) is
- win : Window := Panel_Window (pan);
- num : Character := Get_User_Data (pan) (2);
+ win : constant Window := Panel_Window (pan);
+ num : constant Character := Get_User_Data (pan) (2);
tmp6 : String (1 .. 6) := "-panx-";
maxy : Line_Count;
maxx : Column_Count;
end loop;
end fill_panel;
- modstr : array (0 .. 5) of String (1 .. 5) :=
+ modstr : constant array (0 .. 5) of String (1 .. 5) :=
("test ",
"TEST ",
"(**) ",
for y in 0 .. 4 loop
declare
p1, p2, p3, p4, p5 : Panel;
- U1 : User_Data_Access := new User_Data'("p1");
- U2 : User_Data_Access := new User_Data'("p2");
- U3 : User_Data_Access := new User_Data'("p3");
- U4 : User_Data_Access := new User_Data'("p4");
- U5 : User_Data_Access := new User_Data'("p5");
+ U1 : constant User_Data_Access := new User_Data'("p1");
+ U2 : constant User_Data_Access := new User_Data'("p2");
+ U3 : constant User_Data_Access := new User_Data'("p3");
+ U4 : constant User_Data_Access := new User_Data'("p4");
+ U5 : constant User_Data_Access := new User_Data'("p5");
begin
p1 := mkpanel (Red, Lines / 2 - 2, Columns / 8 + 1, 0, 0);
for itmp in 0 .. 5 loop
declare
- w4 : Window := Panel_Window (p4);
- w5 : Window := Panel_Window (p5);
+ w4 : constant Window := Panel_Window (p4);
+ w5 : constant Window := Panel_Window (p5);
begin
saywhat ("m4; press any key to continue");
rmpanel (p5);
pflush;
wait_a_while (nap_msec);
- if (nap_msec = 1) then
+ if nap_msec = 1 then
exit;
else
nap_msec := 100;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.5 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
-- Character input test
y : Line_Position;
tmpx : Integer;
incount : Integer := 0;
+
begin
Refresh;
tmp2 := Start_Mouse (All_Events);
Add (Ch => newl);
elsif c > 16#80# then -- TODO fix, use constant if possible
declare
- c2 : Character := Character'Val (c mod 16#80#);
+ c2 : constant Character := Character'Val (c mod 16#80#);
begin
if Ada.Characters.Handling.Is_Graphic (c2) then
Add (Str => "M-");
Add (Ch => newl);
end;
else declare
- c2 : Character := Character'Val (c mod 16#80#);
+ c2 : constant Character := Character'Val (c mod 16#80#);
begin
if Ada.Characters.Handling.Is_Graphic (c2) then
Add (Ch => c2);
end loop;
end loop;
- tmp2 := Start_Mouse (No_Events);
+ End_Mouse (tmp2);
Set_Timeout_Mode (Mode => Blocking, Amount => 0); -- amount is ignored
Set_Raw_Mode (SwitchOn => False);
Set_NL_Mode (SwitchOn => True);
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.3 $
+-- $Revision: 1.6 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
-- A simplified version of the GNU getopt function
package body ncurses2.getopt is
- optopt : Character := '?';
-
nextchar : Natural := 0;
-- Ncurses doesn't use the non option elements so we are spared
-- Look at and handle the next short option-character.
declare
c : Character := argv (optind) (nextchar);
- temp : Natural :=
+ temp : constant Natural :=
Ada.Strings.Fixed.Index (optstring, String'(1 => c));
begin
if temp = 0 or c = ':' then
Put_Line (Standard_Error,
argv (optind) & ": invalid option -- " & c);
- optopt := c;
c := '?';
return;
end if;
Put_Line (Standard_Error,
argv (optind) &
": option requires an argument -- " & c);
- optopt := c;
if optstring (1) = ':' then
c := ':';
else
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.2 $
+-- $Revision: 1.5 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
-- TODO use Default_Character where appropriate
default_colors := True;
when 'e' =>
myio.Get (optarg.all, tmpi, length);
- if Integer (tmpi) > 3 then
+ if tmpi > 3 then
usage;
return 1;
end if;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.5 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
items_a : Item_Array_Access := new Item_Array (1 .. animals'Last + 1);
tmp : Event_Mask;
+
procedure xAdd (l : Line_Position; c : Column_Position; s : String) is
begin
Add (Line => l, Column => c, Str => s);
Delete (m);
- tmp := Start_Mouse (No_Events);
+ End_Mouse (tmp);
end ncurses2.menu_test;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.4 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
Get_Size (win, y1, x1);
for y in 0 .. y1 - 1 loop
for x in 0 .. x1 - 1 loop
- if (((x > (x1 - 1) / 3) and (x <= (2 * (x1 - 1)) / 3))
- or (((y > (y1 - 1) / 3) and (y <= (2 * (y1 - 1)) / 3)))) then
+ if ((x > (x1 - 1) / 3) and (x <= (2 * (x1 - 1)) / 3))
+ or (((y > (y1 - 1) / 3) and (y <= (2 * (y1 - 1)) / 3))) then
Move_Cursor (win, y, x);
Add (win, Ch => ch);
end if;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.6 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with ncurses2.util; use ncurses2.util;
Len : int) return int;
pragma Import (C, Wgetnstr, "wgetnstr");
- Txt : char_array (0 .. 10);
+ -- FIXME: how to construct "(Len > 0) ? Len : 80"?
+ Ask : constant Interfaces.C.size_t := Interfaces.C.size_t'Val (Len + 80);
+ Txt : char_array (0 .. Ask);
+
begin
Txt (0) := Interfaces.C.char'First;
- if Wgetnstr (Win, Txt, 8) = Curses_Err then
+ if Wgetnstr (Win, Txt, Txt'Length) = Curses_Err then
raise Curses_Exception;
end if;
Str := To_Unbounded_String (To_Ada (Txt, True));
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
-- Version Control
--- $Revision: 1.1 $
+-- $Revision: 1.5 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Terminal_Interface.Curses; use Terminal_Interface.Curses;
end Getchar;
procedure Getchar (win : Window := Standard_Window) is
- x : Key_Code;
begin
- x := Getchar (win);
+ if Getchar (win) < 0 then
+ Beep;
+ end if;
end Getchar;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.12 $
+-- $Revision: 1.15 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Terminal_Interface.Curses; use Terminal_Interface.Curses;
New_Item ("Mouse Demo"),
Null_Item);
M : Menu := New_Menu (Itm);
- U1 : User_Data_Access := new User_Data'(4711);
+ U1 : constant User_Data_Access := new User_Data'(4711);
U2 : User_Data_Access;
function My_Driver (M : Menu;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.15 $
+-- $Revision: 1.18 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
-- Poor mans help system. This scans a sequential file for key lines and
Help_Keys : constant String := "HELPKEYS";
In_Help : constant String := "INHELP";
- File_Name : String := "explain.msg";
+ File_Name : constant String := "explain.msg";
F : File_Type;
type Help_Line;
Current : Help_Line_Access;
Top_Line : Help_Line_Access;
- Has_More : Boolean;
+ Has_More : Boolean := True;
procedure Unknown_Key
is
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.13 $
+-- $Revision: 1.16 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
Text : String) return Field
is
Fld : Field;
- C : Column_Count := Column_Count (Text'Length);
+ C : constant Column_Count := Column_Count (Text'Length);
begin
Fld := New_Field (1, C, Top, Left);
Set_Buffer (Fld, 0, Text);
Left : Column_Position;
Off_Screen : Natural := 0) return Field
is
- Fld : Field := New_Field (Height, Width, Top, Left, Off_Screen);
+ Fld : constant Field := New_Field (Height, Width, Top, Left, Off_Screen);
begin
if Has_Colors then
Set_Foreground (Fld => Fld, Color => Form_Fore_Color);
P : Panel) return Boolean
is
begin
+ if P = Null_Panel then
+ raise Panel_Exception;
+ end if;
if K in User_Key_Code'Range and then K = QUIT then
if Driver (F, F_Validate_Field) = Form_Ok then
return True;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.10 $
+-- $Revision: 1.13 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Sample.Form_Demo.Aux;
end if;
loop
declare
- K : Key_Code := Aux.Get_Request (F, Pan, Handle_CRLF);
+ K : constant Key_Code := Aux.Get_Request (F, Pan, Handle_CRLF);
R : Driver_Result;
begin
if (K = 13 or else K = 10) and then not Handle_CRLF then
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.10 $
+-- $Revision: 1.13 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Terminal_Interface.Curses; use Terminal_Interface.Curses;
with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
with Terminal_Interface.Curses.Forms.Field_User_Data;
-with Terminal_Interface.Curses.Forms.Form_User_Data;
with Sample.My_Field_Type; use Sample.My_Field_Type;
with Sample.Explanation; use Sample.Explanation;
with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
Terminal_Interface.Curses.Forms.Field_User_Data (User_Data,
User_Access);
- package Frm_U is new
- Terminal_Interface.Curses.Forms.Form_User_Data (User_Data,
- User_Access);
-
type Weekday is (Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday);
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.10 $
+-- $Revision: 1.13 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Unchecked_Deallocation;
P.Help := Active_Context;
P.Notepad := Active_Notepad;
-- The notepad must now vanish and the new notepad is empty.
- if (P.Notepad /= Null_Panel) then
+ if P.Notepad /= Null_Panel then
Hide (P.Notepad);
Update_Panels;
end if;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.11 $
+-- $Revision: 1.14 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Calendar; use Ada.Calendar;
"November ",
"December ");
- Now : Time := Clock;
- Sec : Integer := Integer (Seconds (Now));
- Hour : Integer := Sec / 3600;
- Minute : Integer := (Sec - Hour * 3600) / 60;
- Mon : Month_Number := Month (Now);
- D : Day_Number := Day (Now);
+ Now : constant Time := Clock;
+ Sec : constant Integer := Integer (Seconds (Now));
+ Hour : constant Integer := Sec / 3600;
+ Minute : constant Integer := (Sec - Hour * 3600) / 60;
+ Mon : constant Month_Number := Month (Now);
+ D : constant Day_Number := Day (Now);
begin
if Header_Window /= Null_Window then
if Minute /= Display_Min or else Hour /= Display_Hour
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.9 $
+-- $Revision: 1.12 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Strings; use Ada.Strings;
is
Ch : Character;
begin
+ if P = Null_Panel then
+ raise Panel_Exception;
+ end if;
if C in User_Key_Code'Range and then C = QUIT then
if Driver (F, F_Validate_Field) = Form_Ok then
K := Key_None;
end if;
elsif C in Normal_Key_Code'Range then
Ch := Character'Val (C);
- if (Ch = LF or else Ch = CR) then
+ if Ch = LF or else Ch = CR then
if Driver (F, F_Validate_Field) = Form_Ok then
declare
Buffer : String (1 .. Positive (Columns - 11));
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.12 $
+-- $Revision: 1.15 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Sample.Menu_Demo.Aux;
loop
declare
K : Key_Code := Aux.Get_Request (M, Pan);
- R : Driver_Result := Driver (M, K);
+ R : constant Driver_Result := Driver (M, K);
begin
case R is
when Menu_Ok => null;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.13 $
+-- $Revision: 1.17 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Terminal_Interface.Curses; use Terminal_Interface.Curses;
P : Panel) return Boolean
is
begin
+ if M = Null_Menu then
+ raise Menu_Exception;
+ end if;
+ if P = Null_Panel then
+ raise Panel_Exception;
+ end if;
To_Change := No_Change;
if K in User_Key_Code'Range then
if K = QUIT then
Null_Item);
M : Menu := New_Menu (Itm);
- U1 : User_Data_Access := new User_Data'(4711);
+ U1 : constant User_Data_Access := new User_Data'(4711);
U2 : User_Data_Access;
- U3 : User_Data_Access := new User_Data'(4712);
+ U3 : constant User_Data_Access := new User_Data'(4712);
U4 : User_Data_Access;
function My_Driver (M : Menu;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.9 $
+-- $Revision: 1.13 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
--
package body Sample.My_Field_Type is
- -- That's simple. There are no field validity checks.
+ -- That's simple. There are minimal field validity checks.
function Field_Check (Fld : Field;
Typ : My_Data) return Boolean
is
begin
+ if Fld = Null_Field or Typ.Ch = Character'Val (0) then
+ return False;
+ end if;
return True;
end Field_Check;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control
--- $Revision: 1.11 $
+-- $Revision: 1.14 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Numerics.Generic_Elementary_Functions;
W : Window;
P : Panel := Create (Standard_Window);
K : Real_Key_Code;
- Im : Complex := (0.0, 1.0);
- Fx : Fix := 3.14;
- Dc : Dec := 2.72;
+ Im : constant Complex := (0.0, 1.0);
+ Fx : constant Fix := 3.14;
+ Dc : constant Dec := 2.72;
L : Md;
begin
##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2004 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"), #
#
# Author: Juergen Pfeifer, 1996
#
-# Version Control
-# $Revision: 1.28 $
+# $Id: Makefile.in,v 1.30 2004/08/21 21:29:50 tom Exp $
#
.SUFFIXES:
@sh -c 'for f in $(LIBALIS) $(GENALIS); do test -f $$f || touch $$f; done'
sources :
- @
+ @echo made $@
libs \
install \
install.libs \
uninstall \
uninstall.libs ::
- @
+ @echo made $@
generics: $(GENALIS)
- @
+ @echo made $@
mostlyclean ::
rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] *.a
$(ABASE)-trace.adb : $(srcdir)/$(ABASE)-trace.adb_p
rm -f $@
- $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ $(srcdir)/$(ABASE)-trace.adb_p $@
+ $(ADAPREP) -DADA_TRACE=@ADA_TRACE@ -DPRAGMA_UNREF=@PRAGMA_UNREF@ $(srcdir)/$(ABASE)-trace.adb_p $@
$(ABASE)-trace.o: \
$(ABASE)-trace.ads \
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.7 $
+-- $Revision: 1.10 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Characters.Handling; use Ada.Characters.Handling;
I.Match_Must_Be_Unique := Must_Be_Unique;
for E in T'Range loop
- I.Names (J) := new String'(T'Image (T (E)));
+ I.Names (J) := new String'(T'Image (E));
-- The Image attribute defaults to upper case, so we have to handle
-- only the other ones...
if Set /= Upper_Case then
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.10 $
+-- $Revision: 1.13 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Unchecked_Conversion;
Usr : System.Address) return C_Int
is
Result : Boolean;
- Udf : User_Defined_Field_Type_With_Choice_Access :=
+ Udf : constant User_Defined_Field_Type_With_Choice_Access :=
User_Defined_Field_Type_With_Choice_Access
(To_Argument_Access (Usr).Typ);
begin
Usr : System.Address) return C_Int
is
Result : Boolean;
- Udf : User_Defined_Field_Type_With_Choice_Access :=
+ Udf : constant User_Defined_Field_Type_With_Choice_Access :=
User_Defined_Field_Type_With_Choice_Access
(To_Argument_Access (Usr).Typ);
begin
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.10 $
+-- $Revision: 1.13 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Unchecked_Conversion;
function Allocate_Arg (T : User_Defined_Field_Type'Class)
return Argument_Access
is
- Ptr : Field_Type_Access := new User_Defined_Field_Type'Class'(T);
+ Ptr : constant Field_Type_Access
+ := new User_Defined_Field_Type'Class'(T);
begin
return new Argument'(Usr => System.Null_Address,
Typ => Ptr,
Usr : System.Address) return C_Int
is
Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
+ Udf : constant User_Defined_Field_Type_Access :=
User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
begin
Result := Field_Check (Fld, Udf.all);
Usr : System.Address) return C_Int
is
Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
+ Udf : constant User_Defined_Field_Type_Access :=
User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
begin
Result := Character_Check (Character'Val (Ch), Udf.all);
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.14 $
+-- $Revision: 1.17 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Interfaces.C;
Typ : Field_Type'Class;
Cft : C_Field_Type := C_Builtin_Router)
is
- Usr_Arg : System.Address := Get_Arg (Fld);
+ Usr_Arg : constant System.Address := Get_Arg (Fld);
Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
Arg : Argument_Access;
Res : Eti_Error;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.22 $
+-- $Revision: 1.25 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Unchecked_Deallocation;
Opt : C_Int) return C_Int;
pragma Import (C, Set_Field_Opts, "set_field_opts");
- Opt : C_Int := FOS_2_CInt (Options);
+ Opt : constant C_Int := FOS_2_CInt (Options);
Res : Eti_Error;
begin
Res := Set_Field_Opts (Fld, Opt);
pragma Import (C, Field_Opts_Off, "field_opts_off");
Err : Eti_Error;
- Opt : C_Int := FOS_2_CInt (Options);
+ Opt : constant C_Int := FOS_2_CInt (Options);
begin
if On then
Err := Field_Opts_On (Fld, Opt);
function Field_Opts (Fld : Field) return C_Int;
pragma Import (C, Field_Opts, "field_opts");
- Res : C_Int := Field_Opts (Fld);
+ Res : constant C_Int := Field_Opts (Fld);
begin
Options := CInt_2_FOS (Res);
end Get_Options;
Opt : C_Int) return C_Int;
pragma Import (C, Set_Form_Opts, "set_form_opts");
- Opt : C_Int := FrmOS_2_CInt (Options);
+ Opt : constant C_Int := FrmOS_2_CInt (Options);
Res : Eti_Error;
begin
Res := Set_Form_Opts (Frm, Opt);
pragma Import (C, Form_Opts_Off, "form_opts_off");
Err : Eti_Error;
- Opt : C_Int := FrmOS_2_CInt (Options);
+ Opt : constant C_Int := FrmOS_2_CInt (Options);
begin
if On then
Err := Form_Opts_On (Frm, Opt);
function Form_Opts (Frm : Form) return C_Int;
pragma Import (C, Form_Opts, "form_opts");
- Res : C_Int := Form_Opts (Frm);
+ Res : constant C_Int := Form_Opts (Frm);
begin
Options := CInt_2_FrmOS (Res);
end Get_Options;
function Frm_Driver (Frm : Form; Key : C_Int) return C_Int;
pragma Import (C, Frm_Driver, "form_driver");
- R : Eti_Error := Frm_Driver (Frm, C_Int (Key));
+ R : constant Eti_Error := Frm_Driver (Frm, C_Int (Key));
begin
if R /= E_Ok then
if R = E_Unknown_Command then
begin
if FA /= null and then Free_Fields then
for I in FA'First .. (FA'Last - 1) loop
- if (FA (I) /= Null_Field) then
+ if FA (I) /= Null_Field then
Delete (FA (I));
end if;
end loop;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.22 $
+-- $Revision: 1.25 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Ada.Unchecked_Deallocation;
type Desc_String_Ptr is access Desc_String;
pragma Controlled (Desc_String_Ptr);
- Name_Str : Name_String_Ptr := new Name_String;
- Desc_Str : Desc_String_Ptr := new Desc_String;
+ Name_Str : constant Name_String_Ptr := new Name_String;
+ Desc_Str : constant Desc_String_Ptr := new Desc_String;
Name_Len, Desc_Len : size_t;
Result : Item;
begin
Opt : C_Int) return C_Int;
pragma Import (C, Set_Item_Opts, "set_item_opts");
- Opt : C_Int := IOS_2_CInt (Options);
+ Opt : constant C_Int := IOS_2_CInt (Options);
Res : Eti_Error;
begin
Res := Set_Item_Opts (Itm, Opt);
Opt : C_Int) return C_Int;
pragma Import (C, Item_Opts_Off, "item_opts_off");
- Opt : C_Int := IOS_2_CInt (Options);
+ Opt : constant C_Int := IOS_2_CInt (Options);
Err : Eti_Error;
begin
if On then
function Item_Opts (Itm : Item) return C_Int;
pragma Import (C, Item_Opts, "item_opts");
- Res : C_Int := Item_Opts (Itm);
+ Res : constant C_Int := Item_Opts (Itm);
begin
Options := CInt_2_IOS (Res);
end Get_Options;
Opt : C_Int) return C_Int;
pragma Import (C, Set_Menu_Opts, "set_menu_opts");
- Opt : C_Int := MOS_2_CInt (Options);
+ Opt : constant C_Int := MOS_2_CInt (Options);
Res : Eti_Error;
begin
Res := Set_Menu_Opts (Men, Opt);
Opt : C_Int) return C_Int;
pragma Import (C, Menu_Opts_Off, "menu_opts_off");
- Opt : C_Int := MOS_2_CInt (Options);
+ Opt : constant C_Int := MOS_2_CInt (Options);
Err : Eti_Error;
begin
if On then
function Menu_Opts (Men : Menu) return C_Int;
pragma Import (C, Menu_Opts, "menu_opts");
- Res : C_Int := Menu_Opts (Men);
+ Res : constant C_Int := Menu_Opts (Men);
begin
Options := CInt_2_MOS (Res);
end Get_Options;
Key : C_Int) return C_Int;
pragma Import (C, Driver, "menu_driver");
- R : Eti_Error := Driver (Men, C_Int (Key));
+ R : constant Eti_Error := Driver (Men, C_Int (Key));
begin
if R /= E_Ok then
case R is
begin
if IA /= null and then Free_Items then
for I in IA'First .. (IA'Last - 1) loop
- if (IA (I) /= Null_Item) then
+ if IA (I) /= Null_Item then
Delete (IA (I));
end if;
end loop;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.18 $
+-- $Revision: 1.21 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with System;
Old : aliased Event_Mask;
begin
R := MMask (Mask, Old'Access);
+ if R = No_Events then
+ Beep;
+ end if;
return Old;
end Start_Mouse;
procedure End_Mouse (Mask : in Event_Mask := No_Events)
is
begin
- null;
+ if Mask /= No_Events then
+ Beep;
+ end if;
end End_Mouse;
procedure Dispatch_Event (Mask : in Event_Mask;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.10 $
+-- $Revision: 1.13 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
function Panel_Win (Pan : Panel) return Window;
pragma Import (C, Panel_Win, "panel_window");
- Win : Window := Panel_Win (Pan);
+ Win : constant Window := Panel_Win (Pan);
begin
if Win = Null_Window then
raise Panel_Exception;
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.6 $
+-- $Revision: 1.9 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
pragma Import (C, tgetent, "tgetent");
NameTxt : char_array (0 .. Name'Length);
Length : size_t;
- ignored : char_array (0 .. 0) := (0 => nul);
+ ignored : constant char_array (0 .. 0) := (0 => nul);
result : C_Int;
begin
To_C (Name, NameTxt, Length);
Length : size_t;
Txt2 : chars_ptr;
type t is new char_array (0 .. 1024); -- does it need to be 1024?
- Return_Buffer : t := (others => nul);
+ Return_Buffer : constant t := (others => nul);
begin
To_C (Name, Txt, Length);
Txt2 := tgetstr (Txt, char_array (Return_Buffer));
Length : size_t;
Txt2 : chars_ptr;
type t is new char_array (0 .. 1024); -- does it need to be 1024?
- Phony_Txt : t := (others => nul);
+ Phony_Txt : constant t := (others => nul);
begin
To_C (Name, Txt, Length);
Txt2 := tgetstr (Txt, char_array (Phony_Txt));
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.14 $
+-- $Revision: 1.17 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
package body Terminal_Interface.Curses.Text_IO is
N_Cols : Column_Count;
begin
Get_Size (Win, N_Lines, N_Cols);
- if Natural (N_Cols) > Natural (Count'Last) then
- raise Layout_Error;
- end if;
+ -- if Natural (N_Cols) > Natural (Count'Last) then
+ -- raise Layout_Error;
+ -- end if;
return Count (N_Cols);
end Line_Length;
return 0;
else
Get_Size (Win, N_Lines, N_Cols);
- if Natural (N_Lines) > Natural (Count'Last) then
- raise Layout_Error;
- end if;
+ -- if Natural (N_Lines) > Natural (Count'Last) then
+ -- raise Layout_Error;
+ -- end if;
return Count (N_Lines);
end if;
end Page_Length;
begin
Get_Cursor_Position (Win, Y, X);
N := Natural (X); N := N + 1;
- if N > Natural (Count'Last) then
- raise Layout_Error;
- end if;
+ -- if N > Natural (Count'Last) then
+ -- raise Layout_Error;
+ -- end if;
return Positive_Count (N);
end Col;
begin
Get_Cursor_Position (Win, Y, X);
N := Natural (Y); N := N + 1;
- if N > Natural (Count'Last) then
- raise Layout_Error;
- end if;
+ -- if N > Natural (Count'Last) then
+ -- raise Layout_Error;
+ -- end if;
return Positive_Count (N);
end Line;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 2000 Free Software Foundation, Inc. --
+-- Copyright (c) 2000,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.4 $
+-- $Revision: 1.5 $
-- Binding Version 01.00
------------------------------------------------------------------------------
#if ADA_TRACE then
end Trace_Put;
#else
procedure Trace_On (x : Trace_Attribute_Set) is
+#if PRAGMA_UNREF
+ pragma Unreferenced (x);
+#end if;
begin
null;
end Trace_On;
procedure Trace_Put (str : String) is
+#if PRAGMA_UNREF
+ pragma Unreferenced (str);
+#end if;
begin
null;
end Trace_Put;
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998,2004 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 --
------------------------------------------------------------------------------
-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- $Revision: 1.29 $
+-- $Revision: 1.32 $
+-- $Date: 2004/08/21 21:37:00 $
-- Binding Version 01.00
------------------------------------------------------------------------------
with System;
function Dupwin (Win : Window) return Window;
pragma Import (C, Dupwin, "dupwin");
- W : Window := Dupwin (Win);
+ W : constant Window := Dupwin (Win);
begin
if W = Null_Window then
raise Curses_Exception;
procedure No_Qiflush;
pragma Import (C, No_Qiflush, "noqiflush");
begin
+ if Win = Null_Window then
+ raise Curses_Exception;
+ end if;
if Flush then
Qiflush;
else
is
-- Please note: in ncurses they are one off.
-- This might be different in other implementations of curses
- Y : C_Int := C_Int (W_Get_Short (Win, Offset_maxy)) + C_Int (Offset_XY);
- X : C_Int := C_Int (W_Get_Short (Win, Offset_maxx)) + C_Int (Offset_XY);
+ Y : constant C_Int := C_Int (W_Get_Short (Win, Offset_maxy))
+ + C_Int (Offset_XY);
+ X : constant C_Int := C_Int (W_Get_Short (Win, Offset_maxx))
+ + C_Int (Offset_XY);
begin
Number_Of_Lines := Line_Count (Y);
Number_Of_Columns := Column_Count (X);
Top_Left_Line : out Line_Position;
Top_Left_Column : out Column_Position)
is
- Y : C_Short := W_Get_Short (Win, Offset_begy);
- X : C_Short := W_Get_Short (Win, Offset_begx);
+ Y : constant C_Short := W_Get_Short (Win, Offset_begy);
+ X : constant C_Short := W_Get_Short (Win, Offset_begx);
begin
Top_Left_Line := Line_Position (Y);
Top_Left_Column := Column_Position (X);
Line : out Line_Position;
Column : out Column_Position)
is
- Y : C_Short := W_Get_Short (Win, Offset_cury);
- X : C_Short := W_Get_Short (Win, Offset_curx);
+ Y : constant C_Short := W_Get_Short (Win, Offset_cury);
+ X : constant C_Short := W_Get_Short (Win, Offset_curx);
begin
Line := Line_Position (Y);
Column := Column_Position (X);
Top_Left_Column : out Column_Position;
Is_Not_A_Subwindow : out Boolean)
is
- Y : C_Int := W_Get_Int (Win, Offset_pary);
- X : C_Int := W_Get_Int (Win, Offset_parx);
+ Y : constant C_Int := W_Get_Int (Win, Offset_pary);
+ X : constant C_Int := W_Get_Int (Win, Offset_parx);
begin
if Y = -1 then
Top_Left_Line := Line_Position'Last;
pragma Import (C, Winchnstr, "winchnstr");
N : Integer := Len;
- Txt : chtype_array (0 .. Str'Length) := (0 => Default_Character);
+ Txt : constant chtype_array (0 .. Str'Length)
+ := (0 => Default_Character);
Cnt : Natural := 0;
begin
if N < 0 then
pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
- C_Int (Black));
+ C_Int (Back));
begin
if Err = Curses_Err then
raise Curses_Exception;
--- $Id: INSTALL,v 1.71 2004/02/07 21:06:05 tom Exp $
+-- $Id: INSTALL,v 1.98 2005/10/09 14:09:37 tom Exp $
---------------------------------------------------------------------
How to install Ncurses/Terminfo on your system
---------------------------------------------------------------------
If you are converting from BSD curses and do not have root access, be sure
to read the BSD CONVERSION NOTES section below.
-If you are using a version of XFree86 xterm older than 3.1.2F, see the section
-on RECENT XTERM VERSIONS below.
-
-If you are trying to build GNU Emacs using ncurses for terminal support,
-read the USING NCURSES WITH EMACS section below.
-
If you are trying to build applications using gpm with ncurses,
read the USING NCURSES WITH GPM section below.
REQUIREMENTS:
------------
-You will need the following in order to build and install ncurses under UNIX:
+You will need the following to build and install ncurses under UNIX:
* ANSI C compiler (gcc, for instance)
* sh (bash will do)
with it.
The --prefix option to configure changes the root directory for installing
- ncurses. The default is in subdirectories of /usr/local. Use
- --prefix=/usr to replace your default curses distribution. This is the
- default for Linux and BSD/OS users.
+ ncurses. The default is normally in subdirectories of /usr/local, except
+ for systems where ncurses is normally installed as a system library, e.g.,
+ Linux, the various BSD systems and Cygwin. Use --prefix=/usr to replace
+ your default curses distribution.
The package gets installed beneath the --prefix directory as follows:
In $(prefix)/include: C header files
Under $(prefix)/man: the manual pages
- Note however that the configure script attempts to locate previous
- installation of ncurses, and will set the default prefix according to where
- it finds the ncurses headers.
+ Note that the configure script attempts to locate previous installation of
+ ncurses, and will set the default prefix according to where it finds the
+ ncurses headers.
+
+ Do not use commands such as
+
+ make install prefix=XXX
+
+ to change the prefix after configuration, since the prefix value is used
+ for some absolute pathnames such as TERMINFO. Instead do this
+
+ make install DESTDIR=XXX
+
+ See also the discussion of --with-install-prefix.
2. Type `./configure' in the top-level directory of the distribution to
configure ncurses for your operating system and create the Makefiles.
more likely writable than the system terminfo database. Use this
option to disable the feature altogether.
+ --disable-largefile
+ Disable compiler flags needed to use large-file interfaces.
+
--disable-leaks
For testing, compile-in code that frees memory that normally would not
be freed, to simplify analysis of memory-leaks.
+ --disable-lp64
+ The header files will ignore use of the _LP64 symbol to make chtype
+ and mmask_t types 32 bits (they may be long on 64-bit hosts, for
+ compatibility with older releases).
+
+ NOTE: this is potentially an ABI change, depending on existing
+ packages. The default for this option is "disabled" for ncurses
+ ABI 5, and "enabled" for ABI 6.
+
--disable-macros
For testing, use functions rather than macros. The program will run
more slowly, but it is simpler to debug. This makes a header file
For testing, generate functions for certain macros to make them visible
as such to the debugger. See also the --disable-macros option.
+ --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)
+ configuration.
+
+ NOTE: using this option will make libraries which are not binary-
+ compatible with libncursesw 5.4. None of the interfaces change, but
+ applications which have an array of cchar_t's must be recompiled.
+
+ --enable-ext-mouse
+ Modify the encoding of mouse state to make room for a 5th mouse button.
+ That allows one to use ncurses with a wheel mouse with xterm or
+ similar X terminal emulators.
+
+ NOTE: using this option will make libraries which are not binary-
+ compatible with libncursesw 5.4. None of the interfaces change, but
+ applications which have mouse mask mmask_t's must be recompiled.
+
--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
--enable-getcap-cache
Cache translated termcaps under the directory $HOME/.terminfo
- NOTE: this sounds good - it makes ncurses run faster the second time.
+ NOTE: this sounds good - it makes ncurses run faster the second time.
But look where the data comes from - an /etc/termcap containing lots of
entries that are not up to date. If you configure with this option and
forget to install the terminfo database before running an ncurses
Turn on GCC compiler warnings. There should be only a few.
--enable-widec
- Compile with experimental wide-character code. This makes a different
- version of the libraries (e.g., libncursesw.so), which stores
- characters as wide-characters,
+ Compile with wide-character code. This makes a different version of
+ the libraries (e.g., libncursesw.so), which stores characters as
+ wide-characters,
NOTE: applications compiled with this configuration are not compatible
with those built for 8-bit characters. You cannot simply make a
Specify the Ada95 compiler command (default "gnatmake")
--with-ada-include=DIR
- Tell where to install the Ada includes (default:
+ Tell where to install the Ada includes (default:
PREFIX/lib/ada/adainclude)
--with-ada-objects=DIR
to use a terminfo database which is compatible with the native
applications.
+ --with-chtype=TYPE
+ Override type of chtype, which stores the video attributes and (if
+ --enable-widec is not given) a character. Prior to ncurses 5.5, this
+ was always unsigned long, but with ncurses 5.5, it may be unsigned.
+ Use this option if you need to preserve compatibility with 64-bit
+ executables.
+
--with-database=XXX
Specify the terminfo source file to install. Usually you will wish
to install ncurses' default (misc/terminfo.src). Certain systems
--with-gpm
use Alessandro Rubini's GPM library to provide mouse support on the
- Linux console.
+ Linux console. Prior to ncurses 5.5, this introduced a dependency
+ on the GPM library. Currently ncurses uses the dlsym() function to
+ bind to the at runtime, so it is only necessary that the library be
+ present when ncurses is built.
--with-install-prefix=XXX
Allows you to specify an alternate location for installing ncurses
after building it. The value you specify is prepended to the "real"
- install location. This simplifies making binary packages.
+ install location. This simplifies making binary packages. The
+ makefile variable DESTDIR is set by this option. It is also possible
+ to use
+ make install DESTDIR=XXX
+ since the makefiles pass that variable to subordinate makes.
NOTE: a few systems build shared libraries with fixed pathnames; this
option probably will not work for those configurations.
particular version of libtool, e.g.,
/usr/bin/libtool-1.2.3
+ It is possible to rebuild the configure script to use the automake
+ macros for libtool, e.g., AC_PROG_LIBTOOL. See the comments in
+ aclocal.m4 for CF_PROG_LIBTOOL, and ensure that you build configure
+ using the appropriate patch for autoconf from
+ http://invisible-island.net/autoconf/
+
--with-manpage-aliases
Tell the configure script you wish to create entries in the
man-directory for aliases to manpages which list them, e.g., the
by running them through tbl to generate tables understandable by
nroff.
+ --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
+ may be unsigned. Use this option if you need to preserve compatibility
+ with 64-bit executables.
+
--with-ospeed=TYPE
Override type of ospeed variable, which is part of the termcap
compatibility interface. In termcap, this is a 'short', which works
for a wide range of baudrates because ospeed is not the actual speed
- but the encoded value, e.g., B9600 would be a small number such as 13.
+ but the encoded value, e.g., B9600 would be a small number such as 13.
However the encoding scheme originally allowed for values "only" up to
38400bd. A newer set of definitions past 38400bd is not encoded as
compactly, and is not guaranteed to fit into a short (see the function
Generate shared-libraries. The names given depend on the system for
which you are building, typically using a ".so" suffix, along with
symbolic links that refer to the release version.
-
+
NOTE: Unless you override the configure script by setting the $CFLAGS
environment variable, these will not be built with the -g debugging
option.
+ NOTE: For some configurations, e.g., installing a new version of
+ ncurses shared libraries on a machine which already has ncurses
+ shared libraries, you may encounter problems with the linker.
+ For example, it may prevent you from running the build tree's
+ copy of tic (for installing the terminfo database) because it
+ loads the system's copy of the ncurses shared libraries. In that
+ case, using the misc/shlib script may be helpful, since it sets
+ $LD_LIBRARY_PATH to point to the build tree, e.g.,
+ ./misc/shlib make install
+
--with-shlib-version=XXX
Specify whether to use the release or ABI version for shared libraries.
This is normally chosen automatically based on the type of system
Specify a search-list of terminfo directories which will be compiled
into the ncurses library (default: DATADIR/terminfo)
- --with-termlib
+ --with-termlib[=XXX]
When building the ncurses library, organize this as two parts: the
curses library (libncurses) and the low-level terminfo library
(libtinfo). This is done to accommodate applications that use only
the latter. The terminfo library is about half the size of the total.
+ If an option value is given, that overrides the name of the terminfo
+ library. For instance, if the wide-character version is built, the
+ terminfo library would be named libtinfow. But the libtinfow interface
+ is upward compatible from libtinfo, so it would be possible to overlay
+ libtinfo.so with a "wide" version of libtinfow.so by renaming it with
+ this option.
+
--with-termpath=XXX
Specify a search-list of termcap files which will be compiled into the
ncurses library (default: /etc/termcap:/usr/share/misc/termcap)
programs (e.g., tic). The test applications will still be built if you
type "make", though not if you simply do "make install".
+ --without-xterm-new
+ Tell the configure script to use "xterm-old" for the entry used in
+ the terminfo database. This will work with variations such as
+ X11R5 and X11R6 xterm.
+
COMPATIBILITY WITH OLDER VERSIONS OF NCURSES:
--------------------------------------------
you may encounter when building a system with different versions of
ncurses:
+ 5.5 (October 10, 2005)
+ Interface changes:
+
+ + terminfo installs "xterm-new" as "xterm" entry rather than
+ "xterm-old" (aka xterm-r6).
+
+ + terminfo data is installed using the tic -x option (few systems
+ still use ncurses 4.2).
+
+ + modify C++ binding to work with newer C++ compilers by providing
+ initializers and using modern casts. Old-style header names are
+ still used in this release to allow compiling with not-so-old
+ compilers.
+
+ + form and menu libraries now work with wide-character data.
+ Applications which bypassed the form library and manipulated the
+ FIELD.buf data directly will not work properly with libformw, since
+ that no longer points to an array of char. The set_field_buffer()
+ and field_buffer() functions translate to/from the actual field
+ data.
+
+ + change SP->_current_attr to a pointer, adjust ifdef's to ensure that
+ libtinfo.so and libtinfow.so have the same ABI. The reason for this
+ is that the corresponding data which belongs to the upper-level
+ ncurses library has a different size in each model.
+
+ + winnstr() now returns multibyte character strings for the
+ wide-character configuration.
+
+ + assume_default_colors() no longer requires that use_default_colors()
+ be called first.
+
+ + data_ahead() now works with wide-characters.
+
+ + slk_set() and slk_wset() now accept and store multibyte or
+ multicolumn characters.
+
+ + start_color() now returns OK if colors have already been started.
+ start_color() also returns ERR if it cannot allocate memory.
+
+ + pair_content() now returns -1 for consistency with init_pair() if it
+ corresponds to the default-color.
+
+ + unctrl() now returns null if its parameter does not correspond
+ to an unsigned char.
+
+ Added extensions:
+ Experimental mouse version 2 supports wheel mice with buttons
+ 4 and 5. This requires ABI 6 because it modifies the encoding
+ of mouse events.
+
+ Experimental extended colors allows encoding of 256 foreground
+ and background colors, e.g., with the xterm-256color or
+ xterm-88color terminfo entries. This requires ABI 6 because
+ it changes the size of cchar_t.
+
+ Added internal functions:
+ _nc_check_termtype2
+ _nc_resolve_uses2
+ _nc_retrace_cptr
+ _nc_retrace_cvoid_ptr
+ _nc_retrace_void_ptr
+ _nc_setup_term
+
+ Removed internal functions:
+ none
+
+ Modified internal functions:
+ _nc_insert_ch
+ _nc_save_str
+ _nc_trans_string
+
5.4 (February 8, 2004)
Interface changes:
- + add the remaining functions for X/Open curses wide-character support.
+ + add the remaining functions for X/Open curses wide-character support.
These are only available if the library is configured using the
--enable-widec option.
pecho_wchar()
Added extensions:
key_defined()
+
Added internal functions:
_nc_get_locale()
_nc_insert_ch()
_nc_tparm_analyze()
_nc_trace_bufcat() debug
_nc_unicode_locale()
+
Removed internal functions:
_nc_outstr()
_nc_sigaction()
+
Modified internal functions:
_nc_remove_string()
_nc_retrace_chtype()
Added extensions:
is_term_resized()
resize_term()
+
Added internal functions:
_nc_altcharset_name() debug
_nc_reset_colors()
_nc_varargs() debug
_nc_visbufn() debug
_nc_wgetch()
+
Removed internal functions:
_nc_background()
+
Modified internal functions:
_nc_freeall() debug
---------------------
The terminfo database file included with this distribution assumes you
- are running an XFree86 xterm based on X11R6 (i.e., xterm-r6). The
- earlier X11R5 entry (xterm-r5) is provided as well.
-
- If you are running XFree86 version 3.2 (actually 3.1.2F and up), you
- should consider using the xterm-xf86-v32 (or later, the most recent
- version is always named "xterm-xfree86") entry, which adds ANSI color
- and the VT220 capabilities which have been added in XFree86. If you
- are running a mixed network, however, where this terminal description
- may be used on an older xterm, you may have problems, since
- applications that assume these capabilities will produce incorrect
- output on the older xterm (e.g., highlighting is not cleared).
+ are running a modern xterm based on XFree86 (i.e., xterm-new). The
+ earlier X11R6 entry (xterm-r6) and X11R5 entry (xterm-r5) is provided
+ as well. See the --without-xterm-new configure script option if you
+ are unable to update your system.
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.
+ pre-fetched fallback entries. This must be done on a machine which
+ has ncurses' infocmp and terminfo database installed.
These entries are checked by setupterm() only when the conventional
fetches from the terminfo tree and the termcap fallback (if configured)
shadow modifications to the on-disk entry for the same type, when that
entry is accessible.
- By default, there are no entries on the fallback list. After you
- have built the ncurses suite for the first time, you can change
- the list (the process needs infocmp(1)). To do so, use the script
- MKfallback.sh. A configure script option --with-fallbacks does this
- (it accepts a comma-separated list of the names you wish, and does
- not require a rebuild).
+ By default, there are no entries on the fallback list. After you have
+ built the ncurses suite for the first time, you can change the list
+ (the process needs infocmp(1)). To do so, use the script
+ ncurses/tinfo/MKfallback.sh. A configure script option
+ --with-fallbacks does this (it accepts a comma-separated list of the
+ names you wish, and does not require a rebuild).
If you wanted (say) to have linux, vt100, and xterm fallbacks, you
would use the commands
cd ncurses;
- MKfallback.sh linux vt100 xterm >fallback.c
+ tinfo/MKfallback.sh linux vt100 xterm >fallback.c
Then just rebuild and reinstall the library as you would normally.
You can restore the default empty fallback list with
- MKfallback.sh >fallback.c
+ tinfo/MKfallback.sh >fallback.c
The overhead for an empty fallback list is one trivial stub function.
Any non-empty fallback list is const-ed and therefore lives in sharable
can't hard-link across them. The --enable-symlinks option copes
with this by making tic use symbolic links.
-USING NCURSES WITH EMACS:
- GNU Emacs has its own termcap support. By default, it uses a mixture
- of those functions and code linked from the host system's libraries.
- You need to foil this and shut out the GNU termcap library entirely.
-
- In order to do this, hack the Linux config file (s/linux.h) to contain
- a #define TERMINFO and set the symbol LIBS_TERMCAP to "-lncurses".
-
- We have submitted such a change for the 19.30 release, so it may
- already be applied in your sources -- check for the #define TERMINFO.
-
USING NCURSES WITH GPM:
- Ncurses 4.1 and up can be configured to use GPM (General Purpose Mouse)
- which is used on Linux console. Be aware that GPM is commonly
+ Ncurses 4.1 and up can be configured to use GPM (General Purpose
+ Mouse) which is used on Linux console. Be aware that GPM is commonly
installed as a shared library which contains a wrapper for the curses
wgetch() function (libcurses.o). Some integrators have simplified
- linking applications by combining all or part of libcurses.so (the BSD
- curses) into the libgpm.so file, producing symbol conflicts with
- ncurses (specifically the wgetch function). You may be able to work
- around this problem by linking as follows:
+ linking applications by combining all or part of libcurses.so into the
+ libgpm.so file, producing symbol conflicts with ncurses (specifically
+ the wgetch function). This was originally the BSD curses, but
+ generally whatever curses library exists on the system.
+
+ You may be able to work around this problem by linking as follows:
cc -o foo foo.o -lncurses -lgpm -lncurses
but the linker may not cooperate, producing mysterious errors.
- A patched version of gpm is available:
+ See the FAQ, as well as the discussion under the --with-gpm option:
- dickey.his.com:/ncurses/gpm-1.10-970125.tar.gz
-
- This patch is incorporated in gpm 1.12; however some integrators
- are slow to update this library. Current distributions of gpm can
- be configured properly using the --without-curses option.
+ http://invisible-island.net/ncurses/ncurses.faq.html#using_gpm_lib
BUILDING NCURSES 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
- that are compiled into the ncurses library. You should set the
- BUILD_CC environment variable to your host's compiler, and run the
- configure script configuring for the cross-compiler.
+ that are compiled into the ncurses library. The essential thing to do
+ is set the BUILD_CC environment variable to your host's compiler, and
+ run the configure script configuring for the cross-compiler.
+
+ The configure options --with-build-cc, etc., are provided to make this
+ simpler. Since make_hash and make_keys use only ANSI C features, it
+ is normally not necessary to provide the other options such as
+ --with-build-libs, but they are provided for completeness.
Note that all of the generated source-files which are part of ncurses
will be made if you use
support for the tools used to generate the sources, e.g., sed, awk and
Bourne-shell.
+ 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.
+
BUGS:
Send any feedback to the ncurses mailing list at
bug-ncurses@gnu.org. To subscribe send mail to
./dist.mk
./doc/hackguide.doc
./doc/html/Ada95.html
+./doc/html/NCURSES-Programming-HOWTO.html
./doc/html/ada/files.htm
./doc/html/ada/files/T.htm
./doc/html/ada/funcs.htm
./doc/html/man/form_requestname.3x.html
./doc/html/man/form_userptr.3x.html
./doc/html/man/form_win.3x.html
+./doc/html/man/index.html
./doc/html/man/infocmp.1m.html
./doc/html/man/infotocap.1m.html
./doc/html/man/key_defined.3x.html
./doc/ncurses-intro.doc
./form/Makefile.in
./form/READ.ME
+./form/f_trace.c
./form/fld_arg.c
./form/fld_attr.c
./form/fld_current.c
./menu/m_scale.c
./menu/m_spacing.c
./menu/m_sub.c
+./menu/m_trace.c
./menu/m_userptr.c
./menu/m_win.c
./menu/menu.h
./misc/emx.src
./misc/form.def
./misc/form.ref
-./misc/indent.pro
+./misc/gen_edit.sh
+./misc/jpf-indent
./misc/makedef.cmd
./misc/makellib
./misc/menu.def
./misc/menu.ref
+./misc/ncu-indent
./misc/ncurses.def
./misc/ncurses.ref
./misc/panel.def
./ncurses/base/lib_initscr.c
./ncurses/base/lib_insch.c
./ncurses/base/lib_insdel.c
+./ncurses/base/lib_insnstr.c
./ncurses/base/lib_instr.c
./ncurses/base/lib_isendwin.c
./ncurses/base/lib_leaveok.c
./ncurses/tinfo/read_termcap.c
./ncurses/tinfo/setbuf.c
./ncurses/tinfo/strings.c
+./ncurses/tinfo/trim_sgr0.c
./ncurses/tinfo/write_entry.c
./ncurses/trace/README
./ncurses/trace/lib_trace.c
./test/demo_keyok.c
./test/demo_menus.c
./test/demo_panels.c
+./test/demo_termcap.c
./test/ditto.c
./test/dots.c
./test/edit_field.c
./test/inserts.c
./test/keynames.c
./test/knight.c
+./test/linux-color.dat
./test/listused.sh
./test/lrtest.c
./test/modules
./test/view.c
./test/worm.c
./test/xmas.c
+./test/xterm-16color.dat
+./test/xterm-88color.dat
-# $Id: Makefile.in,v 1.22 2001/10/27 18:17:22 tom Exp $
+# $Id: Makefile.in,v 1.24 2005/01/29 19:30:06 tom Exp $
##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
@ echo ''
@ echo '** Configuration summary for NCURSES $(NCURSES_MAJOR).$(NCURSES_MINOR) $(NCURSES_PATCH):'
@ echo ''
+ @ echo ' extended funcs: '`test @NCURSES_EXT_FUNCS@ != 0 && echo yes || echo no`
+ @ echo ' xterm terminfo: '@WHICH_XTERM@
+ @ echo ''
@ echo ' bin directory: '$(bindir)
@ echo ' lib directory: '$(libdir)
@ echo ' include directory: '$(includedir)
realclean \
depend \
sources \
+tags \
uninstall \
install ::
--- $Id: NEWS,v 1.797 2004/02/08 21:15:26 tom Exp $
+-- $Id: NEWS,v 1.929 2005/10/09 14:17:59 tom Exp $
This is a log of changes that ncurses has gone through since Zeyd started
working with Pavel Curtis' original work, pcurses, in 1992.
Changes through 1.9.9e are recorded by Zeyd M. Ben-Halim.
Changes since 1.9.9e are recorded by Thomas Dickey.
+20051010 5.5 release for upload to ftp.gnu.org
+
+20051008
+ + document in demo_forms.c some portability issues.
+
+20051001
+ + document side-effect of werase() which sets the cursor position.
+ + save/restore the current position in form field editing to make
+ overlay mode work.
+
+20050924
+ + correct header dependencies in progs, allowing parallel make (report
+ by Daniel Jacobowitz).
+ + modify CF_BUILD_CC to ensure that pre-setting $BUILD_CC overrides
+ the configure check for --with-build-cc (report by Daniel Jacobowitz).
+ + modify CF_CFG_DEFAULTS to not use /usr as the default prefix for
+ NetBSD.
+ + update config.guess and config.sub from
+ http://subversions.gnu.org/cgi-bin/viewcvs/config/config/
+
+20050917
+ + modify sed expression which computes path for /usr/lib/terminfo
+ symbolic link in install to ensure that it does not change unexpected
+ levels of the path (Gentoo #42336).
+ + modify default for --disable-lp64 configure option to reduce impact
+ on existing 64-bit builds. Enabling the _LP64 option may change the
+ size of chtype and mmask_t. However, for ABI 6, it is enabled by
+ default (report by Mike Frysinger).
+ + add configure script check for --enable-ext-mouse, bump ABI to 6 by
+ default if it is used.
+ + improve configure script logic for bumping ABI to omit this if the
+ --with-abi-version option was used.
+ + update address for Free Software Foundation in tack's source.
+ + correct wins_wch(), which was not marking the filler-cells of
+ multi-column characters (cf: 20041023).
+
+20050910
+ + modify mouse initialization to ensure that Gpm_Open() is called only
+ once. Otherwise GPM gets confused in its initialization of signal
+ handlers (Debian #326709).
+
+20050903
+ + modify logic for backspacing in a multiline form field to ensure that
+ it works even when the preceding line is full (report by Frank van
+ Vugt).
+ + remove comment about BUGS section of ncurses manpage (Debian #325481)
+
+20050827
+ + document some workarounds for shared and libtool library
+ configurations in INSTALL (see --with-shared and --with-libtool).
+ + modify CF_GCC_VERSION and CF_GXX_VERSION macros to accommodate
+ cross-compilers which emit the platform name in their version
+ message, e.g.,
+ arm-sa1100-linux-gnu-g++ (GCC) 4.0.1
+ (report by Frank van Vugt).
+
+20050820
+ + start updating documentation for upcoming 5.5 release.
+ + fix to make libtool and libtinfo work together again (cf: 20050122).
+ + fixes to allow building traces into libtinfo
+ + add debug trace to tic that shows if/how ncurses will write to the
+ lower corner of a terminal's screen.
+ + update llib-l* files.
+
+20050813
+ + modify initializers in c++ binding to build with old versions of g++.
+ + improve special case for 20050115 repainting fix, ensuring that if
+ the first changed cell is not a character that the range to be
+ repainted is adjusted to start at a character's beginning (Debian
+ #316663).
+
+20050806
+ + fixes to build on QNX 6.1
+ + improve configure script checks for Intel 9.0 compiler.
+ + remove #include's for libc.h (obsolete).
+ + adjust ifdef's in curses.priv.h so that when cross-compiling to
+ produce comp_hash and make_keys, no dependency on wchar.h is needed.
+ That simplifies the build-cppflags (report by Frank van Vugt).
+ + move modules related to key-binding into libtinfo to fix linkage
+ problem caused by 20050430 changes to MKkeyname.sh (report by
+ Konstantin Andreev).
+
+20050723
+ + updates/fixes for configure script macros from vile.
+ + make prism9's sgr string agree with the rest of the terminfo -TD
+ + make vt220's sgr0 string consistent with sgr string, do this for
+ several related cases -TD
+ + improve translation to termcap by filtering the 'me' (sgr0) strings
+ as in the runtime call to tgetent() (prompted by a discussion with
+ Thomas Klausner).
+ + improve tic check for sgr0 versus sgr(0), to help ensure that sgr0
+ resets line-drawing.
+
+20050716
+ + fix special cases for trimming sgr0 for hurd and vt220 (Debian
+ #318621).
+ + split-out _nc_trim_sgr0() from modifications made to tgetent(), to
+ allow it to be used by tic to provide information about the runtime
+ changes that would be made to sgr0 for termcap applications.
+ + modify make_sed.sh to make the group-name in the NAME section of
+ form/menu library manpage agree with the TITLE string when renaming
+ is done for Debian (Debian #78866).
+
+20050702
+ + modify parameter type in c++ binding for insch() and mvwinsch() to
+ be consistent with underlying ncurses library (was char, is chtype).
+ + modify treatment of Intel compiler to allow _GNU_SOURCE to be defined
+ on Linux.
+ + improve configure check for nanosleep(), checking that it works since
+ some older systems such as AIX 4.3 have a nonworking version.
+
+20050625
+ + update config.guess and config.sub from
+ http://subversions.gnu.org/cgi-bin/viewcvs/config/config/
+ + modify misc/shlib to work in test-directory.
+ + suppress $suffix in misc/run_tic.sh when cross-compiling. This
+ allows cross-compiles to use the host's tic program to handle the
+ "make install.data" step.
+ + improve description of $LINES and $COLUMNS variables in manpages
+ (prompted by report by Dave Ulrick).
+ + improve description of cross-compiling in INSTALL
+ + add NCURSES-Programming-HOWTO.html by Pradeep Padala
+ (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
+ + modify configure script to obtain soname for GPM library (discussion
+ with Daniel Jacobowitz).
+ + modify configure script so that --with-chtype option will still
+ compute the unsigned literals suffix for constants in curses.h
+ (report by Daniel Jacobowitz:
+ + patches from Daniel Jacobowitz:
+ + the man_db.renames entry for tack.1 was backwards.
+ + tack.1 had some 1m's that should have been 1M's.
+ + the section for curs_inwstr.3 was wrong.
+
+20050619
+ + correction to --with-chtype option (report by Daniel Jacobowitz).
+
+20050618
+ + move build-time edit_man.sh and edit_man.sed scripts to top directory
+ to simplify reusing them for renaming tack's manpage (prompted by a
+ review of Debian package).
+ + revert minor optimization from 20041030 (Debian #313609).
+ + libtool-specific fixes, tested with libtool 1.4.3, 1.5.0, 1.5.6,
+ 1.5.10 and 1.5.18 (all work except as noted previously for the c++
+ install using libtool 1.5.0):
+ + modify the clean-rule in c++/Makefile.in to work with IRIX64 make
+ program.
+ + use $(LIBTOOL_UNINSTALL) symbol, overlooked in 20030830
+ + add configure options --with-chtype and --with-mmask-t, to allow
+ overriding of the non-LP64 model's use of the corresponding types.
+ + revise test for size of chtype (and mmask_t), which always returned
+ "long" due to an uninitialized variable (report by Daniel Jacobowitz).
+
+20050611
+ + change _tracef's that used "%p" format for va_list values to ignore
+ that, since on some platforms those are not pointers.
+ + fixes for long-formats in printf's due to largefile support.
+
+20050604
+ + fixes for termcap support:
+ + reset pointer to _nc_curr_token.tk_name when the input stream is
+ closed, which could point to free memory (cf: 20030215).
+ + delink TERMTYPE data which is used by the termcap reader, so that
+ extended names data will be freed consistently.
+ + free pointer to TERMTYPE data in _nc_free_termtype() rather than
+ its callers.
+ + add some entrypoints for freeing permanently allocated data via
+ _nc_freeall() when NO_LEAKS is defined.
+ + amend 20041030 change to _nc_do_color to ensure that optimization is
+ applied only when the terminal supports back_color_erase (bce).
+
+20050528
+ + add sun-color terminfo entry -TD
+ + correct a missing assignment in c++ binding's method
+ NCursesPanel::UserPointer() from 20050409 changes.
+ + improve configure check for large-files, adding check for dirent64
+ from vile.
+ + minor change to configure script to improve linker options for the
+ Ada95 tree.
+
+20050515
+ + document error conditions for ncurses library functions (report by
+ Stanislav Ievlev).
+ + regenerated html documentation for ada binding.
+ see ftp://invisible-island.net/ncurses/patches/gnathtml
+
+20050507
+ + regenerated html documentation for manpages.
+ + add $(BUILD_EXEEXT) suffix to invocation of make_keys in
+ ncurses/Makefile (Gentoo #89772).
+ + modify c++/demo.cc to build with g++ -fno-implicit-templates option
+ (patch by Mike Frysinger).
+ + modify tic to filter out long extended names when translating to
+ termcap format. Only two characters are permissible for termcap
+ capability names.
+
+20050430
+ + modify terminfo entries xterm-new and rxvt to add strings for
+ shift-, control-cursor keys.
+ + workaround to allow c++ binding to compile with g++ 2.95.3, which
+ has a broken implementation of static_cast<> (patch by Jeff Chua).
+ + modify initialization of key lookup table so that if an extended
+ capability (tic -x) string is defined, and its name begins with 'k',
+ it will automatically be treated as a key.
+ + modify test/keynames.c to allow for the possibility of extended
+ key names, e.g., via define_key(), or via "tic -x".
+ + add test/demo_termcap.c to show the contents of given entry via the
+ termcap interface.
+
+20050423
+ + minor fixes for vt100/vt52 entries -TD
+ + add configure option --enable-largefile
+ + corrected libraries used to build Ada95/gen/gen, found in testing
+ gcc 4.0.0.
+
+20050416
+ + update config.guess, config.sub
+ + modify configure script check for _XOPEN_SOURCE, disable that on
+ Darwin whose header files have problems (patch by Chris Zubrzycki).
+ + modify form library Is_Printable_String() to use iswprint() rather
+ than wcwidth() for determining if a character is printable. The
+ latter caused it to reject menu items containing non-spacing
+ characters.
+ + modify ncurses test program's F-test to handle non-spacing characters
+ by combining them with a reverse-video blank.
+ + review/fix several gcc -Wconversion warnings.
+
+20050409
+ + correct an off-by-one error in m_driver() for mouse-clicks used to
+ position the mouse to a particular item.
+ + implement test/demo_menus.c
+ + add some checks in lib_mouse to ensure SP is set.
+ + modify C++ binding to make 20050403 changes work with the configure
+ --enable-const option.
+
+20050403
+ + modify start_color() to return ERR if it cannot allocate memory.
+ + address g++ compiler warnings in C++ binding by adding explicit
+ member initialization, assignment operators and copy constructors.
+ Most of the changes simply preserve the existing semantics of the
+ binding, which can leak memory, etc., but by making these features
+ visible, it provides a framework for improving the binding.
+ + improve C++ binding using static_cast, etc.
+ + modify configure script --enable-warnings to add options to g++ to
+ correspond to the gcc --enable-warnings.
+ + modify C++ binding to use some C internal functions to make it
+ compile properly on Solaris (and other platforms).
+
+20050327
+ + amend change from 20050320 to limit it to configurations with a
+ valid locale.
+ + fix a bug introduced in 20050320 which broke the translation of
+ nonprinting characters to uparrow form (report by TAKAHASHI Tamotsu).
+
+20050326
+ + add ifdef's for _LP64 in curses.h to avoid using wasteful 64-bits for
+ chtype and mmask_t, but add configure option --disable-lp64 in case
+ anyone used that configuration.
+ + update misc/shlib script to account for Mac OS X (report by Michail
+ Vidiassov).
+ + correct comparison for wrapping multibyte characters in
+ waddch_literal() (report by TAKAHASHI Tamotsu).
+
+20050320
+ + add -c and -w options to tset to allow user to suppress ncurses'
+ resizing of the terminal emulator window in the special case where it
+ is not able to detect the true size (report by Win Delvaux, Debian
+ #300419).
+ + modify waddch_nosync() to account for locale zn_CH.GBK, which uses
+ codes 128-159 as part of multibyte characters (report by WANG
+ WenRui, Debian #300512).
+
+20050319
+ + modify ncurses.c 'd' test to make it work with 88-color
+ configuration, i.e., by implementing scrolling.
+ + improve scrolling in ncurses.c 'c' and 'C' tests, e.g., for 88-color
+ configuration.
+
+20050312
+ + change tracemunch to use strict checking.
+ + modify ncurses.c 'p' test to test line-drawing within a pad.
+ + implement environment variable NCURSES_NO_UTF8_ACS to support
+ miscellaneous terminal emulators which ignore alternate character
+ set escape sequences when in UTF-8 mode.
+
+20050305
+ + change NCursesWindow::err_handler() to a virtual function (request by
+ Steve Beal).
+ + modify fty_int.c and fty_num.c to handle wide characters (report by
+ Wolfgang Gutjahr).
+ + adapt fix for fty_alpha.c to fty_alnum.c, which also handled normal
+ and wide characters inconsistently (report by Wolfgang Gutjahr).
+ + update llib-* files to reflect internal interface additions/changes.
+
+20050226
+ + improve test/configure script, adding tests for _XOPEN_SOURCE, etc.,
+ from lynx.
+ + add aixterm-16color terminfo entry -TD
+ + modified xterm-new terminfo entry to work with tgetent() changes -TD
+ + extended changes in tgetent() from 20040710 to allow the substring of
+ sgr0 which matches rmacs to be at the beginning of the sgr0 string
+ (request by Thomas Wolff, who says the visual effect in combination
+ with pre-20040710 ncurses is improved).
+ + fix off-by-one in winnstr() call which caused form field validation
+ of multibyte characters to ignore the last character in a field.
+ + correct logic in winsch() for inserting multibyte strings; the code
+ would clear cells after the insertion rather than push them to the
+ right (cf: 20040228).
+ + fix an inconsistency in Check_Alpha_Field() between normal and wide
+ character logic (report by Wolfgang Gutjahr).
+
+20050219
+ + fix a bug in editing wide-characters in form library: deleting a
+ nonwide character modified the previous wide-character.
+ + update manpage to describe NCURSES_MOUSE_VERSION 2.
+ + correct manpage description of mouseinterval() (Debian #280687).
+ + add a note to default_colors.3x explaining why this extension was
+ added (Debian #295083).
+ + add traces to panel library.
+
+20050212
+ + improve editing of wide-characters in form library: left/right
+ cursor movement, and single-character deletions work properly.
+ + disable GPM mouse support when $TERM happens to be prefixed with
+ "xterm". Gpm_Open() would otherwise assert that it can deal with
+ mouse events in this case.
+ + modify GPM mouse support so it closes the server connection when
+ the caller disables the mouse (report by Stanislav Ievlev).
+
+20050205
+ + add traces for callback functions in form library.
+ + add experimental configure option --enable-ext-mouse, which defines
+ NCURSES_MOUSE_VERSION 2, and modifies the encoding of mouse events to
+ support wheel mice, which may transmit buttons 4 and 5. This works
+ with xterm and similar X terminal emulators (prompted by question by
+ Andreas Henningsson, this is also related to Debian #230990).
+ + improve configure macros CF_XOPEN_SOURCE and CF_POSIX_C_SOURCE to
+ avoid redefinition warnings on cygwin.
+
+20050129
+ + merge remaining development changes for extended colors (mostly
+ complete, does not appear to break other configurations).
+ + add xterm-88color.dat (part of extended colors testing).
+ + improve _tracedump() handling of color pairs past 96.
+ + modify return-value from start_color() to return OK if colors have
+ already been started.
+ + modify curs_color.3x list error conditions for init_pair(),
+ pair_content() and color_content().
+ + modify pair_content() to return -1 for consistency with init_pair()
+ if it corresponds to the default-color.
+ + change internal representation of default-color to allow application
+ to use color number 255. This does not affect the total number of
+ color pairs which are allowed.
+ + add a top-level tags rule.
+
+20050122
+ + add a null-pointer check in wgetch() in case it is called without
+ first calling initscr().
+ + add some null-pointer checks for SP, which is not set by libtinfo.
+ + modify misc/shlib to ensure that absolute pathnames are used.
+ + modify test/Makefile.in, etc., to link test programs only against the
+ libraries needed, e.g., omit form/menu/panel library for the ones
+ that are curses-specific.
+ + change SP->_current_attr to a pointer, adjust ifdef's to ensure that
+ libtinfo.so and libtinfow.so have the same ABI. The reason for this
+ is that the corresponding data which belongs to the upper-level
+ ncurses library has a different size in each model (report by
+ Stanislav Ievlev).
+
+20050115
+ + minor fixes to allow test-compiles with g++.
+ + correct column value shown in tic's warnings, which did not account
+ for leading whitespace.
+ + add a check in _nc_trans_string() for improperly ended strings, i.e.,
+ where a following line begins in column 1.
+ + modify _nc_save_str() to return a null pointer on buffer overflow.
+ + improve repainting while scrolling wide-character data (Eungkyu Song).
+
+20050108
+ + merge some development changes to extend color capabilities.
+
+20050101
+ + merge some development changes to extend color capabilities.
+ + fix manpage typo (FreeBSD report docs/75544).
+ + update config.guess, config.sub
+ > patches by Albert Chin-A-Young (for configure script):
+ + improved fix to make mbstate_t recognized on HPUX 11i (cf:
+ 20030705), making vsscanf() prototype visible on IRIX64. Tested for
+ on HP-UX 11i, Solaris 7, 8, 9, AIX 4.3.3, 5.2, Tru64 UNIX 4.0D, 5.1,
+ IRIX64 6.5, Redhat Linux 7.1, 9, and RHEL 2.1, 3.0.
+ + print the result of the --disable-home-terminfo option.
+ + use -rpath when compiling with SGI C compiler.
+
+20041225
+ + add trace calls to remaining public functions in form and menu
+ libraries.
+ + fix check for numeric digits in test/ncurses.c 'b' and 'B' tests.
+ + fix typo in test/ncurses.c 'c' test from 20041218.
+
+20041218
+ + revise test/ncurses.c 'c' color test to improve use for xterm-88color
+ and xterm-256color, added 'C' test using the wide-character color_set
+ and attr_set functions.
+
+20041211
+ + modify configure script to work with Intel compiler.
+ + fix an limit-check in wadd_wchnstr() which caused labels in the
+ forms-demo to be one character short.
+ + fix typo in curs_addchstr.3x (Jared Yanovich).
+ + add trace calls to most functions in form and menu libraries.
+ + update working-position for adding wide-characters when window is
+ scrolled (prompted by related report by Eungkyu Song).
+
+20041204
+ + replace some references on Linux to wcrtomb() which use it to obtain
+ the length of a multibyte string with _nc_wcrtomb, since wcrtomb() is
+ broken in glibc (see Debian #284260).
+ + corrected length-computation in wide-character support for
+ field_buffer().
+ + some fixes to frm_driver.c to allow it to accept multibyte input.
+ + modify configure script to work with Intel 8.0 compiler.
+
+20041127
+ + amend change to setupterm() in 20030405 which would reuse the value
+ of cur_term if the same output was selected. This now reuses it only
+ when setupterm() is called from tgetent(), which has no notion of
+ separate SCREENs. Note that tgetent() must be called after initscr()
+ or newterm() to use this feature (Redhat Bugzilla #140326).
+ + add a check in CF_BUILD_CC macro to ensure that developer has given
+ the --with-build-cc option when cross-compiling (report by Alexandre
+ Campo).
+ + improved configure script checks for _XOPEN_SOURCE and
+ _POSIX_C_SOURCE (fix for IRIX 5.3 from Georg Schwarz, _POSIX_C_SOURCE
+ updates from lynx).
+ + cosmetic fix to test/gdc.c to recolor the bottom edge of the box
+ for consistency (comment by Dan Nelson).
+
+20041120
+ + update wsvt25 terminfo entry -TD
+ + modify test/ins_wide.c to test all flavors of ins_wstr().
+ + ignore filler-cells in wadd_wchnstr() when adding a cchar_t array
+ which consists of multi-column characters, since this function
+ constructs them (cf: 20041023).
+ + modify winnstr() to return multibyte character strings for the
+ wide-character configuration.
+
+20041106
+ + fixes to make slk_set() and slk_wset() accept and store multibyte
+ or multicolumn characters.
+
+20041030
+ + improve color optimization a little by making _nc_do_color() check
+ if the old/new pairs are equivalent to the default pair 0.
+ + modify assume_default_colors() to not require that
+ use_default_colors() be called first.
+
+20041023
+ + modify term_attrs() to use termattrs(), add the extended attributes
+ such as enter_horizontal_hl_mode for WA_HORIZONTAL to term_attrs().
+ + add logic in waddch_literal() to clear orphaned cells when one
+ multi-column character partly overwrites another.
+ + improved logic for clearing cells when a multi-column character
+ must be wrapped to a new line.
+ + revise storage of cells for multi-column characters to correct a
+ problem with repainting. In the old scheme, it was possible for
+ doupdate() to decide that only part of a multi-column character
+ should be repainted since the filler cells stored only an attribute
+ to denote them as fillers, rather than the character value and the
+ attribute.
+
+20041016
+ + minor fixes for traces.
+ + add SP->_screen_acs_map[], used to ensure that mapping of missing
+ line-drawing characters is handled properly. For example, ACS_DARROW
+ is absent from xterm-new, and it was coincidentally displayed the
+ same as ACS_BTEE.
+
+20041009
+ + amend 20021221 workaround for broken acs to reset the sgr, rmacs
+ and smacs strings as well. Also modify the check for screen's
+ limitations in that area to allow the multi-character shift-in
+ and shift-out which seem to work.
+ + change GPM initialization, using dl library to load it dynamically
+ at runtime (Debian #110586).
+
+20041002
+ + correct logic for color pair in setcchar() and getcchar() (patch by
+ Marcin 'Qrczak' Kowalczyk).
+ + add t/T commands to ncurses b/B tests to allow a different color to
+ be tested for the attrset part of the test than is used in the
+ background color.
+
+20040925
+ + fix to make setcchar() to work when its wchar_t* parameter is
+ pointing to a string which contains more data than can be converted.
+ + modify wget_wstr() and example in ncurses.c to work if wchar_t and
+ wint_t are different sizes (report by Marcin 'Qrczak' Kowalczyk).
+
+20040918
+ + remove check in wget_wch() added to fix an infinite loop, appears to
+ have been working around a transitory glibc bug, and interferes
+ with normal operation (report by Marcin 'Qrczak' Kowalczyk).
+ + correct wadd_wch() and wecho_wch(), which did not pass the rendition
+ information (report by Marcin 'Qrczak' Kowalczyk).
+ + fix aclocal.m4 so that the wide-character version of ncurses gets
+ compiled as libncursesw.5.dylib, instead of libncurses.5w.dylib
+ (adapted from patch by James J Ramsey).
+ + change configure script for --with-caps option to indicate that it
+ is no longer experimental.
+ + change configure script to reflect the fact that --enable-widec has
+ not been "experimental" since 5.3 (report by Bruno Lustosa).
+
+20040911
+ + add 'B' test to ncurses.c, to exercise some wide-character functions.
+
+20040828
+ + modify infocmp -i option to match 8-bit controls against its table
+ entries, e.g., so it can analyze the xterm-8bit entry.
+ + add morphos terminfo entry, improve amiga-8bit entry (Pavel Fedin).
+ + correct translation of "%%" in terminfo format to termcap, e.g.,
+ using "tic -C" (Redhat Bugzilla #130921).
+ + modified configure script CF_XOPEN_SOURCE macro to ensure that if
+ it defines _POSIX_C_SOURCE, that it defines it to a specific value
+ (comp.os.stratus newsgroup comment).
+
+20040821
+ + fixes to build with Ada95 binding with gnat 3.4 (all warnings are
+ fatal, and gnat does not follow the guidelines for pragmas).
+ However that did find a coding error in Assume_Default_Colors().
+ + modify several terminfo entries to ensure xterm mouse and cursor
+ visibility are reset in rs2 string: hurd, putty, gnome,
+ konsole-base, mlterm, Eterm, screen (Debian #265784, #55637). The
+ xterm entries are left alone - old ones for compatibility, and the
+ new ones do not require this change. -TD
+
+20040814
+ + fake a SIGWINCH in newterm() to accommodate buggy terminal emulators
+ and window managers (Debian #265631).
+ > terminfo updates -TD
+ + remove dch/dch1 from rxvt because they are implemented inconsistently
+ with the common usage of bce/ech
+ + remove khome from vt220 (vt220's have no home key)
+ + add rxvt+pcfkeys
+
+20040807
+ + modify test/ncurses.c 'b' test, adding v/V toggles to cycle through
+ combinations of video attributes so that for instance bold and
+ underline can be tested. This made the legend too crowded, added
+ a help window as well.
+ + modify test/ncurses.c 'b' test to cycle through default colors if
+ the -d option is set.
+ + update putty terminfo entry (Robert de Bath).
+
+20040731
+ + modify test/cardfile.c to allow it to read more data than can be
+ displayed.
+ + correct logic in resizeterm.c which kept it from processing all
+ levels of window hierarchy (reports by Folkert van Heusden,
+ Chris Share).
+
+20040724
+ + modify "tic -cv" to ignore delays when comparing strings. Also
+ modify it to ignore a canceled sgr string, e.g., for terminals which
+ cannot properly combine attributes in one control sequence.
+ + corrections for gnome and konsole entries (Redhat Bugzilla #122815,
+ patch by Hans de Goede)
+ > terminfo updates -TD
+ + make ncsa-m rmacs/smacs consistent with sgr
+ + add sgr, rc/sc and ech to syscons entries
+ + add function-keys to decansi
+ + add sgr to mterm-ansi
+ + add sgr, civis, cnorm to emu
+ + correct/simplify cup in addrinfo
+
+20040717
+ > terminfo updates -TD
+ + add xterm-pc-fkeys
+ + review/update gnome and gnome-rh90 entries (prompted by Redhat
+ Bugzilla #122815).
+ + review/update konsole entries
+ + add sgr, correct sgr0 for kterm and mlterm
+ + correct tsl string in kterm
+
+20040711
+ + add configure option --without-xterm-new
+
+20040710
+ + add check in wget_wch() for printable bytes that are not part of a
+ multibyte character.
+ + modify wadd_wchnstr() to render text using window's background
+ attributes.
+ + improve tic's check to compare sgr and sgr0.
+ + fix c++ directory's .cc.i rule.
+ + modify logic in tgetent() which adjusts the termcap "me" string
+ to work with ISO-2022 string used in xterm-new (cf: 20010908).
+ + modify tic's check for conflicting function keys to omit that if
+ converting termcap to termcap format.
+ + add -U option to tic and infocmp.
+ + add rmam/smam to linux terminfo entry (Trevor Van Bremen)
+ > terminfo updates -TD
+ + minor fixes for emu
+ + add emu-220
+ + change wyse acsc strings to use 'i' map rather than 'I'
+ + fixes for avatar0
+ + fixes for vp3a+
+
+20040703
+ + use tic -x to install terminfo database -TD
+ + add -x to infocmp's usage message.
+ + correct field used for comparing O_ROWMAJOR in set_menu_format()
+ (report/patch by Tony Li).
+ + fix a missing nul check in set_field_buffer() from 20040508 changes.
+ > terminfo updates -TD
+ + make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
+ xterm-basic -TD
+ + align with xterm patch #192's use of xterm-new -TD
+ + update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
+ + make xterm-new the default "xterm" entry -TD
+
+20040626
+ + correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
+ cross-compiling from a separate directory tree (report/patch by
+ Dan Engel).
+ + modify is_term_resized() to ensure that window sizes are nonzero,
+ as documented in the manpage (report by Ian Collier).
+ + modify CF_XOPEN_SOURCE configure macro to make Hurd port build
+ (Debian #249214, report/patch by Jeff Bailey).
+ + configure-script mods from xterm, e.g., updates to CF_ADD_CFLAGS
+ + update config.guess, config.sub
+ > terminfo updates -TD
+ + add mlterm
+ + add xterm-xf86-v44
+ + modify xterm-new aka xterm-xfree86 to accommodate luit, which
+ relies on G1 being used via an ISO-2022 escape sequence (report by
+ Juliusz Chroboczek)
+ + add 'hurd' entry
+
+20040619
+ + reconsidered winsnstr(), decided after comparing other
+ implementations that wrapping is an X/Open documentation error.
+ + modify test/inserts.c to test all flavors of insstr().
+
+20040605
+ + add setlocale() calls to a few test programs which may require it:
+ demo_forms.c, filter.c, ins_wide.c, inserts.c
+ + correct a few misspelled function names in ncurses-intro.html (report
+ by Tony Li).
+ + correct internal name of key_defined() manpage, which conflicted with
+ define_key().
+
+20040529
+ + correct size of internal pad used for holding wide-character
+ field_buffer() results.
+ + modify data_ahead() to work with wide-characters.
+
+20040522
+ + improve description of terminfo if-then-else expressions (suggested
+ by Arne Thomassen).
+ + improve test/ncurses.c 'd' test, allow it to use external file for
+ initial palette (added xterm-16color.dat and linux-color.dat), and
+ reset colors to the initial palette when starting/ending the test.
+ + change limit-check in init_color() to allow r/g/b component to
+ reach 1000 (cf: 20020928).
+
+20040516
+ + modify form library to use cchar_t's rather than char's in the
+ wide-character configuration for storing data for field buffers.
+ + correct logic of win_wchnstr(), which did not work for more than
+ one cell.
+
+20040508
+ + replace memset/memcpy usage in form library with for-loops to
+ simplify changing the datatype of FIELD.buf, part of wide-character
+ changes.
+ + fix some inconsistent use of #if/#ifdef (report by Alain Guibert).
+
+20040501
+ + modify menu library to account for actual number of columns used by
+ multibyte character strings, in the wide-character configuration
+ (adapted from patch by Philipp Tomsich).
+ + add "-x" option to infocmp like tic's "-x", for use in "-F"
+ comparisons. This modifies infocmp to only report extended
+ capabilities if the -x option is given, making this more consistent
+ with tic. Some scripts may break, since infocmp previous gave this
+ information without an option.
+ + modify termcap-parsing to retain 2-character aliases at the beginning
+ of an entry if the "-x" option is used in tic.
+
+20040424
+ + minor compiler-warning and test-program fixes.
+
+20040417
+ + modify tic's missing-sgr warning to apply to terminfo only.
+ + free some memory leaks in tic.
+ + remove check in post_menu() that prevented menus from extending
+ beyond the screen (request by Max J. Werner).
+ + remove check in newwin() that prevents allocating windows
+ that extend beyond the screen. Solaris curses does this.
+ + add ifdef in test/color_set.c to allow it to compile with older
+ curses.
+ + add napms() calls to test/dots.c to make it not be a CPU hog.
+
+20040403
+ + modify unctrl() to return null if its parameter does not correspond
+ to an unsigned char.
+ + add some limit-checks to guard isprint(), etc., from being used on
+ values that do not fit into an unsigned char (report by Sami Farin).
+
+20040328
+ + fix a typo in the _nc_get_locale() change.
+
+20040327
+ + modify _nc_get_locale() to use setlocale() to query the program's
+ current locale rather than using getenv(). This fixes a case in tin
+ which relies on legacy treatment of 8-bit characters when the locale
+ is not initialized (reported by Urs Jansen).
+ + add sgr string to screen's and rxvt's terminfo entries -TD.
+ + add a check in tic for terminfo entries having an sgr0 but no sgr
+ string. This confuses Tru64 and HPUX curses when combined with
+ color, e.g., making them leave line-drawing characters in odd places.
+ + correct casts used in ABSENT_BOOLEAN, CANCELLED_BOOLEAN, matches the
+ original definitions used in Debian package to fix PowerPC bug before
+ 20030802 (Debian #237629).
+
+20040320
+ + modify PutAttrChar() and PUTC() macro to improve use of
+ A_ALTCHARSET attribute to prevent line-drawing characters from
+ being lost in situations where the locale would otherwise treat the
+ raw data as nonprintable (Debian #227879).
+
+20040313
+ + fix a redefinition of CTRL() macro in test/view.c for AIX 5.2 (report
+ by Jim Idle).
+ + remove ".PP" after ".SH NAME" in a few manpages; this confuses
+ some apropos script (Debian #237831).
+
+20040306
+ + modify ncurses.c 'r' test so editing commands, like inserted text,
+ set the field background, and the state of insert/overlay editing
+ mode is shown in that test.
+ + change syntax of dummy targets in Ada95 makefiles to work with pmake.
+ + correct logic in test/ncurses.c 'b' for noncolor terminals which
+ did not recognize a quit-command (cf: 20030419).
+
+20040228
+ + modify _nc_insert_ch() to allow for its input to be part of a
+ multibyte string.
+ + split out lib_insnstr.c, to prepare to rewrite it. X/Open states
+ that this function performs wrapping, unlike all of the other
+ insert-functions. Currently it does not wrap.
+ + check for nl_langinfo(CODESET), use it if available (report by
+ Stanislav Ievlev).
+ + split-out CF_BUILD_CC macro, actually did this for lynx first.
+ + fixes for configure script CF_WITH_DBMALLOC and CF_WITH_DMALLOC,
+ which happened to work with bash, but not with Bourne shell (report
+ by Marco d'Itri via tin-dev).
+
+20040221
+ + some changes to adapt the form library to wide characters, incomplete
+ (request by Mike Aubury).
+ + add symbol to curses.h which can be used to suppress include of
+ stdbool.h, e.g.,
+ #define NCURSES_ENABLE_STDBOOL_H 0
+ #include <curses.h>
+ (discussion on XFree86 mailing list).
+
+20040214
+ + modify configure --with-termlib option to accept a value which sets
+ the name of the terminfo library. This would allow a packager to
+ build libtinfow.so renamed to coincide with libtinfo.so (discussion
+ with Stanislav Ievlev).
+ + improve documentation of --with-install-prefix, --prefix and
+ $(DESTDIR) in INSTALL (prompted by discussion with Paul Lew).
+ + add configure check if the compiler can use -c -o options to rename
+ its output file, use that to omit the 'cd' command which was used to
+ ensure object files are created in a separate staging directory
+ (prompted by comments by Johnny Wezel, Martin Mokrejs).
+
20040208 5.4 release for upload to ftp.gnu.org
+ update TO-DO.
+ added has_key()
+ added 't' to ncurses.c test.
+ moved delay_output() to lib_tputs.c
- + removed tparam().
+ + removed tparam() (was added in 1.9.9, but conflicts with emacs and
+ is not part of X/Open Curses).
+ misc cursor & optimization fixes.
960504 - snapshot
--- $Id: README,v 1.21 2003/02/08 19:36:39 tom Exp $
+-- $Id: README,v 1.22 2004/08/07 23:42:43 tom Exp $
-------------------------------------------------------------------------------
README file for the ncurses package
In the `Ada95' directory, you'll find code and documentation for an
Ada95 binding of the curses API, to be used with the GNAT compiler.
This binding is built by a normal top-level `make' if configure detects
-an usable version of GNAT (3.10 or above). It is not installed automatically.
+an usable version of GNAT (3.11 or above). It is not installed automatically.
See the Ada95 directory for more build and installation instructions and
for documentation of the binding.
--- $Id: README.emx,v 1.6 2002/09/07 17:03:19 tom Exp $
+-- $Id: README.emx,v 1.7 2005/08/27 17:04:26 tom Exp $
-- Author: Thomas Dickey
-------------------------------------------------------------------------------
These are ordered by date:
- autoconf-2.13-20020210.patch.gz
- autoconf-2.13-20020210-emx.patch.gz
+ autoconf-2.13-20030927.patch.gz
+ autoconf-2.13-20030927-emx.patch.gz
I built my development environment for ncurses using EMX 0.9c at the end of
1997. Much of the EMX patch for autoconf was done originally by J.J.G.Ripoll,
--- $Id: TO-DO,v 1.43 2004/02/08 21:09:00 tom Exp $
+-- $Id: TO-DO,v 1.45 2005/08/20 20:53:04 tom Exp $
SHORT-TERM TO-DO ITEMS:
Known Problems:
-* The form/menu libraries do not use wide-character features.
++ libtool does not work with GNAT.
-* Some users would like to build a single version of libtinfo which can be
- used from either libncursesw or libncurses.
-
-* libtool does not work with GNAT.
-
-* The screen optimization has been tested only in an ad hoc manner. We should
++ The screen optimization has been tested only in an ad hoc manner. We should
develop a good set of regression tests to cover lib_doupdate.c and
lib_mvcur.c.
-* Magic cookie support does not work, since the logic does not take into account
- refresh. Also, the initial optimize does not adjust the current location
- when a cookie is emitted.
++ Magic cookie support does not work, since the logic does not take into
+ account refresh. Also, the initial optimize does not adjust the current
+ location when a cookie is emitted.
-* Scrolling optimization has holes: for example, it forces repaints of the
++ Scrolling optimization has holes: for example, it forces repaints of the
screen between calls to refresh().
-* SVr4 uses slightly different rules for determining when softkeys are shown.
++ SVr4 uses slightly different rules for determining when softkeys are shown.
For example, they are initially displayed (before the ncurses 'e' test
activates them), and a touchwin can apparently also force them to be
displayed.
-* The code departs from perfect 8-bit cleanness in one respect; you cannot
- specify a character \200 as part of a capability string, because the terminfo
- library interprets \200 as a request to embed NUL (\000) at that point. This
- is a legacy terminfo property we can't mess with.
++ The code departs from perfect 8-bit cleanness in one respect; you cannot
+ specify a character \200 as part of a capability string, because the
+ terminfo library interprets \200 as a request to embed NUL (\000) at that
+ point. This is a legacy terminfo property we can't mess with.
-* The window classes defined in the c++ subdirectory need documentation.
- Some C++ programmer could earn a lot of good karma by doing this...
++ The window classes defined in the c++ subdirectory need documentation. Some
+ C++ programmer could earn a lot of good karma by doing this...
-* The resizeterm() function does not handle ripped-off lines such as that
- done for the slk_XXX functions.
++ The resizeterm() function does not handle ripped-off lines such as that done
+ for the slk_XXX functions.
Portability (or lack thereof):
-* Users of older System V UNIXes (but not Solaris, and probably not SVr4)
- may trip over a known problem with the signal-handling code which causes
- abrupt termination of ncurses applications following resume from a ^Z
- suspend (this problem was first seen running lynx). You will not see
- this problem if you are running Linux or one of the 4.4BSD derivatives
- like FreeBSD, NetBSD, or BSDI. For details, see the analysis in the
- header comment of ncurses/tty/lib_tstp.c .
++ Users of older System V UNIXes (but not Solaris, and probably not SVr4) may
+ trip over a known problem with the signal-handling code which causes abrupt
+ termination of ncurses applications following resume from a ^Z suspend (this
+ problem was first seen running lynx). You will not see this problem if you
+ are running Linux or one of the 4.4BSD derivatives like FreeBSD, NetBSD, or
+ BSDI. For details, see the analysis in the header comment of
+ ncurses/tty/lib_tstp.c .
-* In theory, vwprintw and vwscanf are supposed to use the older varargs.h
++ In theory, vwprintw and vwscanf are supposed to use the older varargs.h
interface for handling variadic argument lists. Linux doesn't have
- varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So
- these functions use stdargs instead. This is unlikely to be a problem
- unless you're building ncurses on a System V old enough to only have
- varargs.h. (Solaris 2.5.1 uses the stdarg.h binding as well).
+ varargs.h, it has the newer X/Open-standard stdargs.h equivalent. So these
+ functions use stdargs instead. This is unlikely to be a problem unless
+ you're building ncurses on a System V old enough to only have varargs.h.
+ (Solaris 2.5.1 uses the stdarg.h binding as well).
-* If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to
- have a native vsscanf(3) in its library, vwscanw() will not work. You lose.
- (It should work on any System V, however). If you want to fix this, add
- an implementation to ncurses/vsscanf.c.
++ If you're using a BSD earlier than 4.4BSD, or a Linux old enough not to have
+ a native vsscanf(3) in its library, vwscanw() will not work. You lose. (It
+ should work on any System V, however). If you want to fix this, add an
+ implementation to ncurses/vsscanf.c.
-* The C++ binding fails to build with a few C++ compilers, mainly with
++ The C++ binding fails to build with a few C++ compilers, mainly with
configure script problems with vsscanf().
-* terminfo.5 does not format with the SunOS (and most other platform's) tbl
- utility because it relies on a diversion for each table entry. Get the groff
- package.
++ terminfo.5 does not format with the SunOS (and most other platform's) tbl
+ utility because it relies on a diversion for each table entry. Get the
+ groff package.
Untested features:
-* The code for the HP color model using set_color_pair is untested.
++ The code for the HP color model using set_color_pair is untested.
-* The code for handling soft labels on a terminal type with built-in support
++ The code for handling soft labels on a terminal type with built-in support
for them (num_labels > 0, label_height, label_width, label_format, label_off,
label_on, plab_norm, lab_f*) has not been tested. The label_format and
lab_f* capabilities aren't presently used.
2. DOS port
-Only 16 of the 55 files in the library depend on the terminfo format.
+Only a few of the files in the library depend on the terminfo format.
It should be possible to further kernelize the package, then rewrite
a small number of core files to produce a functionally-compatible
port that would do updates to a memory-mapped screen area. The first
dnl***************************************************************************
-dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+dnl Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
dnl copy of this software and associated documentation files (the *
dnl authorization. *
dnl***************************************************************************
dnl
-dnl Author: Thomas E. Dickey 1995-2003
+dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: aclocal.m4,v 1.333 2004/01/30 20:59:56 tom Exp $
+dnl $Id: aclocal.m4,v 1.373 2005/09/24 21:58:59 tom Exp $
dnl Macros used in NCURSES auto-configuration script.
dnl
dnl See http://invisible-island.net/autoconf/ for additional information.
dnl
dnl ---------------------------------------------------------------------------
dnl ---------------------------------------------------------------------------
+dnl AM_LANGINFO_CODESET version: 3 updated: 2002/10/27 23:21:42
+dnl -------------------
+dnl Inserted as requested by gettext 0.10.40
+dnl File from /usr/share/aclocal
+dnl codeset.m4
+dnl ====================
+dnl serial AM1
+dnl
+dnl From Bruno Haible.
+AC_DEFUN([AM_LANGINFO_CODESET],
+[
+ AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
+ [AC_TRY_LINK([#include <langinfo.h>],
+ [char* cs = nl_langinfo(CODESET);],
+ am_cv_langinfo_codeset=yes,
+ am_cv_langinfo_codeset=no)
+ ])
+ if test $am_cv_langinfo_codeset = yes; then
+ AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+ [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
+ fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_ADA_INCLUDE_DIRS version: 4 updated: 2002/12/01 00:12:15
dnl -------------------
dnl Construct the list of include-options for the C programs in the Ada95
AC_SUBST(ACPPFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_ADD_CFLAGS version: 5 updated: 2002/12/01 00:12:15
+dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
dnl -------------
dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
dnl The second parameter if given makes this macro verbose.
+dnl
+dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
+dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
+dnl confused by the quotes (which require backslashes to keep them usable).
AC_DEFUN([CF_ADD_CFLAGS],
[
+cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
+cf_new_extra_cppflags=
+
for cf_add_cflags in $1
do
+case $cf_fix_cppflags in
+no)
case $cf_add_cflags in #(vi
-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
case "$CPPFLAGS" in
*$cf_add_cflags) #(vi
;;
cf_new_cflags="$cf_new_cflags $cf_add_cflags"
;;
esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
done
if test -n "$cf_new_cflags" ; then
CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
fi
+if test -n "$cf_new_extra_cppflags" ; then
+ ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+AC_SUBST(EXTRA_CPPFLAGS)
+
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CFG_DEFAULTS version: 6 updated: 2003/07/12 15:15:19
+dnl CF_BUILD_CC version: 5 updated: 2005/09/24 17:55:52
+dnl -----------
+dnl If we're cross-compiling, allow the user to override the tools and their
+dnl options. The configure script is oriented toward identifying the host
+dnl compiler, etc., but we need a build compiler to generate parts of the
+dnl source.
+dnl
+dnl $1 = default for $CPPFLAGS
+dnl $2 = default for $LIBS
+AC_DEFUN([CF_BUILD_CC],[
+AC_REQUIRE([CF_PROG_EXT])
+if test "$cross_compiling" = yes ; then
+
+ # defaults that we might want to override
+ : ${BUILD_CFLAGS:=''}
+ : ${BUILD_CPPFLAGS:='ifelse([$1],,,[$1])'}
+ : ${BUILD_LDFLAGS:=''}
+ : ${BUILD_LIBS:='ifelse([$2],,,[$2])'}
+ : ${BUILD_EXEEXT:='$x'}
+ : ${BUILD_OBJEXT:='o'}
+
+ AC_ARG_WITH(build-cc,
+ [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
+ [BUILD_CC="$withval"],
+ [AC_CHECK_PROGS(BUILD_CC, gcc cc cl)])
+ AC_MSG_CHECKING(for native build C compiler)
+ AC_MSG_RESULT($BUILD_CC)
+
+ AC_MSG_CHECKING(for native build C preprocessor)
+ AC_ARG_WITH(build-cpp,
+ [ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)],
+ [BUILD_CPP="$withval"],
+ [BUILD_CPP='$(BUILD_CC) -E'])
+ AC_MSG_RESULT($BUILD_CPP)
+
+ AC_MSG_CHECKING(for native build C flags)
+ AC_ARG_WITH(build-cflags,
+ [ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)],
+ [BUILD_CFLAGS="$withval"])
+ AC_MSG_RESULT($BUILD_CFLAGS)
+
+ AC_MSG_CHECKING(for native build C preprocessor-flags)
+ AC_ARG_WITH(build-cppflags,
+ [ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)],
+ [BUILD_CPPFLAGS="$withval"])
+ AC_MSG_RESULT($BUILD_CPPFLAGS)
+
+ AC_MSG_CHECKING(for native build linker-flags)
+ AC_ARG_WITH(build-ldflags,
+ [ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)],
+ [BUILD_LDFLAGS="$withval"])
+ AC_MSG_RESULT($BUILD_LDFLAGS)
+
+ AC_MSG_CHECKING(for native build linker-libraries)
+ AC_ARG_WITH(build-libs,
+ [ --with-build-libs=XXX the build libraries ($(BUILD_LIBS)],
+ [BUILD_LIBS="$withval"])
+ AC_MSG_RESULT($BUILD_LIBS)
+
+ # this assumes we're on Unix.
+ BUILD_EXEEXT=
+ BUILD_OBJEXT=o
+
+ : ${BUILD_CC:='$(CC)'}
+
+ if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '$(CC)' ) ; then
+ AC_MSG_ERROR([Cross-build requires two compilers.
+Use --with-build-cc to specify the native compiler.])
+ fi
+
+else
+ : ${BUILD_CC:='$(CC)'}
+ : ${BUILD_CPP:='$(CPP)'}
+ : ${BUILD_CFLAGS:='$(CFLAGS)'}
+ : ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
+ : ${BUILD_LDFLAGS:='$(LDFLAGS)'}
+ : ${BUILD_LIBS:='$(LIBS)'}
+ : ${BUILD_EXEEXT:='$x'}
+ : ${BUILD_OBJEXT:='o'}
+fi
+
+AC_SUBST(BUILD_CC)
+AC_SUBST(BUILD_CPP)
+AC_SUBST(BUILD_CFLAGS)
+AC_SUBST(BUILD_CPPFLAGS)
+AC_SUBST(BUILD_LDFLAGS)
+AC_SUBST(BUILD_LIBS)
+AC_SUBST(BUILD_EXEEXT)
+AC_SUBST(BUILD_OBJEXT)
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CFG_DEFAULTS version: 7 updated: 2005/09/24 16:15:00
dnl ---------------
dnl Determine the default configuration into which we'll install ncurses. This
dnl can be overridden by the user's command-line options. There's two items to
if test "x$prefix" = "xNONE" ; then
case "$cf_cv_system_name" in
# non-vendor systems don't have a conflict
- openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
+ openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
prefix=/usr
;;
*) prefix=$ac_default_prefix
test "$cf_cv_cgetent" = yes && AC_DEFINE(HAVE_BSD_CGETENT)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 9 updated: 2004/01/30 15:59:13
+dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
dnl --------------
dnl Check if we're accidentally using a cache from a different machine.
dnl Derive the system name, as a check for reusing the autoconf cache.
dnl autoconf 2.5x broke compatibility with autoconf 2.13
AC_DEFUN([CF_CHECK_CACHE],
[
-if test -f $srcdir/config.guess ; then
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
ifelse([$1],,[AC_CANONICAL_HOST],[$1])
system_name="$host_os"
else
test "$cf_cv_cpp_param_init" = yes && AC_DEFINE(CPP_HAS_PARAM_INIT)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_CPP_STATIC_CAST version: 1 updated: 2005/07/23 16:52:43
+dnl ------------------
+dnl Check if the C++ compiler accepts static_cast in generics. This appears to
+dnl not be supported in g++ before 3.0
+AC_DEFUN([CF_CPP_STATIC_CAST],
+[
+if test -n "$CXX"; then
+
+AC_CACHE_CHECK(if $CXX accepts static_cast,cf_cv_cpp_static_cast,[
+ AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+
+ AC_TRY_COMPILE([
+class NCursesPanel
+{
+public:
+ NCursesPanel(int nlines,
+ int ncols,
+ int begin_y = 0,
+ int begin_x = 0)
+ {
+ }
+
+ ~NCursesPanel();
+};
+
+template<class T> class NCursesUserPanel : public NCursesPanel
+{
+public:
+ NCursesUserPanel (int nlines,
+ int ncols,
+ int begin_y = 0,
+ int begin_x = 0,
+ const T* p_UserData = static_cast<T*>(0))
+ : NCursesPanel (nlines, ncols, begin_y, begin_x)
+ {
+ };
+ NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
+ {
+ };
+
+ virtual ~NCursesUserPanel() {};
+};
+],[
+ const char* p_UserData = static_cast<char*>(0)],
+ [cf_cv_cpp_static_cast=yes],
+ [cf_cv_cpp_static_cast=no])
+
+ AC_LANG_RESTORE
+])
+
+fi
+
+test "$cf_cv_cpp_static_cast" = yes && AC_DEFINE(CPP_HAS_STATIC_CAST)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_CPP_VSCAN_FUNC version: 5 updated: 2001/12/02 01:39:28
dnl -----------------
dnl Check if the g++ compiler supports vscan function (not a standard feature).
CXXFLAGS="$cf_save_CXXFLAGS"
])
dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_DLSYM version: 1 updated: 2004/06/16 20:52:45
+dnl -------------
+dnl Test for dlsym() and related functions, as well as libdl.
+dnl
+dnl Sets
+dnl $cf_have_dlsym
+dnl $cf_have_libdl
+AC_DEFUN([CF_FUNC_DLSYM],[
+cf_have_dlsym=no
+AC_CHECK_FUNC(dlsym,cf_have_dlsym=yes,[
+
+cf_have_libdl=no
+AC_CHECK_LIB(dl,dlsym,[
+ cf_have_dlsym=yes
+ cf_have_libdl=yes])])
+
+if test "$cf_have_dlsym" = yes ; then
+ test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
+
+ AC_MSG_CHECKING(whether able to link to dl*() functions)
+ AC_TRY_LINK([#include <dlfcn.h>],[
+ void *obj;
+ if ((obj = dlopen("filename", 0)) != 0) {
+ if (dlsym(obj, "symbolname") == 0) {
+ dlclose(obj);
+ }
+ }],[
+ AC_DEFINE(HAVE_LIBDL)],[
+ AC_MSG_ERROR(Cannot link test program for libdl)])
+ AC_MSG_RESULT(ok)
+else
+ AC_MSG_ERROR(Cannot find dlsym function)
+fi
+])
+dnl ---------------------------------------------------------------------------
dnl CF_FUNC_MEMMOVE version: 5 updated: 2000/08/12 23:18:52
dnl ---------------
dnl Check for memmove, or a bcopy that can handle overlapping copy. If neither
fi
])])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_FUNC_NANOSLEEP version: 1 updated: 2005/07/02 15:38:12
+dnl -----------------
+dnl Check for existence of workable nanosleep() function. Some systems, e.g.,
+dnl AIX 4.x, provide a non-working version.
+AC_DEFUN([CF_FUNC_NANOSLEEP],[
+AC_CACHE_CHECK(if nanosleep really works,cf_cv_func_nanosleep,[
+AC_TRY_RUN([
+#include <stdio.h>
+#include <errno.h>
+#include <time.h>
+
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+
+int main() {
+ struct timespec ts1, ts2;
+ int code;
+ ts1.tv_sec = 0;
+ ts1.tv_nsec = 750000000;
+ ts2.tv_sec = 0;
+ ts2.tv_nsec = 0;
+ errno = 0;
+ code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
+ exit(code != 0);
+}
+],
+ [cf_cv_func_nanosleep=yes],
+ [cf_cv_func_nanosleep=no],
+ [cf_cv_func_nanosleep=unknown])])
+
+test "$cf_cv_func_nanosleep" = "yes" && AC_DEFINE(HAVE_NANOSLEEP)
+])
+dnl ---------------------------------------------------------------------------
dnl CF_FUNC_POLL version: 2 updated: 2000/02/06 01:38:04
dnl ------------
dnl See if the poll function really works. Some platforms have poll(), but
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_ATTRIBUTES version: 9 updated: 2002/12/21 19:25:52
+dnl CF_GCC_ATTRIBUTES version: 10 updated: 2005/05/28 13:16:28
dnl -----------------
dnl Test for availability of useful gcc __attribute__ directives to quiet
dnl compiler warnings. Though useful, not all are supported -- and contrary
EOF
for cf_attribute in scanf printf unused noreturn
do
- CF_UPPER(CF_ATTRIBUTE,$cf_attribute)
+ CF_UPPER(cf_ATTRIBUTE,$cf_attribute)
cf_directive="__attribute__(($cf_attribute))"
echo "checking for $CC $cf_directive" 1>&AC_FD_CC
case $cf_attribute in
scanf|printf)
cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
+#define GCC_$cf_ATTRIBUTE 1
EOF
;;
*)
cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
+#define GCC_$cf_ATTRIBUTE $cf_directive
EOF
;;
esac
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_VERSION version: 3 updated: 2003/09/06 19:16:57
+dnl CF_GCC_VERSION version: 4 updated: 2005/08/27 09:53:42
dnl --------------
dnl Find version of gcc
AC_DEFUN([CF_GCC_VERSION],[
GCC_VERSION=none
if test "$GCC" = yes ; then
AC_MSG_CHECKING(version of $CC)
- GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
AC_MSG_RESULT($GCC_VERSION)
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GCC_WARNINGS version: 15 updated: 2003/07/05 18:42:30
+dnl CF_GCC_WARNINGS version: 20 updated: 2005/08/06 18:37:29
dnl ---------------
dnl Check if the compiler supports useful warning options. There's a few that
dnl we don't use, simply because they're too noisy:
dnl is enabled for ncurses using "--enable-const".
dnl -pedantic
dnl
+dnl Parameter:
+dnl $1 is an optional list of gcc warning flags that a particular
+dnl application might want to use, e.g., "no-unused" for
+dnl -Wno-unused
+dnl Special:
+dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
+dnl
AC_DEFUN([CF_GCC_WARNINGS],
[
AC_REQUIRE([CF_GCC_VERSION])
-if test "$GCC" = yes
-then
- cat > conftest.$ac_ext <<EOF
+CF_INTEL_COMPILER(GCC,INTEL_COMPILER,CFLAGS)
+
+cat > conftest.$ac_ext <<EOF
#line __oline__ "configure"
int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
EOF
+
+if test "$INTEL_COMPILER" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# remark #593: variable "curs_sb_left_arrow" was set but never used
+# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+# remark #869: parameter "tw" was never referenced
+# remark #981: operands are evaluated in unspecified order
+# warning #269: invalid format string conversion
+
+ AC_CHECKING([for $CC warning options])
+ cf_save_CFLAGS="$CFLAGS"
+ EXTRA_CFLAGS="-Wall"
+ for cf_opt in $1 \
+ wd1419 \
+ wd1682 \
+ wd1683 \
+ wd1684 \
+ wd193 \
+ wd279 \
+ wd593 \
+ wd810 \
+ wd869 \
+ wd981
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+ if AC_TRY_EVAL(ac_compile); then
+ test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ fi
+ done
+ CFLAGS="$cf_save_CFLAGS"
+
+elif test "$GCC" = yes
+then
AC_CHECKING([for $CC warning options])
cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="-W -Wall"
Wpointer-arith \
Wshadow \
Wstrict-prototypes \
- Wundef $cf_warn_CONST
+ Wundef $cf_warn_CONST $1
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
if AC_TRY_EVAL(ac_compile); then
EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
fi
done
- rm -f conftest*
CFLAGS="$cf_save_CFLAGS"
fi
+rm -f conftest*
+
AC_SUBST(EXTRA_CFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GNAT_TRY_RUN version: 2 updated: 1998/07/19 00:25:18
+dnl CF_GNAT_TRY_LINK version: 1 updated: 2004/08/21 19:02:08
+dnl ----------------
+dnl Verify that a test program compiles/links with GNAT.
+dnl $cf_ada_make is set to the program that compiles/links
+dnl $ADAFLAGS may be set to the GNAT flags.
+dnl
+dnl $1 is the text of the spec
+dnl $2 is the text of the body
+dnl $3 is the shell command to execute if successful
+dnl $4 is the shell command to execute if not successful
+AC_DEFUN([CF_GNAT_TRY_LINK],
+[
+rm -f conftest*
+cat >>conftest.ads <<CF_EOF
+$1
+CF_EOF
+cat >>conftest.adb <<CF_EOF
+$2
+CF_EOF
+if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
+ifelse($3,, :,[ $3])
+ifelse($4,,,[else
+ $4])
+fi
+rm -f conftest*
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_GNAT_TRY_RUN version: 3 updated: 2004/08/21 19:02:08
dnl ---------------
dnl Verify that a test program compiles and runs with GNAT
dnl $cf_ada_make is set to the program that compiles/links
+dnl $ADAFLAGS may be set to the GNAT flags.
+dnl
+dnl $1 is the text of the spec
+dnl $2 is the text of the body
+dnl $3 is the shell command to execute if successful
+dnl $4 is the shell command to execute if not successful
AC_DEFUN([CF_GNAT_TRY_RUN],
[
rm -f conftest*
cat >>conftest.adb <<CF_EOF
$2
CF_EOF
-if ( $cf_ada_make conftest 1>&AC_FD_CC 2>&1 ) ; then
+if ( $cf_ada_make $ADAFLAGS conftest 1>&AC_FD_CC 2>&1 ) ; then
if ( ./conftest 1>&AC_FD_CC 2>&1 ) ; then
ifelse($3,, :,[ $3])
ifelse($4,,,[ else
esac
])
dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53
+dnl CF_GNU_SOURCE version: 6 updated: 2005/07/09 13:23:07
dnl -------------
dnl Check if we must define _GNU_SOURCE to get a reasonable value for
dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_GXX_VERSION version: 3 updated: 2003/09/06 19:16:21
+dnl CF_GXX_VERSION version: 5 updated: 2005/08/27 09:53:42
dnl --------------
dnl Check for version of g++
AC_DEFUN([CF_GXX_VERSION],[
GXX_VERSION=none
if test "$GXX" = yes; then
AC_MSG_CHECKING(version of g++)
- GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
+ GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[[^0-9.]]*//' -e 's/[[^0-9.]].*//'`"
+ test -z "$GXX_VERSION" && GXX_VERSION=unknown
AC_MSG_RESULT($GXX_VERSION)
fi
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_GXX_WARNINGS version: 5 updated: 2005/08/13 14:54:38
+dnl ---------------
+dnl Check if the compiler supports useful warning options.
+dnl
+dnl Most of gcc's options apply to g++, except:
+dnl -Wbad-function-cast
+dnl -Wmissing-declarations
+dnl -Wnested-externs
+dnl
+dnl Omit a few (for now):
+dnl -Winline
+dnl
+dnl Parameter:
+dnl $1 is an optional list of g++ warning flags that a particular
+dnl application might want to use, e.g., "no-unused" for
+dnl -Wno-unused
+dnl Special:
+dnl If $with_ext_const is "yes", add a check for -Wwrite-strings
+dnl
+AC_DEFUN([CF_GXX_WARNINGS],
+[
+
+CF_INTEL_COMPILER(GXX,INTEL_CPLUSPLUS,CXXFLAGS)
+
+AC_REQUIRE([CF_GXX_VERSION])
+
+AC_LANG_SAVE
+AC_LANG_CPLUSPLUS
+
+cat > conftest.$ac_ext <<EOF
+#line __oline__ "configure"
+int main(int argc, char *argv[[]]) { return (argv[[argc-1]] == 0) ; }
+EOF
+
+if test "$INTEL_CPLUSPLUS" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# remark #593: variable "curs_sb_left_arrow" was set but never used
+# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+# remark #869: parameter "tw" was never referenced
+# remark #981: operands are evaluated in unspecified order
+# warning #269: invalid format string conversion
+
+ AC_CHECKING([for $CC warning options])
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ EXTRA_CXXFLAGS="-Wall"
+ for cf_opt in \
+ wd1419 \
+ wd1682 \
+ wd1683 \
+ wd1684 \
+ wd193 \
+ wd279 \
+ wd593 \
+ wd810 \
+ wd869 \
+ wd981
+ do
+ CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
+ if AC_TRY_EVAL(ac_compile); then
+ test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ fi
+ done
+ CXXFLAGS="$cf_save_CXXFLAGS"
+
+elif test "$GXX" = yes
+then
+ AC_CHECKING([for $CXX warning options])
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ EXTRA_CXXFLAGS="-W -Wall"
+ cf_gxx_extra_warnings=""
+ test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
+ case "$GCC_VERSION" in
+ [[1-2]].*)
+ ;;
+ *)
+ cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
+ ;;
+ esac
+ for cf_opt in \
+ Wabi \
+ fabi-version=0 \
+ Woverloaded-virtual \
+ Wsign-promo \
+ Wsynth \
+ Wold-style-cast \
+ Wcast-align \
+ Wcast-qual \
+ Wmissing-prototypes \
+ Wpointer-arith \
+ Wshadow \
+ Wstrict-prototypes \
+ Wundef $cf_gxx_extra_warnings $1
+ do
+ CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
+ if AC_TRY_EVAL(ac_compile); then
+ test -n "$verbose" && AC_MSG_RESULT(... -$cf_opt)
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ else
+ test -n "$verbose" && AC_MSG_RESULT(... no -$cf_opt)
+ fi
+ done
+ CXXFLAGS="$cf_save_CXXFLAGS"
+fi
+
+rm -f conftest*
+AC_LANG_RESTORE
+AC_SUBST(EXTRA_CXXFLAGS)
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_HELP_MESSAGE version: 3 updated: 1998/01/14 10:56:23
dnl ---------------
dnl Insert text into the help-message, for readability, from AC_ARG_WITH.
AC_SUBST(CPPFLAGS)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_INTEL_COMPILER version: 3 updated: 2005/08/06 18:37:29
+dnl -----------------
+dnl Check if the given compiler is really the Intel compiler for Linux. It
+dnl tries to imitate gcc, but does not return an error when it finds a mismatch
+dnl between prototypes, e.g., as exercised by CF_MISSING_CHECK.
+dnl
+dnl This macro should be run "soon" after AC_PROG_CC or AC_PROG_CPLUSPLUS, to
+dnl ensure that it is not mistaken for gcc/g++. It is normally invoked from
+dnl the wrappers for gcc and g++ warnings.
+dnl
+dnl $1 = GCC (default) or GXX
+dnl $2 = INTEL_COMPILER (default) or INTEL_CPLUSPLUS
+dnl $3 = CFLAGS (default) or CXXFLAGS
+AC_DEFUN([CF_INTEL_COMPILER],[
+ifelse($2,,INTEL_COMPILER,[$2])=no
+
+if test "$ifelse($1,,[$1],GCC)" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+ AC_MSG_CHECKING(if this is really Intel ifelse($1,GXX,C++,C) compiler)
+ cf_save_CFLAGS="$ifelse($3,,CFLAGS,[$3])"
+ ifelse($3,,CFLAGS,[$3])="$ifelse($3,,CFLAGS,[$3]) -no-gcc"
+ AC_TRY_COMPILE([],[
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+],[ifelse($2,,INTEL_COMPILER,[$2])=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+],[])
+ ifelse($3,,CFLAGS,[$3])="$cf_save_CFLAGS"
+ AC_MSG_RESULT($ifelse($2,,INTEL_COMPILER,[$2]))
+ ;;
+ esac
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_ISASCII version: 3 updated: 2000/08/12 23:18:52
dnl ----------
dnl Check if we have either a function or macro for 'isascii()'.
test "$cf_cv_have_isascii" = yes && AC_DEFINE(HAVE_ISASCII)
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_LARGEFILE version: 5 updated: 2005/07/17 11:03:36
+dnl ------------
+dnl Add checks for large file support.
+AC_DEFUN([CF_LARGEFILE],[
+ifdef([AC_FUNC_FSEEKO],[
+ AC_FUNC_FSEEKO
+ AC_SYS_LARGEFILE
+
+ # Normally we would collect these definitions in the config.h,
+ # but (like _XOPEN_SOURCE), some environments rely on having these
+ # defined before any of the system headers are included. Another
+ # case comes up with C++, e.g., on AIX the compiler compiles the
+ # header files by themselves before looking at the body files it is
+ # told to compile. For ncurses, those header files do not include
+ # the config.h
+ test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
+ test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+
+ AC_CACHE_CHECK(whether to use struct dirent64, cf_cv_struct_dirent64,[
+ AC_TRY_COMPILE([
+#include <sys/types.h>
+#include <dirent.h>
+ ],[
+ /* if transitional largefile support is setup, this is true */
+ extern struct dirent64 * readdir(DIR *);
+ struct dirent64 *x = readdir((DIR *)0);
+ struct dirent *y = readdir((DIR *)0);
+ int z = x - y;
+ ],
+ [cf_cv_struct_dirent64=yes],
+ [cf_cv_struct_dirent64=no])
+ ])
+ test "$cf_cv_struct_dirent64" = yes && AC_DEFINE(HAVE_STRUCT_DIRENT64)
+])
+])
+dnl ---------------------------------------------------------------------------
dnl CF_LIBUTF8 version: 2 updated: 2002/01/19 22:51:32
dnl ----------
dnl Check for libutf8
AC_SUBST(LIB_PREFIX)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_LIB_RULES version: 30 updated: 2004/01/10 15:50:50
+dnl CF_LIB_RULES version: 36 updated: 2005/05/28 13:16:28
dnl ------------
dnl Append definitions and rules for the given models to the subdirectory
dnl Makefiles, and the recursion rule for the top-level Makefile. If the
case "$cf_cv_shlib_version" in #(vi
rel) #(vi
case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
+ darwin*)
+ case .${LIB_SUFFIX} in
+ .w*)
+ cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+ cf_suffix=w'.$(REL_VERSION)'"$cf_suffix"
+ ;;
+ *)
+ cf_suffix='.$(REL_VERSION)'"$cf_suffix"
+ ;;
+ esac
+ ;; #(vi
*) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
esac
;;
abi)
case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
+ darwin*)
+ case .${LIB_SUFFIX} in
+ .w*)
+ cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+ cf_suffix=w'.$(ABI_VERSION)'"$cf_suffix"
+ ;;
+ *)
+ cf_suffix='.$(ABI_VERSION)'"$cf_suffix"
+ ;;
+ esac
+ ;; #(vi
*) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
esac
;;
cf_subsets="$LIB_SUBSETS"
cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
if test "$cf_termlib" != "$cf_subsets" ; then
- cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
+ cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
fi
else
for cf_item in $CF_LIST_MODELS
do
echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
- CF_UPPER(CF_ITEM,$cf_item)
+ CF_UPPER(cf_ITEM,$cf_item)
CF_LIB_SUFFIX($cf_item,cf_suffix)
CF_OBJ_SUBDIR($cf_item,cf_subdir)
+ # Test for case where we build libtinfo with a different name.
+ cf_libname=$cf_dir
+ if test $cf_dir = ncurses ; then
+ case $cf_subset in
+ *base*)
+ ;;
+ termlib*)
+ cf_libname=$TINFO_LIB_SUFFIX
+ if test -n "${DFT_ARG_SUFFIX}" ; then
+ # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+ cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+ fi
+ ;;
+ esac
+ fi
+
# These dependencies really are for development, not
# builds, but they are useful in porting, too.
cf_depend="../include/ncurses_cfg.h"
cf_depend="$cf_depend $cf_reldir/curses.priv.h"
fi
+ cf_dir_suffix=
+ old_cf_suffix="$cf_suffix"
+ if test "$cf_cv_shlib_version_infix" = yes ; then
+ if test -n "$LIB_SUFFIX" ; then
+ case $LIB_SUFFIX in
+ w*)
+ cf_libname=`echo $cf_libname | sed 's/w$//'`
+ cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+ cf_dir_suffix=w
+ ;;
+ esac
+ fi
+ fi
+
$AWK -f $srcdir/mk-1st.awk \
- name=$cf_dir \
+ name=${cf_libname}${cf_dir_suffix} \
traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
+ MODEL=$cf_ITEM \
model=$cf_subdir \
prefix=$cf_prefix \
suffix=$cf_suffix \
depend="$cf_depend" \
host="$host" \
$srcdir/$cf_dir/modules >>$cf_dir/Makefile
+
+ cf_suffix="$old_cf_suffix"
+
for cf_subdir2 in $cf_subdirs lib
do
test $cf_subdir = $cf_subdir2 && break
$AWK -f $srcdir/mk-2nd.awk \
name=$cf_dir \
traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
+ MODEL=$cf_ITEM \
model=$cf_subdir \
subset=$cf_subset \
srcdir=$srcdir \
echo=$WITH_ECHO \
+ crenames=$cf_cv_prog_CC_c_o \
+ cxxrenames=$cf_cv_prog_CXX_c_o \
$srcdir/$cf_dir/modules >>$cf_dir/Makefile
cf_subdirs="$cf_subdirs $cf_subdir"
done
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_LIB_SONAME version: 2 updated: 2005/06/25 16:05:47
+dnl -------------
+dnl Find the and soname for the given shared library. Set the cache variable
+dnl cf_cv_$3_soname to this, unless it is not found. Then set the cache
+dnl variable to "unknown".
+dnl
+dnl $1 = headers
+dnl $2 = code
+dnl $3 = library name
+AC_DEFUN([CF_LIB_SONAME],
+[
+AC_CACHE_CHECK(for soname of $3 library,cf_cv_$3_soname,[
+
+cf_cv_$3_soname=unknown
+if test "$cross_compiling" != yes ; then
+cat >conftest.$ac_ext <<CF_EOF
+$1
+int main()
+{
+$2
+return 0;
+}
+CF_EOF
+cf_save_LIBS="$LIBS"
+ LIBS="-l$3 $LIBS"
+ if AC_TRY_EVAL(ac_compile) ; then
+ if AC_TRY_EVAL(ac_link) ; then
+ cf_cv_$3_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep lib$3.`
+ test -z "$cf_cv_$3_soname" && cf_cv_$3_soname=unknown
+ fi
+ fi
+rm -f conftest*
+LIBS="$cf_save_LIBS"
+fi
+])
+])
+dnl ---------------------------------------------------------------------------
dnl CF_LIB_SUFFIX version: 13 updated: 2003/11/01 16:09:07
dnl -------------
dnl Compute the library file-suffix from the given model name
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MANPAGE_RENAMES version: 6 updated: 2002/01/19 22:51:32
+dnl CF_MANPAGE_RENAMES version: 7 updated: 2005/06/18 18:51:57
dnl ------------------
dnl The Debian people have their own naming convention for manpages. This
dnl option lets us override the name of the file containing renaming, or
# Construct a sed-script to perform renaming within man-pages
if test -n "$MANPAGE_RENAMES" ; then
test ! -d man && mkdir man
- sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
+ sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
fi
fi
AC_MSG_RESULT($MANPAGE_TBL)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_MAN_PAGES version: 27 updated: 2003/12/20 20:39:45
+dnl CF_MAN_PAGES version: 29 updated: 2005/06/18 19:42:52
dnl ------------
dnl Try to determine if the man-pages on the system are compressed, and if
dnl so, what format is used. Use this information to construct a script that
;;
esac
-cf_edit_man=man/edit_man.sh
+cf_edit_man=./edit_man.sh
cat >$cf_edit_man <<CF_EOF
#! /bin/sh
shift || exit 1
srcdir=\[$]1
+top_srcdir=\[$]srcdir/..
shift || exit 1
if test "\$form" = normal ; then
if test "$MANPAGE_ALIASES" != no ; then
cat >>$cf_edit_man <<CF_EOF
- aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
+ aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
CF_EOF
fi
if test -f $MANPAGE_RENAMES ; then
cat >>$cf_edit_man <<CF_EOF
- < \$i | sed -f $srcdir/edit_man.sed >\$TMP
+ < \$i | sed -f `pwd`/edit_man.sed >\$TMP
CF_EOF
else
cat >>$cf_edit_man <<CF_EOF
fi
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
+dnl ----------
+dnl Write a debug message to config.log, along with the line number in the
+dnl configure script.
+AC_DEFUN([CF_MSG_LOG],[
+echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_NCURSES_ABI_6 version: 1 updated: 2005/09/17 18:42:49
+dnl ----------------
+dnl Set ncurses' ABI to 6 unless overridden by explicit configure option, and
+dnl warn about this.
+AC_DEFUN([CF_NCURSES_ABI_6],[
+if test "${with_abi_version+set}" != set; then
+ case $cf_cv_rel_version in
+ 5.*)
+ cf_cv_rel_version=6.0
+ cf_cv_abi_version=6
+ AC_MSG_WARN(Overriding ABI version to $cf_cv_abi_version)
+ ;;
+ esac
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_NUMBER_SYNTAX version: 1 updated: 2003/09/20 18:12:49
dnl ----------------
dnl Check if the given variable is a number. If not, report an error.
ifelse($2,,[AC_ERROR([expected a pathname, not \"[$]$1\"])],$2)
;;
esac
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_POSIX_C_SOURCE version: 6 updated: 2005/07/14 20:25:10
+dnl -----------------
+dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
+dnl
+dnl POSIX.1-1990 _POSIX_SOURCE
+dnl POSIX.1-1990 and _POSIX_SOURCE and
+dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
+dnl Bindings Option
+dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
+dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
+dnl X/Open 2000 _POSIX_C_SOURCE=200112L
+dnl
+dnl Parameters:
+dnl $1 is the nominal value for _POSIX_C_SOURCE
+AC_DEFUN([CF_POSIX_C_SOURCE],
+[
+cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
+
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
+
+CF_REMOVE_DEFINE(cf_trim_CFLAGS,$cf_save_CFLAGS,_POSIX_C_SOURCE)
+CF_REMOVE_DEFINE(cf_trim_CPPFLAGS,$cf_save_CPPFLAGS,_POSIX_C_SOURCE)
+
+AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
+ CF_MSG_LOG(if the symbol is already defined go no further)
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif],
+ [cf_cv_posix_c_source=no],
+ [cf_want_posix_source=no
+ case .$cf_POSIX_C_SOURCE in #(vi
+ .[[12]]??*) #(vi
+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ ;;
+ .2) #(vi
+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ cf_want_posix_source=yes
+ ;;
+ .*)
+ cf_want_posix_source=yes
+ ;;
+ esac
+ if test "$cf_want_posix_source" = yes ; then
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifdef _POSIX_SOURCE
+make an error
+#endif],[],
+ cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE")
+ fi
+ CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
+ CFLAGS="$cf_trim_CFLAGS"
+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
+ CF_MSG_LOG(if the second compile does not leave our definition intact error)
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif],,
+ [cf_cv_posix_c_source=no])
+ CFLAGS="$cf_save_CFLAGS"
+ CPPFLAGS="$cf_save_CPPFLAGS"
+ ])
+])
+
+if test "$cf_cv_posix_c_source" != no ; then
+ CFLAGS="$cf_trim_CFLAGS"
+ CPPFLAGS="$cf_trim_CPPFLAGS"
+ if test "$cf_cv_cc_u_d_options" = yes ; then
+ cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
+ sed -e 's/-D/-U/g' -e 's/=[[^ ]]*//g'`
+ CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
+ fi
+ CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+fi
+
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
fi
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_PROG_CC_C_O version: 1 updated: 2004/02/14 15:00:43
+dnl --------------
+dnl Analogous to AC_PROG_CC_C_O, but more useful: tests only $CC, ensures that
+dnl the output file can be renamed, and allows for a shell variable that can
+dnl be used later. The parameter is either CC or CXX. The result is the
+dnl cache variable:
+dnl $cf_cv_prog_CC_c_o
+dnl $cf_cv_prog_CXX_c_o
+AC_DEFUN([CF_PROG_CC_C_O],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_MSG_CHECKING([whether [$]$1 understands -c and -o together])
+AC_CACHE_VAL(cf_cv_prog_$1_c_o,
+[
+cat > conftest.$ac_ext <<CF_EOF
+#include <stdio.h>
+int main()
+{
+ return 0;
+}
+CF_EOF
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='[$]$1 -c conftest.$ac_ext -o conftest2.$ac_objext >&AC_FD_CC'
+if AC_TRY_EVAL(ac_try) &&
+ test -f conftest2.$ac_objext && AC_TRY_EVAL(ac_try);
+then
+ eval cf_cv_prog_$1_c_o=yes
+else
+ eval cf_cv_prog_$1_c_o=no
+fi
+rm -f conftest*
+])dnl
+if test $cf_cv_prog_$1_c_o = yes; then
+ AC_MSG_RESULT([yes])
+else
+ AC_MSG_RESULT([no])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_PROG_CC_U_D version: 1 updated: 2005/07/14 16:59:30
+dnl --------------
+dnl Check if C (preprocessor) -U and -D options are processed in the order
+dnl given rather than by type of option. Some compilers insist on apply all
+dnl of the -U options after all of the -D options. Others allow mixing them,
+dnl and may predefine symbols that conflict with those we define.
+AC_DEFUN([CF_PROG_CC_U_D],
+[
+AC_CACHE_CHECK(if $CC -U and -D options work together,cf_cv_cc_u_d_options,[
+ cf_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
+ AC_TRY_COMPILE([],[
+#ifndef U_D_OPTIONS
+make an undefined-error
+#endif
+#ifdef D_U_OPTIONS
+make a defined-error
+#endif
+ ],[
+ cf_cv_cc_u_d_options=yes],[
+ cf_cv_cc_u_d_options=no])
+ CPPFLAGS="$cf_save_CPPFLAGS"
+])
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_PROG_EXT version: 10 updated: 2004/01/03 19:28:18
dnl -----------
dnl Compute $PROG_EXT, used for non-Unix ports, such as OS/2 EMX.
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SHARED_OPTS version: 30 updated: 2003/12/27 20:48:07
+dnl CF_REMOVE_DEFINE version: 2 updated: 2005/07/09 16:12:18
+dnl ----------------
+dnl Remove all -U and -D options that refer to the given symbol from a list
+dnl of C compiler options. This works around the problem that not all
+dnl compilers process -U and -D options from left-to-right, so a -U option
+dnl cannot be used to cancel the effect of a preceding -D option.
+dnl
+dnl $1 = target (which could be the same as the source variable)
+dnl $2 = source (including '$')
+dnl $3 = symbol to remove
+define([CF_REMOVE_DEFINE],
+[
+# remove $3 symbol from $2
+$1=`echo "$2" | \
+ sed -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[[ ]]/ /g' \
+ -e 's/-[[UD]]$3\(=[[^ ]]*\)\?[$]//g'`
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_SHARED_OPTS version: 31 updated: 2005/01/01 16:39:44
dnl --------------
dnl Attempt to determine the appropriate CC/LD options for creating a shared
dnl library.
;;
irix*)
if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+ if test "$GCC" = yes; then
+ cf_ld_rpath_opt="-Wl,-rpath,"
+ EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+ else
+ cf_ld_rpath_opt="-rpath "
+ EXTRA_LDFLAGS="-rpath \$(libdir) $EXTRA_LDFLAGS"
+ fi
fi
# tested with IRIX 5.2 and 'cc'.
if test "$GCC" != yes; then
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_SRC_MODULES version: 15 updated: 2004/01/10 16:05:16
+dnl CF_SRC_MODULES version: 18 updated: 2005/05/28 12:58:54
dnl --------------
dnl For each parameter, test if the source-directory exists, and if it contains
dnl a 'modules' file. If so, add to the list $cf_cv_src_modules which we'll
# dependencies and linker-arguments for test-programs
TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
+TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
if test "$DFT_LWR_MODEL" = "libtool"; then
TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
else
TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
+ TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
fi
-# dependencies and linker-arguments for utility-programs
-test "$with_termlib" != yes && PROG_ARGS="$TEST_ARGS"
-
cf_cv_src_modules=
for cf_dir in $1
do
AC_DEFINE_UNQUOTED(HAVE_${cf_have_include}_H)
AC_DEFINE_UNQUOTED(HAVE_LIB${cf_have_include})
TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
+ TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
if test "$DFT_LWR_MODEL" = "libtool"; then
TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
else
TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
+ TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
fi
fi
fi
done
AC_MSG_RESULT($cf_cv_src_modules)
+
TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
-AC_SUBST(TEST_DEPS)
+TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
+
AC_SUBST(TEST_ARGS)
+AC_SUBST(TEST_DEPS)
-PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
-AC_SUBST(PROG_ARGS)
+AC_SUBST(TEST_ARG2)
+AC_SUBST(TEST_DEP2)
SRC_SUBDIRS="man include"
for cf_dir in $cf_cv_src_modules
test "$cf_cv_sys_time_select" = yes && AC_DEFINE(HAVE_SYS_TIME_SELECT)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_TYPEOF_CHTYPE version: 4 updated: 2000/10/04 09:18:40
+dnl CF_TYPEOF_CHTYPE version: 6 updated: 2005/06/25 16:16:34
dnl ----------------
dnl Determine the type we should use for chtype (and attr_t, which is treated
dnl as the same thing). We want around 32 bits, so on most machines want a
dnl wide characters, we have to have a type compatible with that, as well.
AC_DEFUN([CF_TYPEOF_CHTYPE],
[
-AC_REQUIRE([CF_UNSIGNED_LITERALS])
AC_MSG_CHECKING([for type of chtype])
AC_CACHE_VAL(cf_cv_typeof_chtype,[
AC_TRY_RUN([
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h> /* we want wchar_t */
-#define WANT_BITS 39
-#else
#define WANT_BITS 31
-#endif
#include <stdio.h>
int main()
{
FILE *fp = fopen("cf_test.out", "w");
if (fp != 0) {
char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
- /*
- * If wchar_t is smaller than a long, it must be an int or a
- * short. We prefer not to use a short anyway.
- */
- if (sizeof(unsigned long) > sizeof(wchar_t))
- result = "int";
-#endif
if (sizeof(unsigned long) > sizeof(unsigned int)) {
int n;
- unsigned int x;
+ unsigned int x, y;
for (n = 0; n < WANT_BITS; n++) {
- unsigned int y = (x >> n);
+ x = (1 << n);
+ y = (x >> n);
if (y != 1 || x == 0) {
x = 0;
break;
AC_SUBST(cf_cv_typeof_chtype)
AC_DEFINE_UNQUOTED(TYPEOF_CHTYPE,$cf_cv_typeof_chtype)
-
-cf_cv_1UL="1"
-test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
-test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
-AC_SUBST(cf_cv_1UL)
-
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_TYPE_SIGACTION version: 3 updated: 2000/08/12 23:18:52
])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DBMALLOC version: 2 updated: 2002/12/29 21:11:45
+dnl CF_WITH_DBMALLOC version: 4 updated: 2004/02/28 05:49:27
dnl ----------------
-dnl Configure-option for dbmalloc
+dnl Configure-option for dbmalloc. The optional parameter is used to override
+dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
AC_DEFUN([CF_WITH_DBMALLOC],[
AC_MSG_CHECKING(if you want to link with dbmalloc for testing)
AC_ARG_WITH(dbmalloc,
- [ --with-dbmalloc test: use Conor Cahill's dbmalloc library],
+ [ --with-dbmalloc use Conor Cahill's dbmalloc library],
[with_dbmalloc=$withval],
[with_dbmalloc=no])
AC_MSG_RESULT($with_dbmalloc)
-if test $with_dbmalloc = yes ; then
- AC_CHECK_LIB(dbmalloc,debug_malloc)
+if test "$with_dbmalloc" = yes ; then
+ AC_CHECK_HEADER(dbmalloc.h,
+ [AC_CHECK_LIB(dbmalloc,[debug_malloc]ifelse($1,,[],[,$1]))])
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_WITH_DMALLOC version: 2 updated: 2002/12/29 21:11:45
+dnl CF_WITH_DMALLOC version: 4 updated: 2004/02/28 05:49:27
dnl ---------------
-dnl Configure-option for dmalloc
+dnl Configure-option for dmalloc. The optional parameter is used to override
+dnl the updating of $LIBS, e.g., to avoid conflict with subsequent tests.
AC_DEFUN([CF_WITH_DMALLOC],[
AC_MSG_CHECKING(if you want to link with dmalloc for testing)
AC_ARG_WITH(dmalloc,
- [ --with-dmalloc test: use Gray Watson's dmalloc library],
+ [ --with-dmalloc use Gray Watson's dmalloc library],
[with_dmalloc=$withval],
[with_dmalloc=no])
AC_MSG_RESULT($with_dmalloc)
-if test $with_dmalloc = yes ; then
- AC_CHECK_LIB(dmalloc,dmalloc_debug)
+if test "$with_dmalloc" = yes ; then
+ AC_CHECK_HEADER(dmalloc.h,
+ [AC_CHECK_LIB(dmalloc,[dmalloc_debug]ifelse($1,,[],[,$1]))])
fi
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_WITH_GPM version: 1 updated: 2005/06/25 15:47:45
+dnl -----------
+AC_DEFUN([CF_WITH_GPM],
+[
+AC_MSG_CHECKING(if you want to link with the GPM mouse library)
+AC_ARG_WITH(gpm,
+ [ --with-gpm use Alessandro Rubini's GPM library],
+ [with_gpm=$withval],
+ [with_gpm=maybe])
+AC_MSG_RESULT($with_gpm)
+if test "$with_gpm" != no ; then
+ AC_CHECK_LIB(gpm,Gpm_Open,[
+ AC_CHECK_HEADER(gpm.h,[
+ AC_DEFINE(HAVE_GPM_H)
+ with_gpm=yes
+ ],[
+ if test "$with_gpm" = yes ; then
+ AC_ERROR(Cannot find GPM header)
+ fi
+ ])
+ ],[
+ if test "$with_gpm" = yes ; then
+ AC_ERROR(Cannot link with GPM library)
+ fi
+ with_gpm=no
+ ])
+fi
+])
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_LIBTOOL version: 9 updated: 2004/01/16 14:55:37
dnl ---------------
dnl Provide a configure option to incorporate libtool. Define several useful
fi
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_XOPEN_SOURCE version: 11 updated: 2004/01/26 20:58:41
+dnl CF_XOPEN_SOURCE version: 22 updated: 2005/08/06 18:06:32
dnl ---------------
dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
dnl or adapt to the vendor's definitions to get equivalent functionality.
+dnl
+dnl Parameters:
+dnl $1 is the nominal value for _XOPEN_SOURCE
+dnl $2 is the nominal value for _POSIX_C_SOURCE
AC_DEFUN([CF_XOPEN_SOURCE],[
+
+AC_REQUIRE([CF_PROG_CC_U_D])
+
+cf_XOPEN_SOURCE=ifelse($1,,500,$1)
+cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
+
case $host_os in #(vi
+aix[[45]]*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+ ;;
+darwin*) #(vi
+ # setting _XOPEN_SOURCE breaks things on Darwin
+ ;;
freebsd*) #(vi
- CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
+ # 5.x headers associate
+ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
+ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
+ cf_POSIX_C_SOURCE=200112L
+ cf_XOPEN_SOURCE=600
+ CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
;;
hpux*) #(vi
CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
;;
-irix6.*) #(vi
+irix[[56]].*) #(vi
CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
;;
-linux*) #(vi
+linux*|gnu*) #(vi
CF_GNU_SOURCE
;;
mirbsd*) #(vi
osf[[45]]*) #(vi
CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
;;
+nto-qnx*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
+ ;;
sco*) #(vi
# setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
;;
#endif],
[cf_cv_xopen_source=no],
[cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifdef _XOPEN_SOURCE
make an error
#endif],
[cf_cv_xopen_source=no],
- [cf_cv_xopen_source=yes])
- CPPFLAGS="$cf_save"
- ])
-])
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-
- # FreeBSD 5.x headers demand this...
- AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_xopen_source,[
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
- AC_TRY_COMPILE([#include <sys/types.h>],[
-#ifdef _POSIX_C_SOURCE
-make an error
-#endif],
- [cf_cv_xopen_source=no],
- [cf_cv_xopen_source=yes])
+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
CPPFLAGS="$cf_save"
])
])
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
+ if test "$cf_cv_xopen_source" != no ; then
+ CF_REMOVE_DEFINE(CFLAGS,$CFLAGS,_XOPEN_SOURCE)
+ CF_REMOVE_DEFINE(CPPFLAGS,$CPPFLAGS,_XOPEN_SOURCE)
+ test "$cf_cv_cc_u_d_options" = yes && \
+ CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+ fi
+ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
;;
esac
])
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<!--
- $Id: announce.html.in,v 1.53 2004/01/18 01:27:26 tom Exp $
+ $Id: announce.html.in,v 1.57 2005/10/01 22:07:23 tom Exp $
-->
<HTML>
<HEAD>
and has all the other SYSV-curses enhancements over BSD curses.<P>
In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and is encouraging the keepers of
-Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
+considered 4.4BSD curses obsolete, and encouraged the keepers of
+Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
ncurses.<P>
The ncurses code was developed under GNU/Linux.
<H1>Release Notes</H1>
-This release is designed to be upward compatible from ncurses 5.0 and 5.3;
+This release is designed to be upward compatible from ncurses 5.0 through 5.4;
very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.3 release.
+These are the highlights from the change-log since ncurses 5.4 release.
<p>
Interface changes:
<ul>
- <li>add the remaining functions for X/Open curses wide-character
- support.
- <ul>
- <li>pecho_wchar()
- <li>slk_wset()
- </ul>
- These are only available if the library is configured using the
- <kbd>--enable-widec</kbd> option.
-
- <li>write <code>getyx()</code> and related 2-return macros in terms of
- <code>getcury()</code>,
- <code>getcurx()</code>, etc.
-
- <li>simplify ifdef for <code>bool</code> declaration in curses.h
-
- <li>modify ifdef's in curses.h that disabled use of
- <code>__attribute__()</code> for g++, since recent versions
- implement the cases which ncurses uses.
-
- <li>add <code>key_defined()</code> function, to tell which keycode a
- string is bound to.
+ <li>terminfo installs "xterm-new" as "xterm" entry rather than
+ "xterm-old" (aka xterm-r6).
+
+ <li>terminfo data is installed using the tic -x option (few systems
+ still use ncurses 4.2).
+
+ <li>modify C++ binding to work with newer C++ compilers by providing
+ initializers and using modern casts. Old-style header names are
+ still used in this release to allow compiling with not-so-old
+ compilers.
+
+ <li>modify parameter type in c++ binding for insch() and mvwinsch() to
+ be consistent with underlying ncurses library (was char, is chtype).
+
+ <li>change NCursesWindow::err_handler() to a virtual function.
+
+ <li>form and menu libraries now work with wide-character data.
+ Applications which bypassed the form library and manipulated the
+ FIELD.buf data directly will not work properly with libformw,
+ since that no longer points to an array of char. The
+ set_field_buffer() and field_buffer() functions translate to/from
+ the actual field data.
+
+
+ <li>add symbol to curses.h which can be used to suppress include of
+ stdbool.h, e.g.,
+ <pre>
+ #define NCURSES_ENABLE_STDBOOL_H 0
+ #include <curses.h>
+ </pre>
+
+ <li>change SP->_current_attr to a pointer, adjust ifdef's to ensure
+ that libtinfo.so and libtinfow.so have the same ABI. The reason
+ for this is that the corresponding data which belongs to the
+ upper-level ncurses library has a different size in each model.
+
+ <li>winnstr() now returns multibyte character strings for the
+ wide-character configuration.
+
+ <li>assume_default_colors() no longer requires that
+ use_default_colors() be called first.
+
+ <li>data_ahead() now works with wide-characters.
+
+ <li>slk_set() and slk_wset() now accept and store multibyte or
+ multicolumn characters.
+
+ <li>start_color() now returns OK if colors have
+ already been started.
+ start_color() also returns ERR if it cannot allocate memory.
+
+ <li>pair_content() now returns -1 for consistency with init_pair()
+ if it corresponds to the default-color.
+
+ <li>unctrl() now returns null if its parameter does not correspond
+ to an unsigned char.
+
</ul>
New features and improvements:
<ul>
<li>library
<ul>
- <li>implement logic in lib_mouse.c to handle position reports which
- are generated when XFree86 xterm is initialized with private
- modes 1002 or 1003. These are returned to the application as the
- REPORT_MOUSE_POSITION mask, which was not implemented.
- <li>modify soft-key initialization to use A_REVERSE if A_STANDOUT
- would not be shown when colors are used, i.e., if ncv#1 is set in
- the terminfo as is done in "screen".
- <li>add configure option for FreeBSD sysmouse, --with-sysmouse, and
- implement library support for that.
+ <li>environment variable NCURSES_NO_UTF8_ACS supports
+ miscellaneous terminal emulators which ignore alternate
+ character set escape sequences when in UTF-8 mode.
+
+ <li>modify initialization of key lookup table so that if an extended
+ capability (tic -x) string is defined, and its name begins with 'k',
+ ncurses will automatically treat it as a key.
+
+ <li>change GPM initialization, using dl library to load it
+ dynamically at runtime.
+
+ <li>form, menu and panel libraries support debug-tracing.
+
</ul>
- <li>programs:
+ <li>add NCURSES-Programming-HOWTO.html by Pradeep Padala
+ (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
- <ul>
- <li>tack:
+ <li>programs:
+ <li>infocmp:
<ul>
- <li>allow it to run from fallback terminfo data.
- <li>reset colors after each color test, correct a place
- where <code>exit_standout_mode</code> was used instead of
- <code>exit_attribute_mode</code>.
- <li>improve <code>bce</code> test by making it set colors other
- than black on white.
+ <li>The -i option now matches 8-bit controls against its table
+ entries, e.g., so it can analyze the xterm-8bit entry.
+
+ <li>add "-x" option to infocmp like tic's "-x", for use in "-F"
+ comparisons. This modifies infocmp to only report extended
+ capabilities if the -x option is given, making this more
+ consistent with tic. Some scripts may break, since infocmp
+ previous gave this information without an option.
+
</ul>
<li>tic:
<ul>
- <li>handle a case where an entry has no
- description, and capabilities begin on the same line as the entry
- name.
- <li>allow a terminfo entry with a leading 2-character name.
- <li>improved warnings when suppressing items to fit in termcap's
- 1023-byte limit.
- <li>add check for multiple "tc=" clauses in a termcap.
- <li>correct logic for resolving "use=" clauses
- allow infocmp and tic to show cancelled capabilities.
- <li>check for incomplete line-drawing character mapping.
- <li>check for missing/empty/illegal terminfo name.
- </ul>
- <li>tput:
- <ul>
- <li>modify tput to use the same parameter analysis as tparm() does,
- to provide for user-defined strings, e.g., for xterm title, a
- corresponding capability might be
- title=\E]2;%p1%s^G,
+ <li>modify termcap-parsing to retain 2-character aliases at the
+ beginning of an entry if the "-x" option is used in tic.
+
+ <li>filter out long extended names when translating to termcap
+ format. Only two characters are permissible for termcap
+ capability names.
+
+ <li>correct translation of "%%" in terminfo format to termcap,
+ e.g., using "tic -C".
+
+ <li>modify the "-c -v" options to ignore delays when comparing
+ strings. Also modify it to ignore a canceled sgr string,
+ e.g., for terminals which cannot properly combine attributes
+ in one control sequence.
+
+ <li>add a check for improperly ended strings, i.e., where a
+ following line begins in column 1.
+
+ <li>add a check in tic for terminfo entries having an sgr0 but no
+ sgr string. This confuses Tru64 and HPUX curses when combined
+ with color, e.g., making them leave line-drawing characters in
+ odd places.
+
+ <li>add check (with debug configuration) that provides about the
+ runtime changes that would be made to sgr0 for termcap
+ applications.
+
</ul>
<li>tset:
<ul>
- <li>use the system's default values for CKILL and other default
- control characters.
- <li>correct interchanged defaults for kill and interrupt
- characters, which caused it to report unnecessarily.
+
+ <li>add -c and -w options to allow user to suppress ncurses'
+ resizing of the terminal emulator window in the special case
+ where it is not able to detect the true size.
+
</ul>
- </ul>
</ul>
Major bug fixes:
<ul>
- <li>prevent recursion in wgetch() via wgetnstr() if the connection
- cannot be switched between cooked/raw modes because it is not a TTY.
- <li>correct a case in _nc_remove_string(), used by
- <code>define_key()</code>, to avoid infinite loop if the given string
- happens to be a substring of other strings which are assigned to keys.
+ <li>improve logic in tgetent() which adjusts the termcap "me" string
+ to work with ISO-2022 string used in xterm-new.
+ This is a feature that was incompletely implemented in ncurses 5.3.
+ ncurses attempts to provide termcap clients with the portion of
+ the sgr0 (termcap "me") string that does not reset line-drawing.
- <li>modify logic of acsc to use the original character if no mapping is
- defined, rather than a null.
+ <li>cells in the WINDOW which are continuations of a multicolumn
+ character are encoded differently, making repainting more
+ reliable.
- <li>several improvements for handling multi-cell display of wide
- characters.
- <ul>
- <li>modify setcchar() to allow converting control characters to complex
- characters.
- <li>correct handling of multibyte characters in waddch_literal() which
- force wrapping because they are started too late on the line.
- <li>modify setcchar() to allow for wchar_t input strings that have
- more than one spacing character.
- </ul>
+ <li>amend change to setupterm() in ncurses 5.4 (20030405) which would
+ reuse the value of cur_term if the same output was selected. This
+ now reuses it only when setupterm() is called from tgetent(),
+ which has no notion of separate SCREENs. Note that tgetent() must
+ be called after initscr() or newterm() to use this feature.
- <li>other fixes for wide-character support:
- <ul>
- <li>rewrote lib_acs.c to allow PutAttrChar() to decide how to render
- alternate-characters, i.e., to work with Linux console and UTF-8
- locale.
- <li>implement a workaround so that line-drawing works with screen's
- crippled UTF-8 support (tested with 3.9.13). This only works with
- the wide-character support (--enable-widec); the normal library
- will simply suppress line-drawing when running in a UTF-8 locale in
- screen.
- <li>corrections to lib_get_wstr.c:
- <ul>
- <li>null-terminate buffer passed to setcchar(), which occasionally
- failed.
- <li>map special characters such as erase- and kill-characters into
- key-codes so those will work as expected even if they are not
- mentioned in the terminfo.
- </ul>
- </ul>
+ <li>make setcchar() now works when its wchar_t* parameter is
+ pointing to a string which contains more data than can be converted.
- <li>modify <code>setupterm()</code> to check if the terminfo and
- terminal-modes have already been read. This ensures that it does not
- reinvoke <code>def_prog_mode()</code> when an application calls more
- than one function, such as <code>tgetent()</code> and
- <code>initscr()</code>.
+ <li>win_wchnstr() now works for more than one cell.
- <li>fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR,
- REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at
- the editing position before making modifications.
+ <li>resizeterm() now processes all levels of window hierarchy.
- <li>correct <code>keybound()</code>, which reported definitions in the
- wrong table, i.e., the list of definitions which are disabled by
- <code>keyok()</code>.
+ <li>disable GPM mouse support when $TERM happens to be prefixed with
+ "xterm". Gpm_Open() would otherwise assert that it can deal with
+ mouse events in this case.
- <li>fixes related to safe_sprintf.c:
- <ul>
- <li>correct an allocation size in safe_sprintf.c for the "*" format
- code.
- <li>correct safe_sprintf.c to not return a null pointer if the format
- happens to be an empty string.
- <li>make return value from _nc_printf_string() consistent. Before,
- depending on whether --enable-safe-sprintf was used, it might not
- be cached for reallocating.
- </ul>
+ <li>add SP->_screen_acs_map[], used to ensure that mapping of missing
+ line-drawing characters is handled properly. For example, ACS_DARROW
+ is absent from xterm-new, and it was coincidentally displayed the
+ same as ACS_BTEE.
- <li>other low-level improvements to the optimization code include:
- <ul>
- <li>if the output is a socket or other non-tty device, use 1
- millisecond
- for the cost in mvcur; previously it was 9 milliseconds because the
- baudrate was not known.
- <li>modify lib_getch.c to avoid recursion via wgetnstr() when the
- input
- is not a tty and consequently mode-changes do not work.
- <li>fix several places in tack/pad.c which tested and used the
- parameter- and parameterless strings inconsistently.
- <li>change several tputs() calls in scrolling code to use putp(), to
- enable padding which may be needed for some terminals.
- <li>improve mvcur() by checking if it is safe to move when video
- attributes are set (msgr), and if not, reset/restore attributes
- within that function rather than doing it separately in the GoTo()
- function in tty_update.c.
- <li>use tputs() rather than putp() in a few cases in tty_update.c
- since the corresponding delays are proportional to the number of
- lines affected: repeat_char, clr_eos, change_scroll_region.
- </ul>
-
- <li>correct line/column reference in adjust_window(), needed to make
- special windows such as curscr track properly when resizing.
-
- <li>fix a potential recursion between napms() and _nc_timed_wait()
-
- <li>rewrote lib_insch.c, combining it with lib_insstr.c so both handle
- tab and other control characters consistently.
-
- <li>do not try to open gpm mouse driver if standard output is not a
- tty; the gpm library does not make this check.
</ul>
Portability:
<ul>
<li>new options:
<dl>
- <dt>--with-abi-version option.
- <dd>addresses platforms where packagers have diverged from
- ncurses ABI numbering.
- <dt>--with-manpage-format=catonly
- <dd>addresses
- behavior of BSDI, allow install of man+cat files on NetBSD,
- whose behavior has diverged by requiring both to be present.
- <dt>--with-manpage-aliases
- <dd>extends
- "--with-manpage-aliases" to provide the option of generating
- ".so" files rather than symbolic links for manpage aliases.
- <dt>--with-rel-version
- <dd>workaround to force
- libtool on Darwin generate the "same" library names as with
- the "--with-shared" option. The Darwin ld program does not
- work well with a zero as the minor-version value.
- <dt>--with-trace
- <dd>simplifies defining TRACE to incorporate trace() in libraries.
+ <dt>--enable-largefile
+ <dd>set compiler and linker flags to use largefile support.
+
+ <dt>--enable-ext-colors
+ <dd>Allow encoding of 256 foreground
+ and background colors, e.g., with the xterm-256color or
+ xterm-88color terminfo entries.
+ This requires ABI 6 because it changes the size of cchar_t.
+
+ <dt>--enable-ext-mouse
+ <dd>This defines NCURSES_MOUSE_VERSION 2, and modifies the encoding of
+ mouse events to support wheel mice, which may transmit buttons
+ 4 and 5. This works with xterm and similar terminal
+ emulators.
+ This requires ABI 6 because it changes the encoding of
+ mouse events.
+
+ <dt>--with-chtype
+ <dd>overriding of the non-LP64 model's use of chtype
+
+ <dt>--with-mmask-t
+ <dd>overriding of the non-LP64 model's use of mmask_t
+
+ <dt>--without-xterm-new
+ <dd>Installs "xterm-old" as the "xterm" entry of the terminfo
+ database.
+
</dl>
-
+
+ <li>The --with-termlib option now accepts a value which sets
+ the name of the terminfo library. This would allow a packager to
+ build libtinfow.so renamed to coincide with libtinfo.so
+
<li>fixes/improvements for cross-compiling:
-
- <ul>
- <li>allow BUILD_CC and related configure script variables to be
- overridden from the environment.
- <li>use AC_CHECK_TOOL to get proper values for AR and LD for cross
- compiling.
- <li>use <code>$cross_compiling</code> variable in configure script
- rather than comparing <code>$host_alias</code> and
- <code>$target</code> alias, since "host" is traditionally misused
- in autoconf to refer to the target platform.
- <li>modify run_tic.in to avoid using wrong shared libraries when
- cross-compiling.
- </ul>
-
- <li>fixes for Mac OS X:
- <ul>
- <li>fix a redefinition of <code>$RANLIB</code> in the configure
- script when libtool is used.
- <li>modify MKlib_gen.sh to avoid passing "#" tokens through the C
- preprocessor. This works around Mac OS X's preprocessor, which
- insists on adding a blank on each side of the token.
- </ul>
-
- <li>workarounds for broken tools:
+
<ul>
- <li>add configure check for wchar_t and wint_t types, rather than
- rely on preprocessor definitions. Also work around for gcc
- <code>fixinclude</code> bug which creates a shadow copy of
- curses.h if it sees these symbols apparently typedef'd.
- <li>modify configure script to omit -Winline for gcc 3.3, since
- that feature is broken.
- <li>several script fixes to work around the ironically named
- <em>POSIXLY_CORRECT</em> feature of GNU sed 4.0.
- <li>modify configure script to avoid using "head -1", which does
- not work if POSIXLY_CORRECT (sic) is set.
- <li>update configure script to reflect fix for
- AC_PROG_GCC_TRADITIONAL, which is broken in autoconf 2.5x for Mac
- OS X 10.2.3.
- <li>repair check for missing C++ compiler, which is broken in
- autoconf 2.5x by hardcoding it to g++.
+ <li>suppress $suffix in misc/run_tic.sh when cross-compiling.
+ This allows cross-compiles to use the host's tic program to
+ handle the "make install.data" step.
+
+ <li>correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
+ cross-compiling from a separate directory tree.
+
</ul>
-
- <li>corrected ifdef's relating to configure check for wchar_t, etc.
- <li>remove configure script check to allow -Wconversion for older
- versions of gcc
- <li>modify configure script to accommodate libtool 1.5, as well as
- add an parameter to the "--with-libtool" option which can specify
- the pathname of libtool.
- <li>change several sed scripts to avoid using "\+" since it is not a
- BRE (basic regular expression). One instance caused terminfo.5 to
- be misformatted on FreeBSD.
- <li>use '%' as sed substitute delimiter in run_tic script to avoid
- problems with pathname delimiters such as ':' and '@'.
- <li>add -D_XOPEN_SOURCE=500 if needed when configuring with
- "--enable-widec", to get <code>mbstate_t</code> declaration on HPUX
- 11.11.
+
</ul>
<li>library:
<ul>
- <li>adjust include-options in CF_ETIP_DEFINES to avoid missing
- ncurses_dll.h, fixing special definitions that may be needed for
- etip.h.
- <li>modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a
- ".so" suffix.
- <li>improve ifdef's to guard against redefinition of wchar_t and wint_t
- in curses.h.
- <li>remove an #undef for KEY_EVENT from curses.tail used in the
- experimental NCURSES_WGETCH_EVENTS feature. The #undef confuses
- Debian <code>dpkg</code>'s build script.
+
+ <li>add ifdef's for _LP64 in curses.h to avoid using wasteful
+ 64-bits for chtype and mmask_t, but add configure option
+ --disable-lp64 in case anyone used that configuration.
+
+ <li>modify C++ binding to use some C internal functions to make it
+ compile properly on Solaris (and other platforms).
+
+ <li>remove check in newwin() that prevents allocating windows that
+ extend beyond the screen (Solaris does this).
+
+ <li>check for <code>nl_langinfo(CODESET)</code>, use it if available.
+ This replaces ad hoc tests of environment variables to
+ check if the terminal is setup for UTF-8 encoding.
+ Applications which do not call <code>setlocale()</code>
+ should be corrected, to make them work properly with
+ UTF-8 encoding.
+ <br>
+ <strong>In particular, applications which assume (and
+ do not call <code>setlocale()</code>) that
+ Latin-1 codes are printable will no longer work in
+ a UTF-8 locale since the ad hoc check of environment
+ variables to see if the locale was UTF-8 is not used
+ when <code>nl_langinfo(CODESET)</code> is available.</strong>
+
+ <li>use setlocale() to query the program's current locale rather
+ than using getenv(). This supports applications which rely
+ upon legacy treatment of 8-bit characters when the locale is
+ not initialized.
+
</ul>
</ul>
-# $Id: Makefile.in,v 1.72 2004/01/16 22:44:56 tom Exp $
+# $Id: Makefile.in,v 1.77 2005/06/12 22:52:56 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
RANLIB = @LIB_PREP@
CXX = @CXX@
-CPP = @CPP@
-CXXFLAGS = @CXXFLAGS@
+CPP = @CXXCPP@
+CXXFLAGS = @CXXFLAGS@ @EXTRA_CXXFLAGS@
CXXLIBS = @CXXLIBS@
INCDIR = ../include
LINK_SHARED = $(LINK_FLAGS)
LDFLAGS = @TEST_ARGS@ @LDFLAGS@ \
- @LD_MODEL@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
+ @LD_MODEL@ @LIBS@ @LOCAL_LDFLAGS@ $(CXXLIBS)
LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
depend :
+tags:
+ ctags *.[h] *.cc
+
# Build a conventional library for installing, since a shared library would
# pull in all of the ncurses libraries (panel, menu, form, ncurses) as direct
# dependencies.
clean :: mostlyclean
-sh -c "if test -n '$x' ; then $(MAKE) clean x=''; fi"
-rm -rf $(MODEL)/SunWS_cache
- -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(LIB_OBJS:$o=.lo) $(OBJS_DEMO)
+ -$(LIBTOOL_CLEAN) rm -f demo$x $(AUTO_SRC) ../lib/$(LIBNAME) $(LIB_OBJS) $(OBJS_DEMO)
-rm -rf .libs
distclean :: clean
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "internal.h"
#include "cursesapp.h"
-MODULE_ID("$Id: cursesapp.cc,v 1.10 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesapp.cc,v 1.13 2005/04/03 12:25:23 tom Exp $")
void
-NCursesApplication::init(bool bColors) {
+NCursesApplication::init(bool bColors)
+{
if (bColors)
NCursesWindow::useColors();
-
- if (Root_Window->colors() > 1) {
+
+ if (Root_Window->colors() > 1) {
b_Colors = TRUE;
Root_Window->setcolor(1);
Root_Window->setpalette(COLOR_YELLOW,COLOR_BLUE);
NCursesWindow* NCursesApplication::titleWindow = 0;
NCursesApplication::SLK_Link* NCursesApplication::slk_stack = 0;
-NCursesApplication::~NCursesApplication() {
+NCursesApplication::~NCursesApplication()
+{
Soft_Label_Key_Set* S;
delete titleWindow;
::endwin();
}
-int NCursesApplication::rinit(NCursesWindow& w) {
+int NCursesApplication::rinit(NCursesWindow& w)
+{
titleWindow = &w;
return OK;
}
-void NCursesApplication::push(Soft_Label_Key_Set& S) {
+void NCursesApplication::push(Soft_Label_Key_Set& S)
+{
SLK_Link* L = new SLK_Link;
assert(L != 0);
L->prev = slk_stack;
S.show();
}
-bool NCursesApplication::pop() {
+bool NCursesApplication::pop()
+{
if (slk_stack) {
SLK_Link* L = slk_stack;
slk_stack = slk_stack->prev;
return (slk_stack ? FALSE : TRUE);
}
-Soft_Label_Key_Set* NCursesApplication::top() const {
+Soft_Label_Key_Set* NCursesApplication::top() const
+{
if (slk_stack)
return slk_stack->SLKs;
else
- return (Soft_Label_Key_Set*)0;
+ return static_cast<Soft_Label_Key_Set*>(0);
}
-int NCursesApplication::operator()(void) {
+int NCursesApplication::operator()(void)
+{
bool bColors = b_Colors;
- Soft_Label_Key_Set* S;
+ Soft_Label_Key_Set* S = 0;
int ts = titlesize();
if (ts>0)
NCursesWindow::ripoffline(ts,rinit);
Soft_Label_Key_Set::Label_Layout fmt = useSLKs();
- if (fmt!=Soft_Label_Key_Set::None) {
+ if (fmt!=Soft_Label_Key_Set::None) {
S = new Soft_Label_Key_Set(fmt);
assert(S != 0);
init_labels(*S);
return run();
}
-NCursesApplication::NCursesApplication(bool bColors) {
- b_Colors = bColors;
+NCursesApplication::NCursesApplication(bool bColors)
+ : b_Colors(bColors),
+ Root_Window(NULL)
+{
if (theApp)
THROW(new NCursesException("Application object already created."));
else
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursesapp.h,v 1.9 2003/10/25 15:04:46 tom Exp $
+// $Id: cursesapp.h,v 1.11 2005/05/28 21:57:44 tom Exp $
#ifndef NCURSES_CURSESAPP_H_incl
#define NCURSES_CURSESAPP_H_incl
// be the exit value of your application.
virtual int run() = 0;
-
// The constructor is protected, so you may use it in your derived
// class constructor. The argument tells whether or not you want colors.
NCursesApplication(bool wantColors = FALSE);
+ NCursesApplication& operator=(const NCursesApplication& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ NCursesApplication(const NCursesApplication& rhs)
+ : b_Colors(rhs.b_Colors),
+ Root_Window(rhs.Root_Window)
+ {
+ }
+
public:
virtual ~NCursesApplication();
};
-#endif // NCURSES_CURSESAPP_H_incl
+#endif /* NCURSES_CURSESAPP_H_incl */
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "cursesf.h"
#include "cursesapp.h"
-MODULE_ID("$Id: cursesf.cc,v 1.16 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesf.cc,v 1.21 2005/08/13 18:09:06 tom Exp $")
-NCursesFormField::~NCursesFormField () {
+NCursesFormField::~NCursesFormField ()
+{
if (field)
OnError(::free_field (field));
}
* objects.
*/
FIELD**
-NCursesForm::mapFields(NCursesFormField* nfields[]) {
+NCursesForm::mapFields(NCursesFormField* nfields[])
+{
int fieldCount = 0,lcv;
FIELD** old_fields;
my_fields = nfields;
if (form && (old_fields = ::form_fields(form))) {
- ::set_form_fields(form,(FIELD**)0);
+ ::set_form_fields(form, static_cast<FIELD**>(0));
delete[] old_fields;
}
return fields;
}
-void NCursesForm::setDefaultAttributes() {
+void NCursesForm::setDefaultAttributes()
+{
NCursesApplication* S = NCursesApplication::getApplication();
int n = count();
void
NCursesForm::InitForm(NCursesFormField* nfields[],
bool with_frame,
- bool autoDelete_Fields) {
+ bool autoDelete_Fields)
+{
int mrows, mcols;
keypad(TRUE);
b_framed = with_frame;
b_autoDelete = autoDelete_Fields;
- form = (FORM*)0;
+ form = static_cast<FORM*>(0);
form = ::new_form(mapFields(nfields));
if (!form)
OnError (E_SYSTEM_ERROR);
hook->m_user = NULL;
hook->m_back = this;
hook->m_owner = form;
- ::set_form_userptr(form,(void*)hook);
+ ::set_form_userptr(form, reinterpret_cast<void*>(hook));
- ::set_form_init (form, NCursesForm::frm_init);
- ::set_form_term (form, NCursesForm::frm_term);
- ::set_field_init (form, NCursesForm::fld_init);
- ::set_field_term (form, NCursesForm::fld_term);
+ ::set_form_init (form, _nc_xx_frm_init);
+ ::set_form_term (form, _nc_xx_frm_term);
+ ::set_field_init (form, _nc_xx_fld_init);
+ ::set_field_term (form, _nc_xx_fld_term);
scale(mrows, mcols);
::set_form_win(form, w);
b_sub_owner = TRUE;
}
else {
- sub = (NCursesWindow*)0;
+ sub = static_cast<NCursesWindow*>(0);
b_sub_owner = FALSE;
}
options_on(O_NL_OVERLOAD);
setDefaultAttributes();
}
-NCursesForm::~NCursesForm() {
- UserHook* hook = (UserHook*)::form_userptr(form);
+NCursesForm::~NCursesForm()
+{
+ UserHook* hook = reinterpret_cast<UserHook*>(::form_userptr(form));
delete hook;
if (b_sub_owner) {
delete sub;
- ::set_form_sub(form,(WINDOW *)0);
+ ::set_form_sub(form, static_cast<WINDOW *>(0));
}
if (form) {
FIELD** fields = ::form_fields(form);
int cnt = count();
- OnError(::set_form_fields(form,(FIELD**)0));
+ OnError(::set_form_fields(form, static_cast<FIELD**>(0)));
if (b_autoDelete) {
if (cnt>0) {
}
void
-NCursesForm::setSubWindow(NCursesWindow& nsub) {
+NCursesForm::setSubWindow(NCursesWindow& nsub)
+{
if (!isDescendant(nsub))
OnError(E_SYSTEM_ERROR);
else {
* implementing a virtual method in a derived class
*/
void
-NCursesForm::frm_init(FORM *f) {
- getHook(f)->On_Form_Init();
+_nc_xx_frm_init(FORM *f)
+{
+ NCursesForm::getHook(f)->On_Form_Init();
}
void
-NCursesForm::frm_term(FORM *f) {
- getHook(f)->On_Form_Termination();
+_nc_xx_frm_term(FORM *f)
+{
+ NCursesForm::getHook(f)->On_Form_Termination();
}
void
-NCursesForm::fld_init(FORM *f) {
- NCursesForm* F = getHook(f);
+_nc_xx_fld_init(FORM *f)
+{
+ NCursesForm* F = NCursesForm::getHook(f);
F->On_Field_Init (*(F->current_field ()));
}
void
-NCursesForm::fld_term(FORM *f) {
- NCursesForm* F = getHook(f);
+_nc_xx_fld_term(FORM *f)
+{
+ NCursesForm* F = NCursesForm::getHook(f);
F->On_Field_Termination (*(F->current_field ()));
}
void
-NCursesForm::On_Form_Init() {
+NCursesForm::On_Form_Init()
+{
}
void
-NCursesForm::On_Form_Termination() {
+NCursesForm::On_Form_Termination()
+{
}
void
-NCursesForm::On_Field_Init(NCursesFormField& field) {
+NCursesForm::On_Field_Init(NCursesFormField& field)
+{
}
void
-NCursesForm::On_Field_Termination(NCursesFormField& field) {
+NCursesForm::On_Field_Termination(NCursesFormField& field)
+{
}
// call the form driver and do basic error checking.
int
-NCursesForm::driver (int c) {
+NCursesForm::driver (int c)
+{
int res = ::form_driver (form, c);
switch (res) {
case E_OK:
return (res);
}
-void NCursesForm::On_Request_Denied(int c) const {
+void NCursesForm::On_Request_Denied(int c) const
+{
::beep();
}
-void NCursesForm::On_Invalid_Field(int c) const {
+void NCursesForm::On_Invalid_Field(int c) const
+{
::beep();
}
-void NCursesForm::On_Unknown_Command(int c) const {
+void NCursesForm::On_Unknown_Command(int c) const
+{
::beep();
}
static const int CMD_QUIT = MAX_COMMAND + 1;
NCursesFormField*
-NCursesForm::operator()(void) {
+NCursesForm::operator()(void)
+{
int drvCmnd;
int err;
int c;
// The default implementation provides a hopefully straightforward
// mapping for the most common keystrokes and form requests.
int
-NCursesForm::virtualize(int c) {
+NCursesForm::virtualize(int c)
+{
switch(c) {
case KEY_HOME : return(REQ_FIRST_FIELD);
// User Defined Fieldtypes
// -------------------------------------------------------------------------
//
-bool UserDefinedFieldType::fcheck(FIELD *f, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_fld_fcheck(FIELD *f, const void *u)
+{
+ NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
assert(F != 0);
- UserDefinedFieldType* udf = (UserDefinedFieldType*)(F->fieldtype());
+ UserDefinedFieldType* udf = reinterpret_cast<UserDefinedFieldType*>(F->fieldtype());
assert(udf != 0);
return udf->field_check(*F);
}
-bool UserDefinedFieldType::ccheck(int c, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_fld_ccheck(int c, const void *u)
+{
+ NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
assert(F != 0);
UserDefinedFieldType* udf =
- (UserDefinedFieldType*)(F->fieldtype());
+ reinterpret_cast<UserDefinedFieldType*>(F->fieldtype());
assert(udf != 0);
return udf->char_check(c);
}
-void* UserDefinedFieldType::makearg(va_list* va) {
+void* _nc_xx_fld_makearg(va_list* va)
+{
return va_arg(*va,NCursesFormField*);
}
FIELDTYPE* UserDefinedFieldType::generic_fieldtype =
- ::new_fieldtype(UserDefinedFieldType::fcheck,
- UserDefinedFieldType::ccheck);
+ ::new_fieldtype(_nc_xx_fld_fcheck,
+ _nc_xx_fld_ccheck);
FIELDTYPE* UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice =
- ::new_fieldtype(UserDefinedFieldType::fcheck,
- UserDefinedFieldType::ccheck);
+ ::new_fieldtype(_nc_xx_fld_fcheck,
+ _nc_xx_fld_ccheck);
-bool UserDefinedFieldType_With_Choice::next_choice(FIELD *f, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_next_choice(FIELD *f, const void *u)
+{
+ NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
assert(F != 0);
UserDefinedFieldType_With_Choice* udf =
- (UserDefinedFieldType_With_Choice*)(F->fieldtype());
+ reinterpret_cast<UserDefinedFieldType_With_Choice*>(F->fieldtype());
assert(udf != 0);
return udf->next(*F);
}
-bool UserDefinedFieldType_With_Choice::prev_choice(FIELD *f, const void *u) {
- NCursesFormField* F = (NCursesFormField*)u;
+bool _nc_xx_prev_choice(FIELD *f, const void *u)
+{
+ NCursesFormField* F = reinterpret_cast<NCursesFormField*>(const_cast<void *>(u));
assert(F != 0);
UserDefinedFieldType_With_Choice* udf =
- (UserDefinedFieldType_With_Choice*)(F->fieldtype());
+ reinterpret_cast<UserDefinedFieldType_With_Choice*>(F->fieldtype());
assert(udf != 0);
return udf->previous(*F);
}
-class UDF_Init {
+class UDF_Init
+{
private:
int code;
static UDF_Init* I;
+
public:
- UDF_Init() {
+ UDF_Init()
+ : code(0)
+ {
code = ::set_fieldtype_arg(UserDefinedFieldType::generic_fieldtype,
- UserDefinedFieldType::makearg,
+ _nc_xx_fld_makearg,
NULL,
NULL);
if (code==E_OK)
code = ::set_fieldtype_arg
(UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
- UserDefinedFieldType::makearg,
+ _nc_xx_fld_makearg,
NULL,
NULL);
if (code==E_OK)
code = ::set_fieldtype_choice
(UserDefinedFieldType_With_Choice::generic_fieldtype_with_choice,
- UserDefinedFieldType_With_Choice::next_choice,
- UserDefinedFieldType_With_Choice::prev_choice);
+ _nc_xx_next_choice,
+ _nc_xx_prev_choice);
}
};
UDF_Init* UDF_Init::I = new UDF_Init();
-
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursesf.h,v 1.19 2004/01/15 00:43:46 tom Exp $
+// $Id: cursesf.h,v 1.28 2005/08/13 18:08:24 tom Exp $
#ifndef NCURSES_CURSESF_H_incl
#define NCURSES_CURSESF_H_incl 1
#include <cursesp.h>
+
+#ifndef __EXT_QNX
#include <string.h>
+#endif
extern "C" {
# include <form.h>
// Class to represent builtin field types as well as C++ written new
// fieldtypes (see classes UserDefineFieldType...
-class NCURSES_IMPEXP NCursesFieldType {
+class NCURSES_IMPEXP NCursesFieldType
+{
friend class NCursesFormField;
protected:
virtual void set(NCursesFormField& f) = 0;
public:
- NCursesFieldType() : fieldtype((FIELDTYPE*)0) {
+ NCursesFieldType()
+ : fieldtype(STATIC_CAST(FIELDTYPE*)(0))
+ {
+ }
+
+ NCursesFieldType& operator=(const NCursesFieldType& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ NCursesFieldType(const NCursesFieldType& rhs)
+ : fieldtype(rhs.fieldtype)
+ {
}
+
};
//
// The class representing a forms field, wrapping the lowlevel FIELD struct
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP NCursesFormField {
+class NCURSES_IMPEXP NCursesFormField
+{
friend class NCursesForm;
protected:
- FIELD *field; // lowlevel structure
+ FIELD *field; // lowlevel structure
NCursesFieldType* ftype; // Associated field type
// Error handler
public:
// Create a 'Null' field. Can be used to delimit a field list
NCursesFormField()
- : field((FIELD*)0), ftype((NCursesFieldType*)0) {
+ : field(STATIC_CAST(FIELD*)(0)),
+ ftype(STATIC_CAST(NCursesFieldType*)(0))
+ {
}
// Create a new field
NCursesFormField (int rows,
- int cols,
+ int ncols,
int first_row = 0,
int first_col = 0,
int offscreen_rows = 0,
int additional_buffers = 0)
- : ftype((NCursesFieldType*)0) {
- field = ::new_field(rows,cols,first_row,first_col,
+ : field(0),
+ ftype(STATIC_CAST(NCursesFieldType*)(0))
+ {
+ field = ::new_field(rows, ncols, first_row, first_col,
offscreen_rows, additional_buffers);
if (!field)
OnError(errno);
}
+ NCursesFormField& operator=(const NCursesFormField& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ NCursesFormField(const NCursesFormField& rhs)
+ : field(rhs.field), ftype(rhs.ftype)
+ {
+ }
+
virtual ~NCursesFormField ();
// Duplicate the field at a new position
- inline NCursesFormField* dup(int first_row, int first_col) {
+ inline NCursesFormField* dup(int first_row, int first_col)
+ {
NCursesFormField* f = new NCursesFormField();
if (!f)
OnError(E_SYSTEM_ERROR);
}
// Retrieve info about the field
- inline void info(int& rows, int& cols,
+ inline void info(int& rows, int& ncols,
int& first_row, int& first_col,
int& offscreen_rows, int& additional_buffers) const {
- OnError(::field_info(field, &rows, &cols,
+ OnError(::field_info(field, &rows, &ncols,
&first_row, &first_col,
&offscreen_rows, &additional_buffers));
}
return ::field_just(field);
}
// Set the foreground attribute for the field
- inline void set_foreground(chtype fore) {
- OnError(::set_field_fore(field,fore));
+ inline void set_foreground(chtype foreground) {
+ OnError(::set_field_fore(field,foreground));
}
// Retrieve the fields foreground attribute
}
// Set the background attribute for the field
- inline void set_background(chtype back) {
- OnError(::set_field_back(field,back));
+ inline void set_background(chtype background) {
+ OnError(::set_field_back(field,background));
}
// Retrieve the fields background attribute
}
// Set the padding character for the field
- inline void set_pad_character(int pad) {
- OnError(::set_field_pad(field,pad));
+ inline void set_pad_character(int padding) {
+ OnError(::set_field_pad(field, padding));
}
// Retrieve the fields padding character
}
// Switch on the fields options
- inline void options_on (Field_Options options) {
- OnError (::field_opts_on (field, options));
+ inline void options_on (Field_Options opts) {
+ OnError (::field_opts_on (field, opts));
}
// Switch off the fields options
- inline void options_off (Field_Options options) {
- OnError (::field_opts_off (field, options));
+ inline void options_off (Field_Options opts) {
+ OnError (::field_opts_off (field, opts));
}
// Retrieve the fields options
}
// Set the fields options
- inline void set_options (Field_Options options) {
- OnError (::set_field_opts (field, options));
+ inline void set_options (Field_Options opts) {
+ OnError (::set_field_opts (field, opts));
}
// Mark the field as changed
};
+ // This are the built-in hook functions in this C++ binding. In C++ we use
+ // virtual member functions (see below On_..._Init and On_..._Termination)
+ // to provide this functionality in an object oriented manner.
+extern "C" {
+ void _nc_xx_frm_init(FORM *);
+ void _nc_xx_frm_term(FORM *);
+ void _nc_xx_fld_init(FORM *);
+ void _nc_xx_fld_term(FORM *);
+}
+
//
// -------------------------------------------------------------------------
// The class representing a form, wrapping the lowlevel FORM struct
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP NCursesForm : public NCursesPanel {
+class NCURSES_IMPEXP NCursesForm : public NCursesPanel
+{
protected:
FORM* form; // the lowlevel structure
private:
NCursesWindow* sub; // the subwindow object
bool b_sub_owner; // is this our own subwindow?
- bool b_framed; // has the form a border?
+ bool b_framed; // has the form a border?
bool b_autoDelete; // Delete fields when deleting form?
NCursesFormField** my_fields; // The array of fields for this form
// This structure is used for the form's user data field to link the
// FORM* to the C++ object and to provide extra space for a user pointer.
typedef struct {
- void* m_user; // the pointer for the user's data
+ void* m_user; // the pointer for the user's data
const NCursesForm* m_back; // backward pointer to C++ object
- const FORM* m_owner;
+ const FORM* m_owner;
} UserHook;
// Get the backward pointer to the C++ object from a FORM
static inline NCursesForm* getHook(const FORM *f) {
- UserHook* hook = (UserHook*)::form_userptr(f);
+ UserHook* hook = reinterpret_cast<UserHook*>(::form_userptr(f));
assert(hook != 0 && hook->m_owner==f);
- return (NCursesForm*)(hook->m_back);
+ return const_cast<NCursesForm*>(hook->m_back);
}
- // This are the built-in hook functions in this C++ binding. In C++ we use
- // virtual member functions (see below On_..._Init and On_..._Termination)
- // to provide this functionality in an object oriented manner.
- static void frm_init(FORM *);
- static void frm_term(FORM *);
- static void fld_init(FORM *);
- static void fld_term(FORM *);
+ friend void _nc_xx_frm_init(FORM *);
+ friend void _nc_xx_frm_term(FORM *);
+ friend void _nc_xx_fld_init(FORM *);
+ friend void _nc_xx_fld_term(FORM *);
// Calculate FIELD* array for the menu
FIELD** mapFields(NCursesFormField* nfields[]);
protected:
// internal routines
inline void set_user(void *user) {
- UserHook* uptr = (UserHook*)::form_userptr (form);
+ UserHook* uptr = reinterpret_cast<UserHook*>(::form_userptr (form));
assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
uptr->m_user = user;
}
inline void *get_user() {
- UserHook* uptr = (UserHook*)::form_userptr (form);
+ UserHook* uptr = reinterpret_cast<UserHook*>(::form_userptr (form));
assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==form);
return uptr->m_user;
}
// 'Internal' constructor, builds an object without association to a
// field array.
- NCursesForm( int lines,
- int cols,
+ NCursesForm( int nlines,
+ int ncols,
int begin_y = 0,
int begin_x = 0)
- : NCursesPanel(lines,cols,begin_y,begin_x),
- form ((FORM*)0) {
+ : NCursesPanel(nlines, ncols, begin_y, begin_x),
+ form (STATIC_CAST(FORM*)(0)),
+ sub(0),
+ b_sub_owner(0),
+ b_framed(0),
+ b_autoDelete(0),
+ my_fields(0)
+ {
}
public:
// Create form for the default panel.
NCursesForm (NCursesFormField* Fields[],
- bool with_frame=FALSE, // reserve space for a frame?
+ bool with_frame=FALSE, // reserve space for a frame?
bool autoDelete_Fields=FALSE) // do automatic cleanup?
- : NCursesPanel() {
+ : NCursesPanel(),
+ form(0),
+ sub(0),
+ b_sub_owner(0),
+ b_framed(0),
+ b_autoDelete(0),
+ my_fields(0)
+ {
InitForm(Fields, with_frame, autoDelete_Fields);
}
// Create a form in a panel with the given position and size.
NCursesForm (NCursesFormField* Fields[],
- int lines,
- int cols,
+ int nlines,
+ int ncols,
int begin_y,
int begin_x,
- bool with_frame=FALSE, // reserve space for a frame?
+ bool with_frame=FALSE, // reserve space for a frame?
bool autoDelete_Fields=FALSE) // do automatic cleanup?
- : NCursesPanel(lines, cols, begin_y, begin_x) {
+ : NCursesPanel(nlines, ncols, begin_y, begin_x),
+ form(0),
+ sub(0),
+ b_sub_owner(0),
+ b_framed(0),
+ b_autoDelete(0),
+ my_fields(0)
+ {
InitForm(Fields, with_frame, autoDelete_Fields);
}
+ NCursesForm& operator=(const NCursesForm& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ NCursesPanel::operator=(rhs);
+ }
+ return *this;
+ }
+
+ NCursesForm(const NCursesForm& rhs)
+ : NCursesPanel(rhs),
+ form(rhs.form),
+ sub(rhs.sub),
+ b_sub_owner(rhs.b_sub_owner),
+ b_framed(rhs.b_framed),
+ b_autoDelete(rhs.b_autoDelete),
+ my_fields(rhs.my_fields)
+ {
+ }
+
virtual ~NCursesForm();
// Set the default attributes for the form
virtual void On_Field_Termination(NCursesFormField& field);
// Calculate required window size for the form.
- void scale(int& rows, int& cols) const {
- OnError(::scale_form(form,&rows,&cols));
+ void scale(int& rows, int& ncols) const {
+ OnError(::scale_form(form,&rows,&ncols));
}
// Retrieve number of fields in the form.
}
// Make the page the current page of the form.
- void set_page(int page) {
- OnError(::set_form_page(form,page));
+ void set_page(int pageNum) {
+ OnError(::set_form_page(form, pageNum));
}
// Retrieve current page number
}
// Switch on the forms options
- inline void options_on (Form_Options options) {
- OnError (::form_opts_on (form, options));
+ inline void options_on (Form_Options opts) {
+ OnError (::form_opts_on (form, opts));
}
// Switch off the forms options
- inline void options_off (Form_Options options) {
- OnError (::form_opts_off (form, options));
+ inline void options_off (Form_Options opts) {
+ OnError (::form_opts_off (form, opts));
}
// Retrieve the forms options
}
// Set the forms options
- inline void set_options (Form_Options options) {
- OnError (::set_form_opts (form, options));
+ inline void set_options (Form_Options opts) {
+ OnError (::set_form_opts (form, opts));
}
// Are there more data in the current field after the data shown
{
public:
NCursesUserField (int rows,
- int cols,
+ int ncols,
int first_row = 0,
int first_col = 0,
- const T* p_UserData = (T*)0,
+ const T* p_UserData = STATIC_CAST(T*)(0),
int offscreen_rows = 0,
int additional_buffers = 0)
- : NCursesFormField (rows, cols,
+ : NCursesFormField (rows, ncols,
first_row, first_col,
offscreen_rows, additional_buffers) {
if (field)
- OnError(::set_field_userptr(field,(void *)p_UserData));
+ OnError(::set_field_userptr(field, STATIC_CAST(void *)(p_UserData)));
}
virtual ~NCursesUserField() {};
inline const T* UserData (void) const {
- return (const T*)::field_userptr (field);
+ return reinterpret_cast<const T*>(::field_userptr (field));
}
inline virtual void setUserData(const T* p_UserData) {
if (field)
- OnError (::set_field_userptr (field, (void *)p_UserData));
+ OnError (::set_field_userptr (field, STATIC_CAST(void *)(p_UserData)));
}
};
//
protected:
// 'Internal' constructor, builds an object without association to a
// field array.
- NCursesUserForm( int lines,
- int cols,
+ NCursesUserForm( int nlines,
+ int ncols,
int begin_y = 0,
int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesForm(lines,cols,begin_y,begin_x) {
+ const T* p_UserData = STATIC_CAST(T*)(0))
+ : NCursesForm(nlines,ncols,begin_y,begin_x) {
if (form)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
}
public:
NCursesUserForm (NCursesFormField Fields[],
- const T* p_UserData = (T*)0,
+ const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Fields=FALSE)
: NCursesForm (Fields, with_frame, autoDelete_Fields) {
if (form)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
};
NCursesUserForm (NCursesFormField Fields[],
- int lines,
- int cols,
+ int nlines,
+ int ncols,
int begin_y = 0,
int begin_x = 0,
- const T* p_UserData = (T*)0,
+ const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Fields=FALSE)
- : NCursesForm (Fields, lines, cols, begin_y, begin_x,
+ : NCursesForm (Fields, nlines, ncols, begin_y, begin_x,
with_frame, autoDelete_Fields) {
if (form)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
};
virtual ~NCursesUserForm() {
};
inline T* UserData (void) const {
- return (T*)get_user ();
+ return reinterpret_cast<T*>(get_user ());
};
inline virtual void setUserData (const T* p_UserData) {
if (form)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
}
};
// Builtin Fieldtypes
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP Alpha_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Alpha_Field : public NCursesFieldType
+{
private:
int min_field_width;
}
};
-class NCURSES_IMPEXP Alphanumeric_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Alphanumeric_Field : public NCursesFieldType
+{
private:
int min_field_width;
}
};
-class NCURSES_IMPEXP Integer_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Integer_Field : public NCursesFieldType
+{
private:
int precision;
long lower_limit, upper_limit;
}
};
-class NCURSES_IMPEXP Numeric_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Numeric_Field : public NCursesFieldType
+{
private:
int precision;
double lower_limit, upper_limit;
}
};
-class NCURSES_IMPEXP Regular_Expression_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Regular_Expression_Field : public NCursesFieldType
+{
private:
char* regex;
OnError(::set_field_type(f.get_field(),fieldtype,regex));
}
+ void copy_regex(const char *source)
+ {
+ regex = new char[1 + ::strlen(source)];
+ (::strcpy)(regex, source);
+ }
+
public:
Regular_Expression_Field(const char *expr)
- : NCursesFieldType(TYPE_REGEXP) {
- regex = new char[1 + ::strlen(expr)];
- (::strcpy)(regex,expr);
+ : NCursesFieldType(TYPE_REGEXP),
+ regex(NULL)
+ {
+ copy_regex(expr);
+ }
+
+ Regular_Expression_Field& operator=(const Regular_Expression_Field& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ copy_regex(rhs.regex);
+ NCursesFieldType::operator=(rhs);
+ }
+ return *this;
+ }
+
+ Regular_Expression_Field(const Regular_Expression_Field& rhs)
+ : NCursesFieldType(rhs),
+ regex(NULL)
+ {
+ copy_regex(rhs.regex);
}
~Regular_Expression_Field() {
}
};
-class NCURSES_IMPEXP Enumeration_Field : public NCursesFieldType {
+class NCURSES_IMPEXP Enumeration_Field : public NCursesFieldType
+{
private:
const char** list;
int case_sensitive;
bool non_unique=FALSE)
: NCursesFieldType(TYPE_ENUM),
list(enums),
- case_sensitive(case_sens?-1:0),
- non_unique_matches(non_unique?-1:0) {
+ case_sensitive(case_sens ? -1 : 0),
+ non_unique_matches(non_unique ? -1 : 0) {
+ }
+
+ Enumeration_Field& operator=(const Enumeration_Field& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ NCursesFieldType::operator=(rhs);
+ }
+ return *this;
+ }
+
+ Enumeration_Field(const Enumeration_Field& rhs)
+ : NCursesFieldType(rhs),
+ list(rhs.list),
+ case_sensitive(rhs.case_sensitive),
+ non_unique_matches(rhs.non_unique_matches)
+ {
}
};
-class NCURSES_IMPEXP IPV4_Address_Field : public NCursesFieldType {
+class NCURSES_IMPEXP IPV4_Address_Field : public NCursesFieldType
+{
private:
void set(NCursesFormField& f) {
OnError(::set_field_type(f.get_field(),fieldtype));
IPV4_Address_Field() : NCursesFieldType(TYPE_IPV4) {
}
};
+
+extern "C" {
+ bool _nc_xx_fld_fcheck(FIELD *, const void*);
+ bool _nc_xx_fld_ccheck(int c, const void *);
+ void* _nc_xx_fld_makearg(va_list*);
+}
+
//
// -------------------------------------------------------------------------
// Abstract base class for User-Defined Fieldtypes
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP UserDefinedFieldType : public NCursesFieldType {
+class NCURSES_IMPEXP UserDefinedFieldType : public NCursesFieldType
+{
friend class UDF_Init; // Internal helper to set up statics
private:
// For all C++ defined fieldtypes we need only one generic lowlevel
protected:
// This are the functions required by the low level libforms functions
// to construct a fieldtype.
- static bool fcheck(FIELD *, const void*);
- static bool ccheck(int c, const void *);
- static void* makearg(va_list*);
+ friend bool _nc_xx_fld_fcheck(FIELD *, const void*);
+ friend bool _nc_xx_fld_ccheck(int c, const void *);
+ friend void* _nc_xx_fld_makearg(va_list*);
void set(NCursesFormField& f) {
OnError(::set_field_type(f.get_field(),fieldtype,&f));
UserDefinedFieldType() : NCursesFieldType(generic_fieldtype) {
}
};
+
+extern "C" {
+ bool _nc_xx_next_choice(FIELD*, const void *);
+ bool _nc_xx_prev_choice(FIELD*, const void *);
+}
+
//
// -------------------------------------------------------------------------
// Abstract base class for User-Defined Fieldtypes with Choice functions
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP UserDefinedFieldType_With_Choice : public UserDefinedFieldType {
+class NCURSES_IMPEXP UserDefinedFieldType_With_Choice : public UserDefinedFieldType
+{
friend class UDF_Init; // Internal helper to set up statics
private:
// For all C++ defined fieldtypes with choice functions we need only one
// This are the functions required by the low level libforms functions
// to construct a fieldtype with choice functions.
- static bool next_choice(FIELD*, const void *);
- static bool prev_choice(FIELD*, const void *);
+ friend bool _nc_xx_next_choice(FIELD*, const void *);
+ friend bool _nc_xx_prev_choice(FIELD*, const void *);
protected:
// Redefine this function to do the retrieval of the next choice value.
}
};
-#endif // NCURSES_CURSESF_H_incl
-
+#endif /* NCURSES_CURSESF_H_incl */
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "cursesm.h"
#include "cursesapp.h"
-MODULE_ID("$Id: cursesm.cc,v 1.18 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesm.cc,v 1.22 2005/04/02 20:39:05 tom Exp $")
-NCursesMenuItem::~NCursesMenuItem() {
+NCursesMenuItem::~NCursesMenuItem()
+{
if (item)
OnError(::free_item(item));
}
bool
-NCursesMenuItem::action() {
+NCursesMenuItem::action()
+{
return FALSE;
-};
+}
-NCursesMenuCallbackItem::~NCursesMenuCallbackItem() {
+NCursesMenuCallbackItem::~NCursesMenuCallbackItem()
+{
}
bool
-NCursesMenuCallbackItem::action() {
+NCursesMenuCallbackItem::action()
+{
if (p_fct)
return p_fct (*this);
else
* implementing a virtual method in a derived class
*/
void
-NCursesMenu::mnu_init(MENU *m) {
- getHook(m)->On_Menu_Init();
+_nc_xx_mnu_init(MENU *m)
+{
+ NCursesMenu::getHook(m)->On_Menu_Init();
}
void
-NCursesMenu::mnu_term(MENU *m) {
- getHook(m)->On_Menu_Termination();
+_nc_xx_mnu_term(MENU *m)
+{
+ NCursesMenu::getHook(m)->On_Menu_Termination();
}
void
-NCursesMenu::itm_init(MENU *m) {
- NCursesMenu* M = getHook(m);
+_nc_xx_itm_init(MENU *m)
+{
+ NCursesMenu* M = NCursesMenu::getHook(m);
M->On_Item_Init (*(M->current_item ()));
}
void
-NCursesMenu::itm_term(MENU *m) {
- NCursesMenu* M = getHook(m);
+_nc_xx_itm_term(MENU *m)
+{
+ NCursesMenu* M = NCursesMenu::getHook(m);
M->On_Item_Termination (*(M->current_item ()));
}
* objects.
*/
ITEM**
-NCursesMenu::mapItems(NCursesMenuItem* nitems[]) {
+NCursesMenu::mapItems(NCursesMenuItem* nitems[])
+{
int itemCount = 0,lcv;
for (lcv=0; nitems[lcv]->item; ++lcv)
++itemCount;
- ITEM** items = new ITEM*[itemCount + 1];
+ ITEM** itemArray = new ITEM*[itemCount + 1];
for (lcv=0;nitems[lcv]->item;++lcv) {
- items[lcv] = nitems[lcv]->item;
+ itemArray[lcv] = nitems[lcv]->item;
}
- items[lcv] = NULL;
+ itemArray[lcv] = NULL;
my_items = nitems;
if (menu)
delete[] ::menu_items(menu);
- return items;
+ return itemArray;
}
void
NCursesMenu::InitMenu(NCursesMenuItem* nitems[],
bool with_frame,
- bool autoDelete_Items) {
+ bool autoDelete_Items)
+{
int mrows, mcols;
keypad(TRUE);
b_framed = with_frame;
b_autoDelete = autoDelete_Items;
- menu = (MENU*)0;
+ menu = static_cast<MENU*>(0);
menu = ::new_menu(mapItems(nitems));
if (!menu)
OnError (E_SYSTEM_ERROR);
hook->m_user = NULL;
hook->m_back = this;
hook->m_owner = menu;
- ::set_menu_userptr(menu,(void*)hook);
+ ::set_menu_userptr(menu, static_cast<void*>(hook));
- ::set_menu_init (menu, NCursesMenu::mnu_init);
- ::set_menu_term (menu, NCursesMenu::mnu_term);
- ::set_item_init (menu, NCursesMenu::itm_init);
- ::set_item_term (menu, NCursesMenu::itm_term);
+ ::set_menu_init (menu, _nc_xx_mnu_init);
+ ::set_menu_term (menu, _nc_xx_mnu_term);
+ ::set_item_init (menu, _nc_xx_itm_init);
+ ::set_item_term (menu, _nc_xx_itm_term);
scale(mrows, mcols);
::set_menu_win(menu, w);
b_sub_owner = TRUE;
}
else {
- sub = (NCursesWindow*)0;
+ sub = static_cast<NCursesWindow*>(0);
b_sub_owner = FALSE;
}
setDefaultAttributes();
}
void
-NCursesMenu::setDefaultAttributes() {
+NCursesMenu::setDefaultAttributes()
+{
NCursesApplication* S = NCursesApplication::getApplication();
if (S) {
::set_menu_fore(menu, S->foregrounds());
}
}
-NCursesMenu::~NCursesMenu() {
- UserHook* hook = (UserHook*)::menu_userptr(menu);
+NCursesMenu::~NCursesMenu()
+{
+ UserHook* hook = reinterpret_cast<UserHook*>(::menu_userptr(menu));
delete hook;
if (b_sub_owner) {
delete sub;
- ::set_menu_sub(menu,(WINDOW *)0);
+ ::set_menu_sub(menu, static_cast<WINDOW *>(0));
}
if (menu) {
ITEM** itms = ::menu_items(menu);
int cnt = count();
- OnError(::set_menu_items(menu,(ITEM**)0));
+ OnError(::set_menu_items(menu, static_cast<ITEM**>(0)));
if (b_autoDelete) {
if (cnt>0) {
}
void
-NCursesMenu::setSubWindow(NCursesWindow& nsub) {
+NCursesMenu::setSubWindow(NCursesWindow& nsub)
+{
if (!isDescendant(nsub))
OnError(E_SYSTEM_ERROR);
else {
}
bool
-NCursesMenu::set_pattern (const char *pat) {
+NCursesMenu::set_pattern (const char *pat)
+{
int res = ::set_menu_pattern (menu, pat);
switch(res) {
case E_OK:
// call the menu driver and do basic error checking.
int
-NCursesMenu::driver (int c) {
+NCursesMenu::driver (int c)
+{
int res = ::menu_driver (menu, c);
switch (res) {
case E_OK:
// mapping for the most common keystrokes and menu requests.
// -------------------------------------------------------------------------
int
-NCursesMenu::virtualize(int c) {
+NCursesMenu::virtualize(int c)
+{
switch(c) {
case CTRL('X') : return(CMD_QUIT); // eXit
}
NCursesMenuItem*
-NCursesMenu::operator()(void) {
+NCursesMenu::operator()(void)
+{
int drvCmnd;
int err;
int c;
post();
show();
refresh();
-
+
while (!b_action && ((drvCmnd = virtualize((c=getKey()))) != CMD_QUIT)) {
-
+
switch((err=driver(drvCmnd))) {
case E_REQUEST_DENIED:
On_Request_Denied(c);
}
void
-NCursesMenu::On_Menu_Init() {
+NCursesMenu::On_Menu_Init()
+{
}
void
-NCursesMenu::On_Menu_Termination() {
+NCursesMenu::On_Menu_Termination()
+{
}
void
-NCursesMenu::On_Item_Init(NCursesMenuItem& item) {
+NCursesMenu::On_Item_Init(NCursesMenuItem& item)
+{
}
void
-NCursesMenu::On_Item_Termination(NCursesMenuItem& item) {
+NCursesMenu::On_Item_Termination(NCursesMenuItem& item)
+{
}
void
-NCursesMenu::On_Request_Denied(int c) const {
+NCursesMenu::On_Request_Denied(int c) const
+{
::beep();
}
void
-NCursesMenu::On_Not_Selectable(int c) const {
+NCursesMenu::On_Not_Selectable(int c) const
+{
::beep();
}
void
-NCursesMenu::On_No_Match(int c) const {
+NCursesMenu::On_No_Match(int c) const
+{
::beep();
}
void
-NCursesMenu::On_Unknown_Command(int c) const {
+NCursesMenu::On_Unknown_Command(int c) const
+{
::beep();
}
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursesm.h,v 1.17 2003/10/25 15:04:46 tom Exp $
+// $Id: cursesm.h,v 1.25 2005/08/13 18:10:36 tom Exp $
#ifndef NCURSES_CURSESM_H_incl
#define NCURSES_CURSESM_H_incl 1
// This wraps the ITEM type of <menu.h>
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP NCursesMenuItem {
+class NCURSES_IMPEXP NCursesMenuItem
+{
friend class NCursesMenu;
-
+
protected:
ITEM *item;
public:
NCursesMenuItem (const char* p_name = NULL,
- const char* p_descript = NULL ) {
- item = p_name ? ::new_item (p_name, p_descript) : (ITEM*)0;
+ const char* p_descript = NULL)
+ : item(0)
+ {
+ item = p_name ? ::new_item (p_name, p_descript) : STATIC_CAST(ITEM*)(0);
if (p_name && !item)
OnError (E_SYSTEM_ERROR);
}
// Create an item. If you pass both parameters as NULL, a delimiting
// item is constructed which can be used to terminate a list of
// NCursesMenu objects.
-
+
+ NCursesMenuItem& operator=(const NCursesMenuItem& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ NCursesMenuItem(const NCursesMenuItem& rhs)
+ : item(0)
+ {
+ }
+
virtual ~NCursesMenuItem ();
// Release the items memory
return ::item_description (item);
}
// Description of the item
-
+
inline int (index) (void) const {
return ::item_index (item);
}
// Index of the item in an item array (or -1)
- inline void options_on (Item_Options options) {
- OnError (::item_opts_on (item, options));
+ inline void options_on (Item_Options opts) {
+ OnError (::item_opts_on (item, opts));
}
// Switch on the items options
- inline void options_off (Item_Options options) {
- OnError (::item_opts_off (item, options));
+ inline void options_off (Item_Options opts) {
+ OnError (::item_opts_off (item, opts));
}
// Switch off the item's option
}
// Retrieve the items options
- inline void set_options (Item_Options options) {
- OnError (::set_item_opts (item, options));
+ inline void set_options (Item_Options opts) {
+ OnError (::set_item_opts (item, opts));
}
// Set the items options
return ::item_value (item);
}
// Retrieve the items selection state
-
+
inline bool visible () const {
return ::item_visible (item);
}
// If you don't like to create a child class for individual items to
// overload action(), you may use this class and provide a callback
// function pointer for items.
-class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem {
+class NCURSES_IMPEXP NCursesMenuCallbackItem : public NCursesMenuItem
+{
private:
ITEMCALLBACK* p_fct;
: NCursesMenuItem (p_name, p_descript),
p_fct (fct) {
}
-
+
+ NCursesMenuCallbackItem& operator=(const NCursesMenuCallbackItem& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ NCursesMenuCallbackItem(const NCursesMenuCallbackItem& rhs)
+ : NCursesMenuItem(rhs),
+ p_fct(0)
+ {
+ }
+
virtual ~NCursesMenuCallbackItem();
bool action();
};
+
+ // This are the built-in hook functions in this C++ binding. In C++ we use
+ // virtual member functions (see below On_..._Init and On_..._Termination)
+ // to provide this functionality in an object oriented manner.
+extern "C" {
+ void _nc_xx_mnu_init(MENU *);
+ void _nc_xx_mnu_term(MENU *);
+ void _nc_xx_itm_init(MENU *);
+ void _nc_xx_itm_term(MENU *);
+}
+
//
// -------------------------------------------------------------------------
// This wraps the MENU type of <menu.h>
// -------------------------------------------------------------------------
//
-class NCURSES_IMPEXP NCursesMenu : public NCursesPanel {
+class NCURSES_IMPEXP NCursesMenu : public NCursesPanel
+{
protected:
MENU *menu;
// Get the backward pointer to the C++ object from a MENU
static inline NCursesMenu* getHook(const MENU *m) {
- UserHook* hook = (UserHook*)::menu_userptr(m);
+ UserHook* hook = STATIC_CAST(UserHook*)(::menu_userptr(m));
assert(hook != 0 && hook->m_owner==m);
- return (NCursesMenu*)(hook->m_back);
+ return const_cast<NCursesMenu*>(hook->m_back);
}
- // This are the built-in hook functions in this C++ binding. In C++ we use
- // virtual member functions (see below On_..._Init and On_..._Termination)
- // to provide this functionality in an object oriented manner.
- static void mnu_init(MENU *);
- static void mnu_term(MENU *);
- static void itm_init(MENU *);
- static void itm_term(MENU *);
-
+ friend void _nc_xx_mnu_init(MENU *);
+ friend void _nc_xx_mnu_term(MENU *);
+ friend void _nc_xx_itm_init(MENU *);
+ friend void _nc_xx_itm_term(MENU *);
+
// Calculate ITEM* array for the menu
ITEM** mapItems(NCursesMenuItem* nitems[]);
-
+
protected:
- // internal routines
+ // internal routines
inline void set_user(void *user) {
- UserHook* uptr = (UserHook*)::menu_userptr (menu);
+ UserHook* uptr = STATIC_CAST(UserHook*)(::menu_userptr (menu));
assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
uptr->m_user = user;
}
inline void *get_user() {
- UserHook* uptr = (UserHook*)::menu_userptr (menu);
+ UserHook* uptr = STATIC_CAST(UserHook*)(::menu_userptr (menu));
assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==menu);
return uptr->m_user;
- }
-
+ }
+
void InitMenu (NCursesMenuItem* menu[],
bool with_frame,
bool autoDeleteItems);
if (err != E_OK)
THROW(new NCursesMenuException (this, err));
}
-
+
// this wraps the menu_driver call.
virtual int driver (int c) ;
-
+
// 'Internal' constructor to create a menu without association to
// an array of items.
- NCursesMenu( int lines,
- int cols,
- int begin_y = 0,
- int begin_x = 0)
- : NCursesPanel(lines,cols,begin_y,begin_x),
- menu ((MENU*)0) {
+ NCursesMenu( int nlines,
+ int ncols,
+ int begin_y = 0,
+ int begin_x = 0)
+ : NCursesPanel(nlines,ncols,begin_y,begin_x),
+ menu (STATIC_CAST(MENU*)(0)),
+ sub(0),
+ b_sub_owner(0),
+ b_framed(0),
+ b_autoDelete(0),
+ my_items(0)
+ {
}
public:
NCursesMenu (NCursesMenuItem* Items[],
bool with_frame=FALSE, // Reserve space for a frame?
bool autoDelete_Items=FALSE) // Autocleanup of Items?
- : NCursesPanel() {
+ : NCursesPanel(),
+ menu(0),
+ sub(0),
+ b_sub_owner(0),
+ b_framed(0),
+ b_autoDelete(0),
+ my_items(0)
+ {
InitMenu(Items, with_frame, autoDelete_Items);
}
// Make a menu with a window of this size.
- NCursesMenu (NCursesMenuItem* Items[],
- int lines,
- int cols,
- int begin_y = 0,
+ NCursesMenu (NCursesMenuItem* Items[],
+ int nlines,
+ int ncols,
+ int begin_y = 0,
int begin_x = 0,
bool with_frame=FALSE, // Reserve space for a frame?
bool autoDelete_Items=FALSE) // Autocleanup of Items?
- : NCursesPanel(lines, cols, begin_y, begin_x) {
+ : NCursesPanel(nlines, ncols, begin_y, begin_x),
+ menu(0),
+ sub(0),
+ b_sub_owner(0),
+ b_framed(0),
+ b_autoDelete(0),
+ my_items(0)
+ {
InitMenu(Items, with_frame, autoDelete_Items);
}
+ NCursesMenu& operator=(const NCursesMenu& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ NCursesPanel::operator=(rhs);
+ }
+ return *this;
+ }
+
+ NCursesMenu(const NCursesMenu& rhs)
+ : NCursesPanel(rhs),
+ menu(rhs.menu),
+ sub(rhs.sub),
+ b_sub_owner(rhs.b_sub_owner),
+ b_framed(rhs.b_framed),
+ b_autoDelete(rhs.b_autoDelete),
+ my_items(rhs.my_items)
+ {
+ }
+
virtual ~NCursesMenu ();
// Retrieve the menus subwindow
// Set these items for the menu
inline void setItems(NCursesMenuItem* Items[]) {
- OnError(::set_menu_items(menu,mapItems(Items)));
+ OnError(::set_menu_items(menu,mapItems(Items)));
}
// Remove the menu from the screen
- inline void unpost (void) {
- OnError (::unpost_menu (menu));
+ inline void unpost (void) {
+ OnError (::unpost_menu (menu));
}
-
+
// Post the menu to the screen if flag is true, unpost it otherwise
inline void post(bool flag = TRUE) {
- flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu));
+ flag ? OnError (::post_menu(menu)) : OnError (::unpost_menu (menu));
}
// Get the numer of rows and columns for this menu
inline void set_format(int mrows, int mcols) {
OnError (::set_menu_format(menu, mrows, mcols));
}
-
+
// Get the format of this menu
- inline void menu_format(int& rows,int& cols) {
- ::menu_format(menu,&rows,&cols);
+ inline void menu_format(int& rows,int& ncols) {
+ ::menu_format(menu,&rows,&ncols);
}
-
+
// Items of the menu
inline NCursesMenuItem* items() const {
- return *my_items;
+ return *my_items;
}
// Get the number of items in this menu
inline int count() const {
- return ::item_count(menu);
+ return ::item_count(menu);
}
// Get the current item (i.e. the one the cursor is located)
inline NCursesMenuItem* current_item() const {
return my_items[::item_index(::current_item(menu))];
}
-
+
// Get the marker string
inline const char* mark() const {
return ::menu_mark(menu);
}
// Set the marker string
- inline void set_mark(const char *mark) {
- OnError (::set_menu_mark (menu, mark));
+ inline void set_mark(const char *marker) {
+ OnError (::set_menu_mark (menu, marker));
}
// Get the name of the request code c
inline chtype set_grey(chtype a) {
return ::set_menu_grey(menu,a);
}
-
+
inline void options_on (Menu_Options opts) {
OnError (::menu_opts_on (menu,opts));
}
inline Menu_Options options() const {
return ::menu_opts(menu);
}
-
+
inline void set_options (Menu_Options opts) {
OnError (::set_menu_opts (menu,opts));
}
inline void set_pad (int padch) {
OnError (::set_menu_pad (menu, padch));
}
-
+
// Position the cursor to the current item
inline void position_cursor () const {
OnError (::pos_menu_cursor (menu));
spc_rows,
spc_columns));
}
-
+
// Get the spacing info for the menu
inline void Spacing(int& spc_description,
int& spc_rows,
else
OnError(E_SYSTEM_ERROR);
}
-
+
inline void label(const char *topLabel, const char *bottomLabel) {
if (b_framed)
NCursesPanel::label(topLabel,bottomLabel);
// Called before this item is left as current item.
virtual void On_Item_Termination(NCursesMenuItem& item);
-
+
// Provide a default key virtualization. Translate the keyboard
// code c into a menu request code.
// The default implementation provides a hopefully straightforward
// Called if the request is denied
virtual void On_Request_Denied(int c) const;
-
+
// Called if the item is not selectable
virtual void On_Not_Selectable(int c) const;
public:
NCursesUserItem (const char* p_name,
const char* p_descript = NULL,
- const T* p_UserData = (T*)0)
+ const T* p_UserData = STATIC_CAST(T*)(0))
: NCursesMenuItem (p_name, p_descript) {
if (item)
- OnError (::set_item_userptr (item, (void *)p_UserData));
- };
+ OnError (::set_item_userptr (item, const_cast<void *>(reinterpret_cast<const void*>(p_UserData))));
+ }
- virtual ~NCursesUserItem() {};
+ virtual ~NCursesUserItem() {}
inline const T* UserData (void) const {
- return (const T*)::item_userptr (item);
+ return reinterpret_cast<const T*>(::item_userptr (item));
};
inline virtual void setUserData(const T* p_UserData) {
if (item)
- OnError (::set_item_userptr (item, (void *)p_UserData));
+ OnError (::set_item_userptr (item, const_cast<void *>(reinterpret_cast<const void *>(p_UserData))));
}
};
//
template<class T> class NCURSES_IMPEXP NCursesUserMenu : public NCursesMenu
{
protected:
- NCursesUserMenu( int lines,
- int cols,
- int begin_y = 0,
+ NCursesUserMenu( int nlines,
+ int ncols,
+ int begin_y = 0,
int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesMenu(lines,cols,begin_y,begin_x) {
+ const T* p_UserData = STATIC_CAST(T*)(0))
+ : NCursesMenu(nlines,ncols,begin_y,begin_x) {
if (menu)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
}
public:
NCursesUserMenu (NCursesMenuItem Items[],
- const T* p_UserData = (T*)0,
+ const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE,
bool autoDelete_Items=FALSE)
: NCursesMenu (Items, with_frame, autoDelete_Items) {
if (menu)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
};
-
+
NCursesUserMenu (NCursesMenuItem Items[],
- int lines,
- int cols,
- int begin_y = 0,
+ int nlines,
+ int ncols,
+ int begin_y = 0,
int begin_x = 0,
- const T* p_UserData = (T*)0,
+ const T* p_UserData = STATIC_CAST(T*)(0),
bool with_frame=FALSE)
- : NCursesMenu (Items, lines, cols, begin_y, begin_x, with_frame) {
+ : NCursesMenu (Items, nlines, ncols, begin_y, begin_x, with_frame) {
if (menu)
- set_user ((void *)p_UserData);
- };
-
+ set_user (const_cast<void *>(p_UserData));
+ };
+
virtual ~NCursesUserMenu() {
};
-
+
inline T* UserData (void) const {
- return (T*)get_user ();
+ return reinterpret_cast<T*>(get_user ());
};
inline virtual void setUserData (const T* p_UserData) {
if (menu)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
}
};
-#endif // NCURSES_CURSESM_H_incl
+#endif /* NCURSES_CURSESM_H_incl */
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "internal.h"
#include "cursesp.h"
-#include <string.h>
-MODULE_ID("$Id: cursesp.cc,v 1.21 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursesp.cc,v 1.25 2005/08/06 22:12:36 tom Exp $")
-NCursesPanel* NCursesPanel::dummy = (NCursesPanel*)0;
+NCursesPanel* NCursesPanel::dummy = static_cast<NCursesPanel*>(0);
-void NCursesPanel::init() {
+void NCursesPanel::init()
+{
p = ::new_panel(w);
if (!p)
OnError(ERR);
hook->m_user = NULL;
hook->m_back = this;
hook->m_owner = p;
- ::set_panel_userptr(p, (void *)hook);
+ ::set_panel_userptr(p, reinterpret_cast<void *>(hook));
}
-NCursesPanel::~NCursesPanel() {
- UserHook* hook = (UserHook*)::panel_userptr(p);
+NCursesPanel::~NCursesPanel()
+{
+ UserHook* hook = UserPointer();
assert(hook != 0 && hook->m_back==this && hook->m_owner==p);
delete hook;
::del_panel(p);
}
void
-NCursesPanel::redraw() {
+NCursesPanel::redraw()
+{
PANEL *pan;
pan = ::panel_above(NULL);
}
int
-NCursesPanel::refresh() {
+NCursesPanel::refresh()
+{
::update_panels();
return ::doupdate();
}
int
-NCursesPanel::noutrefresh() {
+NCursesPanel::noutrefresh()
+{
::update_panels();
return OK;
}
void
-NCursesPanel::boldframe(const char *title, const char* btitle) {
+NCursesPanel::boldframe(const char *title, const char* btitle)
+{
standout();
frame(title, btitle);
standend();
}
void
-NCursesPanel::frame(const char *title,const char *btitle) {
+NCursesPanel::frame(const char *title,const char *btitle)
+{
int err = OK;
if (!title && !btitle) {
err = box();
}
void
-NCursesPanel::label(const char *tLabel, const char *bLabel) {
+NCursesPanel::label(const char *tLabel, const char *bLabel)
+{
if (tLabel)
centertext(0,tLabel);
if (bLabel)
}
void
-NCursesPanel::centertext(int row,const char *label) {
- if (label) {
- int x = (maxx() - ::strlen(label)) / 2;
+NCursesPanel::centertext(int row,const char *labelText)
+{
+ if (labelText) {
+ int x = (maxx() - ::strlen(labelText)) / 2;
if (x<0)
x=0;
- OnError(addstr(row, x, label, width()));
+ OnError(addstr(row, x, labelText, width()));
}
}
int
-NCursesPanel::getKey(void) {
+NCursesPanel::getKey(void)
+{
return getch();
}
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
#ifndef NCURSES_CURSESP_H_incl
#define NCURSES_CURSESP_H_incl 1
-// $Id: cursesp.h,v 1.18 2003/10/25 15:04:46 tom Exp $
+// $Id: cursesp.h,v 1.26 2005/08/13 18:09:21 tom Exp $
#include <cursesw.h>
# include <panel.h>
}
-class NCURSES_IMPEXP NCursesPanel : public NCursesWindow {
+class NCURSES_IMPEXP NCursesPanel
+ : public NCursesWindow
+{
protected:
PANEL *p;
static NCursesPanel *dummy;
const PANEL* m_owner; // the panel itself
} UserHook;
+ inline UserHook *UserPointer()
+ {
+ UserHook* uptr = reinterpret_cast<UserHook*>(
+ const_cast<void *>(::panel_userptr (p)));
+ return uptr;
+ }
+
void init(); // Initialize the panel object
protected:
- void set_user(void *user) {
- UserHook* uptr = (UserHook*)::panel_userptr (p);
+ void set_user(void *user)
+ {
+ UserHook* uptr = UserPointer();
assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
uptr->m_user = user;
}
// Set the user pointer of the panel.
-
- void *get_user() {
- UserHook* uptr = (UserHook*)::panel_userptr (p);
+
+ void *get_user()
+ {
+ UserHook* uptr = UserPointer();
assert (uptr != 0 && uptr->m_back==this && uptr->m_owner==p);
return uptr->m_user;
}
-
- void OnError (int err) const THROWS((NCursesPanelException)) {
+
+ void OnError (int err) const THROWS((NCursesPanelException))
+ {
if (err==ERR)
THROW(new NCursesPanelException (this, err));
}
virtual int getKey(void);
public:
- NCursesPanel(int lines,
- int cols,
+ NCursesPanel(int nlines,
+ int ncols,
int begin_y = 0,
int begin_x = 0)
- : NCursesWindow(lines,cols,begin_y,begin_x) {
- init();
- }
+ : NCursesWindow(nlines,ncols,begin_y,begin_x), p(0)
+ {
+ init();
+ }
// Create a panel with this size starting at the requested position.
- NCursesPanel() : NCursesWindow(::stdscr) { init(); }
+ NCursesPanel()
+ : NCursesWindow(::stdscr), p(0)
+ {
+ init();
+ }
// This constructor creates the default Panel associated with the
// ::stdscr window
+ NCursesPanel& operator=(const NCursesPanel& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ NCursesWindow::operator=(rhs);
+ }
+ return *this;
+ }
+
+ NCursesPanel(const NCursesPanel& rhs)
+ : NCursesWindow(rhs),
+ p(rhs.p)
+ {
+ }
+
virtual ~NCursesPanel();
-
+
// basic manipulation
- inline void hide() {
+ inline void hide()
+ {
OnError (::hide_panel(p));
}
// Hide the panel. It stays in the stack but becomes invisible.
- inline void show() {
+ inline void show()
+ {
OnError (::show_panel(p));
}
// Show the panel, i.e. make it visible.
- inline void top() {
+ inline void top()
+ {
OnError (::top_panel(p));
}
// Make this panel the top panel in the stack.
-
- inline void bottom() {
+
+ inline void bottom()
+ {
OnError (::bottom_panel(p));
}
// Make this panel the bottom panel in the stack.
// N.B.: The panel associated with ::stdscr is always on the bottom. So
// actually bottom() makes the panel the first above ::stdscr.
-
- virtual int mvwin(int y, int x) {
+
+ virtual int mvwin(int y, int x)
+ {
OnError(::move_panel(p, y, x));
return OK;
}
-
- inline bool hidden() const {
+
+ inline bool hidden() const
+ {
return (::panel_hidden (p) ? TRUE : FALSE);
}
// Return TRUE if the panel is hidden, FALSE otherwise.
need a reverse mapping from PANEL to NCursesPanel which needs some
redesign of the low level stuff. At the moment, we define them in the
interface but they will always produce an error. */
- inline NCursesPanel& above() const {
+ inline NCursesPanel& above() const
+ {
OnError(ERR);
return *dummy;
}
- inline NCursesPanel& below() const {
+ inline NCursesPanel& below() const
+ {
OnError(ERR);
return *dummy;
}
// Those two are rewrites of the corresponding virtual members of
// NCursesWindow
virtual int refresh();
- // Propagate all panel changes to the virtual screen and update the
+ // Propagate all panel changes to the virtual screen and update the
// physical screen.
virtual int noutrefresh();
static void redraw();
// Redraw all panels.
-
+
// decorations
- virtual void frame(const char* title=NULL,
+ virtual void frame(const char* title=NULL,
const char* btitle=NULL);
// Put a frame around the panel and put the title centered in the top line
// and btitle in the bottom line.
};
/* We use templates to provide a typesafe mechanism to associate
- * user data with a panel. A NCursesUserPanel<T> is a panel
+ * user data with a panel. A NCursesUserPanel<T> is a panel
* associated with some user data of type T.
*/
template<class T> class NCursesUserPanel : public NCursesPanel
{
public:
- NCursesUserPanel (int lines,
- int cols,
+ NCursesUserPanel (int nlines,
+ int ncols,
int begin_y = 0,
int begin_x = 0,
- const T* p_UserData = (T*)0)
- : NCursesPanel (lines, cols, begin_y, begin_x) {
+ const T* p_UserData = STATIC_CAST(T*)(0))
+ : NCursesPanel (nlines, ncols, begin_y, begin_x)
+ {
if (p)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
};
// This creates an user panel of the requested size with associated
// user data pointed to by p_UserData.
-
- NCursesUserPanel(const T* p_UserData = (T*)0) : NCursesPanel() {
+
+ NCursesUserPanel(const T* p_UserData = STATIC_CAST(T*)(0)) : NCursesPanel()
+ {
if (p)
- set_user((void *)p_UserData);
+ set_user(const_cast<void *>(p_UserData));
};
// This creates an user panel associated with the ::stdscr and user data
// pointed to by p_UserData.
virtual ~NCursesUserPanel() {};
- T* UserData (void) const {
- return (T*)get_user ();
+ T* UserData (void) const
+ {
+ return reinterpret_cast<T*>(get_user ());
};
// Retrieve the user data associated with the panel.
-
- virtual void setUserData (const T* p_UserData) {
+
+ virtual void setUserData (const T* p_UserData)
+ {
if (p)
- set_user ((void *)p_UserData);
+ set_user (const_cast<void *>(p_UserData));
}
// Associate the user panel with the user data pointed to by p_UserData.
};
-#endif // NCURSES_CURSESP_H_incl
+#endif /* NCURSES_CURSESP_H_incl */
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
****************************************************************************/
#include "internal.h"
+
+#include <stdio.h>
+
#include "etip.h"
#include "cursesw.h"
-MODULE_ID("$Id: cursespad.cc,v 1.7 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursespad.cc,v 1.11 2005/07/23 20:51:23 tom Exp $")
-NCursesPad::NCursesPad(int lines, int cols)
+NCursesPad::NCursesPad(int nlines, int ncols)
: NCursesWindow(),
- viewWin((NCursesWindow*)0),
- viewSub((NCursesWindow*)0),
+ viewWin(static_cast<NCursesWindow*>(0)),
+ viewSub(static_cast<NCursesWindow*>(0)),
h_gridsize(0), v_gridsize(0),
min_row(0), min_col(0)
{
- w = ::newpad(lines,cols);
- if ((WINDOW*)0==w) {
+ w = ::newpad(nlines, ncols);
+ if (static_cast<WINDOW*>(0) == w) {
count--;
err_handler("Cannot construct window");
}
{
NCursesWindow* W = Win();
- if ((NCursesWindow*)0 != W) {
+ if (static_cast<NCursesWindow*>(0) != W) {
int Width = W->width();
int Height = W->height();
int NCursesPad::refresh()
{
int res = noutrefresh();
- if (res==OK && ((NCursesWindow*)0 != viewWin)) {
+ if (res==OK && (static_cast<NCursesWindow*>(0) != viewWin)) {
res = (viewWin->refresh());
}
return(res);
{
int res = OK;
NCursesWindow* W = Win();
- if ((NCursesWindow*)0 != W) {
- res = copywin(*W,min_row,min_col,
- 0,0,W->maxy(),W->maxx(),
+ if (static_cast<NCursesWindow*>(0) != W) {
+ int high = W->maxy();
+ int wide = W->maxx();
+ res = copywin(*W, min_row, min_col,
+ 0, 0, high, wide,
FALSE);
if (res==OK) {
W->syncup();
void NCursesPad::setSubWindow(NCursesWindow& sub)
{
- if ((NCursesWindow*)0 == viewWin)
+ if (static_cast<NCursesWindow*>(0) == viewWin)
err_handler("Pad has no viewport");
if (!viewWin->isDescendant(sub))
THROW(new NCursesException("NCursesFramePad", E_SYSTEM_ERROR));
void NCursesFramedPad::OnOperation(int pad_req)
{
NCursesWindow* W = Win();
- NCursesWindow* Win = getWindow();
+ NCursesWindow* W2 = getWindow();
- if (((NCursesWindow*)0 != W) && ((NCursesWindow*)0 != Win)) {
+ if ((static_cast<NCursesWindow*>(0) != W) && (static_cast<NCursesWindow*>(0) != W2)) {
int Width = W->width();
int Height = W->height();
int i, row, col, h_len, v_len;
if (row + v_len > Height)
row = Height - v_len;
- Win->vline(1,Width+1,Height);
- Win->attron(A_REVERSE);
+ W2->vline(1,Width+1,Height);
+ W2->attron(A_REVERSE);
if (v_len>=2) {
- Win->addch(row+1,Width+1,ACS_UARROW);
+ W2->addch(row+1,Width+1,ACS_UARROW);
for(i=2;i<v_len;i++)
- Win->addch(row+i,Width+1,' ');
- Win->addch(row+v_len,Width+1,ACS_DARROW);
+ W2->addch(row+i,Width+1,' ');
+ W2->addch(row+v_len,Width+1,ACS_DARROW);
}
else {
for(i=1;i<=v_len;i++)
- Win->addch(row+i,Width+1,' ');
+ W2->addch(row+i,Width+1,' ');
}
- Win->attroff(A_REVERSE);
+ W2->attroff(A_REVERSE);
- Win->hline(Height+1,1,Width);
- Win->attron(A_REVERSE);
+ W2->hline(Height+1,1,Width);
+ W2->attron(A_REVERSE);
if (h_len >= 2) {
- Win->addch(Height+1,col+1,ACS_LARROW);
+ W2->addch(Height+1,col+1,ACS_LARROW);
for(i=2;i<h_len;i++)
- Win->addch(Height+1,col+i,' ');
- Win->addch(Height+1,col+h_len,ACS_RARROW);
+ W2->addch(Height+1,col+i,' ');
+ W2->addch(Height+1,col+h_len,ACS_RARROW);
}
else {
for(i=1;i<=h_len;i++)
- Win->addch(Height+1,col+i,' ');
+ W2->addch(Height+1,col+i,' ');
}
- Win->attroff(A_REVERSE);
+ W2->attroff(A_REVERSE);
}
}
#include "internal.h"
#include "cursesw.h"
-MODULE_ID("$Id: cursesw.cc,v 1.26 2003/10/25 15:02:46 tom Exp $")
+MODULE_ID("$Id: cursesw.cc,v 1.32 2005/08/13 18:12:17 tom Exp $")
#define COLORS_NEED_INITIALIZATION -1
#define COLORS_NOT_INITIALIZED 0
}
void
-NCursesWindow::initialize() {
+NCursesWindow::initialize()
+{
if (!b_initialized) {
::initscr();
b_initialized = TRUE;
}
}
-NCursesWindow::NCursesWindow() {
+NCursesWindow::NCursesWindow()
+ : w(0), alloced(0), par(0), subwins(0), sib(0)
+{
initialize();
- w = (WINDOW *)0;
+ w = static_cast<WINDOW *>(0);
init();
alloced = FALSE;
subwins = par = sib = 0;
count++;
}
-NCursesWindow::NCursesWindow(int lines, int cols, int begin_y, int begin_x)
+NCursesWindow::NCursesWindow(int nlines, int ncols, int begin_y, int begin_x)
+ : w(0), alloced(0), par(0), subwins(0), sib(0)
{
initialize();
- w = ::newwin(lines, cols, begin_y, begin_x);
+ w = ::newwin(nlines, ncols, begin_y, begin_x);
if (w == 0) {
err_handler("Cannot construct window");
}
}
NCursesWindow::NCursesWindow(WINDOW* &window)
+ : w(0), alloced(0), par(0), subwins(0), sib(0)
{
initialize();
NCursesWindow::NCursesWindow(NCursesWindow& win, int l, int c,
int begin_y, int begin_x, char absrel)
+ : w(0), alloced(0), par(0), subwins(0), sib(0)
{
initialize();
if (absrel == 'a') { // absolute origin
NCursesWindow::NCursesWindow(NCursesWindow& win,
bool do_box NCURSES_PARAM_INIT(TRUE))
+ : w(0), alloced(0), par(0), subwins(0), sib(0)
{
initialize();
- w = :: derwin(win.w,win.height()-2,win.width()-2,1,1);
+ int myHeight = win.height();
+ int myWidth = win.width();
+ w = :: derwin(win.w, myHeight - 2, myWidth - 2, 1, 1);
if (w == 0) {
err_handler("Cannot construct subwindow");
}
}
}
-NCursesWindow NCursesWindow::Clone() {
+NCursesWindow NCursesWindow::Clone()
+{
WINDOW *d = ::dupwin(w);
NCursesWindow W(d);
W.subwins = subwins;
static int r_init_idx = 0;
static RIPOFFINIT* prip = R_INIT;
-extern "C" int _nc_ripoffline(int,int (*init)(WINDOW*,int));
-
-NCursesWindow::NCursesWindow(WINDOW *win, int cols) {
+NCursesWindow::NCursesWindow(WINDOW *win, int ncols)
+ : w(0), alloced(0), par(0), subwins(0), sib(0)
+{
initialize();
w = win;
- assert((w->_maxx+1)==cols);
+ assert((w->_maxx+1)==ncols);
alloced = FALSE;
subwins = par = sib = 0;
}
-int NCursesWindow::ripoff_init(WINDOW *w, int cols)
+int _nc_xx_ripoff_init(WINDOW *w, int ncols)
{
int res = ERR;
RIPOFFINIT init = *prip++;
if (init) {
- NCursesWindow* W = new NCursesWindow(w,cols);
+ NCursesWindow* W = new NCursesWindow(w,ncols);
res = init(*W);
}
return res;
}
int NCursesWindow::ripoffline(int ripoff_lines,
- int (*init)(NCursesWindow& win)) {
- int code = ::_nc_ripoffline(ripoff_lines,ripoff_init);
+ int (*init)(NCursesWindow& win))
+{
+ int code = ::_nc_ripoffline(ripoff_lines,_nc_xx_ripoff_init);
if (code==OK && init && ripoff_lines) {
R_INIT[r_init_idx++] = init;
}
}
bool
-NCursesWindow::isDescendant(NCursesWindow& win) {
+NCursesWindow::isDescendant(NCursesWindow& win)
+{
for (NCursesWindow* p = subwins; p != NULL; p = p->sib) {
if (p==&win)
return TRUE;
short fore, back;
if (colorInitialized==COLORS_ARE_REALLY_THERE) {
- if (::pair_content((short)PAIR_NUMBER(w->_attrs), &fore, &back))
+ if (::pair_content(static_cast<short>(PAIR_NUMBER(w->_attrs)), &fore, &back))
err_handler("Can't get color pair");
}
else {
NCursesWindow::setpalette(short fore, short back)
{
if (colorInitialized==COLORS_ARE_REALLY_THERE)
- return setpalette(fore, back, (short)PAIR_NUMBER(w->_attrs));
+ return setpalette(fore, back, static_cast<short>(PAIR_NUMBER(w->_attrs)));
else
return OK;
}
}
#if HAVE_HAS_KEY
-extern "C" int _nc_has_mouse(void);
-
-bool NCursesWindow::has_mouse() const {
+bool NCursesWindow::has_mouse() const
+{
return ((::has_key(KEY_MOUSE) || ::_nc_has_mouse())
? TRUE : FALSE);
}
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
#ifndef NCURSES_CURSESW_H_incl
#define NCURSES_CURSESW_H_incl 1
-// $Id: cursesw.h,v 1.30 2004/02/08 00:11:54 tom Exp $
+// $Id: cursesw.h,v 1.38 2005/07/23 20:51:39 tom Exp $
-#include <etip.h>
#include <stdarg.h>
#include <stdio.h>
+#include <etip.h>
+
#if HAVE_STRSTREAM_H && (USE_STRSTREAM_VSCAN||USE_STRSTREAM_VSCAN_CAST)
#include <strstream.h>
#endif
#endif
#ifdef insch
-inline int UNDEF(insch)(char c) { return insch(c); }
+inline int UNDEF(insch)(chtype c) { return insch(c); }
#undef insch
#define insch UNDEF(insch)
#endif
#endif
#ifdef mvwinsch
-inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, char c)
+inline int UNDEF(mvwinsch)(WINDOW *win, int y, int x, chtype c)
{ return mvwinsch(win, y, x, c); }
#undef mvwinsch
#define mvwinsch UNDEF(mvwinsch)
#endif
#ifdef mvinsch
-inline int UNDEF(mvinsch)(int y, int x, char c)
+inline int UNDEF(mvinsch)(int y, int x, chtype c)
{ return mvinsch(y, x, c); }
#undef mvinsch
#define mvinsch UNDEF(mvinsch)
*
* C++ class for windows.
*
- *
*/
+extern "C" int _nc_ripoffline(int, int (*init)(WINDOW*, int));
+extern "C" int _nc_xx_ripoff_init(WINDOW *, int);
+extern "C" int _nc_has_mouse(void);
+
class NCURSES_IMPEXP NCursesWindow
{
friend class NCursesMenu;
private:
static bool b_initialized;
static void initialize();
- static int ripoff_init(WINDOW *, int);
+ friend int _nc_xx_ripoff_init(WINDOW *, int);
void init();
// This private constructor is only used during the initialization
// of windows generated by ripoffline() calls.
- NCursesWindow(WINDOW* win, int cols);
+ NCursesWindow(WINDOW* win, int ncols);
protected:
- void err_handler(const char *) const THROWS(NCursesException);
+ virtual void err_handler(const char *) const THROWS(NCursesException);
// Signal an error with the given message text.
static long count; // count of all active windows:
public:
NCursesWindow(WINDOW* &window); // useful only for stdscr
- NCursesWindow(int lines, // number of lines
- int cols, // number of columns
+ NCursesWindow(int nlines, // number of lines
+ int ncols, // number of columns
int begin_y, // line origin
int begin_x); // col origin
NCursesWindow(NCursesWindow& par,// parent window
- int lines, // number of lines
- int cols, // number of columns
+ int nlines, // number of lines
+ int ncols, // number of columns
int begin_y, // absolute or relative
int begin_x, // origins:
char absrel = 'a');// if `a', begin_y & begin_x are
// is two lines and two columns smaller and begins at (1,1).
// We may automatically request the box around it.
+ NCursesWindow& operator=(const NCursesWindow& rhs)
+ {
+ if (this != &rhs)
+ *this = rhs;
+ return *this;
+ }
+
+ NCursesWindow(const NCursesWindow& rhs)
+ : w(rhs.w), alloced(rhs.alloced), par(rhs.par), subwins(rhs.subwins), sib(rhs.sib)
+ {
+ }
+
virtual ~NCursesWindow();
NCursesWindow Clone();
int attron (chtype at) { return ::wattron (w, at); }
// Switch on the window attributes;
- int attroff(chtype at) { return ::wattroff(w, (int) at); }
+ int attroff(chtype at) { return ::wattroff(w, static_cast<int>(at)); }
// Switch off the window attributes;
- int attrset(chtype at) { return ::wattrset(w, (int) at); }
+ int attrset(chtype at) { return ::wattrset(w, static_cast<int>(at)); }
// Set the window attributes;
int color_set(short color_pair_number, void* opts=NULL) {
// Mark the whole window as unmodified.
int touchln(int s, int cnt, bool changed=TRUE) {
- return ::wtouchln(w, s, cnt, (int)(changed?1:0)); }
+ return ::wtouchln(w, s, cnt, static_cast<int>(changed ? 1 : 0)); }
// Mark cnt lines beginning from line s as changed or unchanged, depending
// on the value of the changed flag.
int copywin(NCursesWindow& win,
int sminrow, int smincol,
int dminrow, int dmincol,
- int dmaxrow, int dmaxcol, bool overlay=TRUE) {
+ int dmaxrow, int dmaxcol, bool overlaywin=TRUE) {
return ::copywin(w, win.w, sminrow, smincol, dminrow, dmincol,
- dmaxrow, dmaxcol, (int)(overlay?1:0)); }
+ dmaxrow, dmaxcol, static_cast<int>(overlaywin ? 1 : 0)); }
// Overlay or overwrite the rectangle in win given by dminrow,dmincol,
// dmaxrow,dmaxcol with the rectangle in this window beginning at
// sminrow,smincol.
// -------------------------------------------------------------------------
// We leave this here for compatibility reasons.
// -------------------------------------------------------------------------
-class NCURSES_IMPEXP NCursesColorWindow : public NCursesWindow {
+class NCURSES_IMPEXP NCursesColorWindow : public NCursesWindow
+{
public:
NCursesColorWindow(WINDOW* &window) // useful only for stdscr
: NCursesWindow(window) {
useColors(); }
- NCursesColorWindow(int lines, // number of lines
- int cols, // number of columns
+ NCursesColorWindow(int nlines, // number of lines
+ int ncols, // number of columns
int begin_y, // line origin
int begin_x) // col origin
- : NCursesWindow(lines, cols, begin_y, begin_x) {
+ : NCursesWindow(nlines, ncols, begin_y, begin_x) {
useColors(); }
- NCursesColorWindow(NCursesWindow& par,// parent window
- int lines, // number of lines
- int cols, // number of columns
+ NCursesColorWindow(NCursesWindow& parentWin,// parent window
+ int nlines, // number of lines
+ int ncols, // number of columns
int begin_y, // absolute or relative
int begin_x, // origins:
char absrel = 'a') // if `a', by & bx are
- : NCursesWindow(par, lines, cols, // absolute screen pos,
+ : NCursesWindow(parentWin,
+ nlines, ncols, // absolute screen pos,
begin_y, begin_x, // else if `r', they are
absrel ) { // relative to par origin
useColors(); }
// Pad Support. We allow an association of a pad with a "real" window
// through which the pad may be viewed.
// -------------------------------------------------------------------------
-class NCURSES_IMPEXP NCursesPad : public NCursesWindow {
+class NCURSES_IMPEXP NCursesPad : public NCursesWindow
+{
private:
NCursesWindow* viewWin; // the "viewport" window
NCursesWindow* viewSub; // the "viewport" subwindow
// the refresh() operation is done.
public:
- NCursesPad(int lines, int cols);
+ NCursesPad(int nlines, int ncols);
// create a pad with the given size
+ NCursesPad& operator=(const NCursesPad& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ NCursesWindow::operator=(rhs);
+ }
+ return *this;
+ }
+
+ NCursesPad(const NCursesPad& rhs)
+ : NCursesWindow(rhs),
+ viewWin(rhs.viewWin),
+ viewSub(rhs.viewSub),
+ h_gridsize(rhs.h_gridsize),
+ v_gridsize(rhs.v_gridsize),
+ min_row(rhs.min_row),
+ min_col(rhs.min_col)
+ {
+ }
+
virtual ~NCursesPad() {}
int echochar(const chtype ch) { return ::pechochar(w, ch); }
// A FramedPad is constructed always with a viewport window. This viewport
// will be framed (by a box() command) and the interior of the box is the
// viewport subwindow. On the frame we display scrollbar sliders.
-class NCURSES_IMPEXP NCursesFramedPad : public NCursesPad {
+class NCURSES_IMPEXP NCursesFramedPad : public NCursesPad
+{
protected:
virtual void OnOperation(int pad_req);
public:
- NCursesFramedPad(NCursesWindow& win, int lines, int cols,
+ NCursesFramedPad(NCursesWindow& win, int nlines, int ncols,
int v_grid = 1, int h_grid = 1)
- : NCursesPad(lines, cols) {
+ : NCursesPad(nlines, ncols) {
NCursesPad::setWindow(win, v_grid, h_grid);
NCursesPad::setSubWindow(*(new NCursesWindow(win)));
}
};
-#endif // NCURSES_CURSESW_H_incl
+#endif /* NCURSES_CURSESW_H_incl */
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "internal.h"
#include "cursslk.h"
#include "cursesapp.h"
-#include <string.h>
-MODULE_ID("$Id: cursslk.cc,v 1.11 2003/10/25 15:04:46 tom Exp $")
+MODULE_ID("$Id: cursslk.cc,v 1.15 2005/08/06 22:12:36 tom Exp $")
-void Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text) {
+Soft_Label_Key_Set::Soft_Label_Key&
+ Soft_Label_Key_Set::Soft_Label_Key::operator=(char *text)
+{
delete[] label;
label = new char[1 + ::strlen(text)];
(::strcpy)(label,text);
+ return *this;
}
long Soft_Label_Key_Set::count = 0L;
int Soft_Label_Key_Set::num_labels = 0;
-Soft_Label_Key_Set::Label_Layout
+Soft_Label_Key_Set::Label_Layout
Soft_Label_Key_Set::format = None;
-void Soft_Label_Key_Set::init() {
+void Soft_Label_Key_Set::init()
+{
slk_array = new Soft_Label_Key[num_labels];
for(int i=0; i < num_labels; i++) {
slk_array[i].num = i+1;
b_attrInit = FALSE;
}
-Soft_Label_Key_Set::Soft_Label_Key_Set() {
+Soft_Label_Key_Set::Soft_Label_Key_Set()
+ : b_attrInit(FALSE),
+ slk_array(NULL)
+{
if (format==None)
Error("No default SLK layout");
init();
}
-Soft_Label_Key_Set::Soft_Label_Key_Set(Soft_Label_Key_Set::Label_Layout fmt) {
+Soft_Label_Key_Set::Soft_Label_Key_Set(Soft_Label_Key_Set::Label_Layout fmt)
+ : b_attrInit(FALSE),
+ slk_array(NULL)
+{
if (fmt==None)
Error("Invalid SLK Layout");
if (count++==0) {
format = fmt;
- if (ERR == ::slk_init((int)fmt))
+ if (ERR == ::slk_init(static_cast<int>(fmt)))
Error("slk_init");
num_labels = (fmt>=PC_Style?12:8);
}
noutrefresh();
}
-void Soft_Label_Key_Set::activate_labels(bool bf) {
+void Soft_Label_Key_Set::activate_labels(bool bf)
+{
if (!b_attrInit) {
NCursesApplication* A = NCursesApplication::getApplication();
if (A) attrset(A->labels());
// * this is for making emacs happy: -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: cursslk.h,v 1.9 2003/10/25 15:04:46 tom Exp $
+// $Id: cursslk.h,v 1.13 2005/05/28 21:58:18 tom Exp $
#ifndef NCURSES_CURSSLK_H_incl
#define NCURSES_CURSSLK_H_incl
Justification format; // The Justification
int num; // The number of the Label
- Soft_Label_Key() : label((char*)0),format(Left),num(-1) {
+ Soft_Label_Key() : label(NULL), format(Left), num(-1) {
}
-
+
virtual ~Soft_Label_Key() {
delete[] label;
};
public:
// Set the text of the Label
- void operator=(char *text);
-
+ Soft_Label_Key& operator=(char *text);
+
// Set the Justification of the Label
- inline void operator=(Justification just) {
+ Soft_Label_Key& operator=(Justification just) {
format = just;
+ return *this;
}
-
+
// Retrieve the text of the label
inline char* operator()(void) const {
- return label;
+ return label;
+ }
+
+ Soft_Label_Key& operator=(const Soft_Label_Key& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ Soft_Label_Key(const Soft_Label_Key& rhs)
+ : label(NULL),
+ format(rhs.format),
+ num(rhs.num)
+ {
+ *this = rhs.label;
}
};
-
+
public:
typedef enum {
None = -1,
static Label_Layout NCURSES_IMPEXP format; // Layout of the Key Sets
static int NCURSES_IMPEXP num_labels; // Number Of Labels in Key Sets
bool NCURSES_IMPEXP b_attrInit; // Are attributes initialized
-
+
Soft_Label_Key *slk_array; // The array of SLK's
// Init the Key Set
}
// Remove SLK's from screen
- void clear() {
+ void clear() {
if (ERR==::slk_clear())
Error("slk_clear");
- }
+ }
// Restore them
- void restore() {
+ void restore() {
if (ERR==::slk_restore())
Error("slk_restore");
}
// with a layout by the constructor above. This layout will be reused.
NCURSES_IMPEXP Soft_Label_Key_Set();
+ Soft_Label_Key_Set& operator=(const Soft_Label_Key_Set& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ init(); // allocate a new slk_array[]
+ }
+ return *this;
+ }
+
+ Soft_Label_Key_Set(const Soft_Label_Key_Set& rhs)
+ : b_attrInit(rhs.b_attrInit),
+ slk_array(NULL)
+ {
+ init(); // allocate a new slk_array[]
+ }
+
virtual ~Soft_Label_Key_Set();
// Get Label# i. Label counting starts with 1!
NCURSES_IMPEXP Soft_Label_Key& operator[](int i);
// Retrieve number of Labels
- inline int labels() const { return num_labels; }
+ inline int labels() const { return num_labels; }
// Refresh the SLK portion of the screen
- inline void refresh() {
+ inline void refresh() {
if (ERR==::slk_refresh())
Error("slk_refresh");
}
// Mark the SLK portion of the screen for refresh, defer actual refresh
// until next update call.
- inline void noutrefresh() {
+ inline void noutrefresh() {
if (ERR==::slk_noutrefresh())
Error("slk_noutrefresh");
}
// Mark the whole SLK portion of the screen as modified
- inline void touch() {
+ inline void touch() {
if (ERR==::slk_touch())
Error("slk_touch");
}
}
};
-#endif // NCURSES_CURSSLK_H_incl
+#endif /* NCURSES_CURSSLK_H_incl */
* Demo code for NCursesMenu and NCursesForm written by
* Juergen Pfeifer
*
- * $Id: demo.cc,v 1.24 2004/01/15 00:21:27 tom Exp $
+ * $Id: demo.cc,v 1.32 2005/08/13 18:14:44 tom Exp $
*/
+#include "internal.h"
#include "cursesapp.h"
#include "cursesm.h"
#include "cursesf.h"
-#if HAVE_LIBC_H
-# include <libc.h>
-#endif
-
extern "C" unsigned int sleep(unsigned int);
#undef index // needed for NeXT
public:
MyAction (const char* p_name,
const T* p_UserData)
- : NCursesUserItem<T>(p_name, (const char*)0, p_UserData)
- {};
+ : NCursesUserItem<T>(p_name, static_cast<const char*>(0), p_UserData)
+ {}
- ~MyAction() {}
+ virtual ~MyAction() {}
bool action() {
SillyDemo a;
}
};
+template class MyAction<UserData>;
+template class NCURSES_IMPEXP NCursesUserItem<UserData>;
+
class QuitItem : public NCursesMenuItem
{
public:
public:
Label(const char* title,
int row, int col)
- : NCursesFormField(1,(int)::strlen(title),row,col) {
+ : NCursesFormField(1, static_cast<int>(::strlen(title)), row, col) {
set_value(title);
options_off(O_EDIT|O_ACTIVE);
}
//
// -------------------------------------------------------------------------
//
-class MyFieldType : public UserDefinedFieldType {
+class MyFieldType : public UserDefinedFieldType
+{
private:
int chk;
protected:
static const char *weekdays[];
public:
- TestForm() : NCursesForm(13,51,(lines()-15)/2,(cols()-53)/2) {
+ TestForm()
+ : NCursesForm(13, 51, (lines() - 15)/2, (cols() - 53)/2),
+ F(0),
+ mft(0),
+ ift(0),
+ eft(0)
+ {
F = new NCursesFormField*[10];
mft = new MyFieldType('X');
F[8]->options_off(O_STATIC); // make field dynamic
}
+ TestForm& operator=(const TestForm& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ TestForm(const TestForm& rhs)
+ : NCursesForm(rhs), F(0), mft(0), ift(0), eft(0)
+ {
+ }
+
~TestForm() {
delete mft;
delete ift;
const char* TestForm::weekdays[] = {
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday",
- "Friday", "Saturday", (const char *)0 };
+ "Friday", "Saturday", NULL };
//
// -------------------------------------------------------------------------
//
if (i==0 || j==0)
FP.addch('+');
else
- FP.addch((chtype)('A' + (gridcount++ % 26)));
+ FP.addch(static_cast<chtype>('A' + (gridcount++ % 26)));
}
else if (i % GRIDSIZE == 0)
FP.addch('-');
//
// -------------------------------------------------------------------------
//
-class PassiveItem : public NCursesMenuItem {
+class PassiveItem : public NCursesMenuItem
+{
public:
PassiveItem(const char* text) : NCursesMenuItem(text) {
options_off(O_SELECTABLE);
::echo();
s->printw("Enter decimal integers. The running total will be shown\n");
- int value = -1;
+ int nvalue = -1;
int result = 0;
- while (value != 0) {
- value = 0;
- s->scanw("%d", &value);
- if (value != 0) {
- s->printw("%d: ", result += value);
+ while (nvalue != 0) {
+ nvalue = 0;
+ s->scanw("%d", &nvalue);
+ if (nvalue != 0) {
+ s->printw("%d: ", result += nvalue);
}
s->refresh();
}
public:
MyMenu ()
- : NCursesMenu (n_items+2, 8, (lines()-10)/2, (cols()-10)/2)
+ : NCursesMenu (n_items+2, 8, (lines()-10)/2, (cols()-10)/2),
+ P(0), I(0), u(0)
{
u = new UserData(1);
I = new NCursesMenuItem*[1+n_items];
P->show();
}
+ MyMenu& operator=(const MyMenu& rhs)
+ {
+ if (this != &rhs) {
+ *this = rhs;
+ }
+ return *this;
+ }
+
+ MyMenu(const MyMenu& rhs)
+ : NCursesMenu(rhs), P(0), I(0), u(0)
+ {
+ }
+
~MyMenu()
{
P->hide();
//
// -------------------------------------------------------------------------
//
-class TestApplication : public NCursesApplication {
+class TestApplication : public NCursesApplication
+{
protected:
int titlesize() const { return 1; }
void title();
int run();
};
-void TestApplication::init_labels(Soft_Label_Key_Set& S) const {
+void TestApplication::init_labels(Soft_Label_Key_Set& S) const
+{
for(int i=1; i <= S.labels(); i++) {
char buf[5];
::sprintf(buf,"Key%02d",i);
}
}
-void TestApplication::title() {
- const char * const title = "Simple C++ Binding Demo";
- const int len = ::strlen(title);
+void TestApplication::title()
+{
+ const char * const titleText = "Simple C++ Binding Demo";
+ const int len = ::strlen(titleText);
titleWindow->bkgd(screen_titles());
- titleWindow->addstr(0,(titleWindow->cols()-len)/2,title);
+ titleWindow->addstr(0,(titleWindow->cols() - len)/2, titleText);
titleWindow->noutrefresh();
}
-int TestApplication::run() {
+int TestApplication::run()
+{
MyMenu M;
M();
return 0;
#!/bin/sh
-# $Id: edit_cfg.sh,v 1.13 2003/12/20 13:14:25 tom Exp $
+# $Id: edit_cfg.sh,v 1.14 2005/04/30 21:00:22 tom Exp $
##############################################################################
-# Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2005 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"), #
echo "substituting autoconf'd values from $1 into $2"
for name in \
CPP_HAS_PARAM_INIT \
+ CPP_HAS_STATIC_CAST \
ETIP_NEEDS_MATH_EXCEPTION \
ETIP_NEEDS_MATH_H \
HAVE_BUILTIN_H \
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: etip.h.in,v 1.25 2003/10/25 15:05:58 tom Exp $
+// $Id: etip.h.in,v 1.32 2005/08/06 19:55:57 tom Exp $
#ifndef NCURSES_ETIP_H_incl
#define NCURSES_ETIP_H_incl 1
#define CPP_HAS_PARAM_INIT 0
#endif
+#ifndef CPP_HAS_STATIC_CAST
+#define CPP_HAS_STATIC_CAST 0 // workaround for g++ 2.95.3
+#endif
+
#ifndef USE_STRSTREAM_VSCAN
#define USE_STRSTREAM_VSCAN 0
#endif
# endif
#elif defined (__SUNPRO_CC)
# include <generic.h>
-# include <string.h>
-#else
-# include <string.h>
#endif
#include <ncurses_dll.h>
#define NCURSES_PARAM_INIT(value) /*nothing*/
#endif
+#if CPP_HAS_STATIC_CAST
+#define STATIC_CAST(s) static_cast<s>
+#else
+#define STATIC_CAST(s) (s)
+#endif
+
// Forward Declarations
class NCURSES_IMPEXP NCursesPanel;
class NCURSES_IMPEXP NCursesMenu;
: message(msg), errorno (E_SYSTEM_ERROR)
{};
+ NCursesException& operator=(const NCursesException& rhs)
+ {
+ errorno = rhs.errorno;
+ return *this;
+ }
+
+ NCursesException(const NCursesException& rhs)
+ : message(rhs.message), errorno(rhs.errorno)
+ {
+ }
+
virtual const char *classname() const {
return "NCursesWindow";
}
+
+ virtual ~NCursesException()
+ {
+ }
};
class NCURSES_IMPEXP NCursesPanelException : public NCursesException
NCursesPanelException (const char *msg, int err) :
NCursesException (msg, err),
- p ((NCursesPanel*)0)
+ p (NULL)
{};
NCursesPanelException (const NCursesPanel* panel,
NCursesPanelException (int err) :
NCursesException ("panel library error", err),
- p ((NCursesPanel*)0)
+ p (NULL)
{};
NCursesPanelException (const NCursesPanel* panel,
p (panel)
{};
+ NCursesPanelException& operator=(const NCursesPanelException& rhs)
+ {
+ if (this != &rhs) {
+ NCursesException::operator=(rhs);
+ p = rhs.p;
+ }
+ return *this;
+ }
+
+ NCursesPanelException(const NCursesPanelException& rhs)
+ : NCursesException(rhs), p(rhs.p)
+ {
+ }
+
virtual const char *classname() const {
return "NCursesPanel";
}
+ virtual ~NCursesPanelException()
+ {
+ }
};
class NCURSES_IMPEXP NCursesMenuException : public NCursesException
NCursesMenuException (const char *msg, int err) :
NCursesException (msg, err),
- m ((NCursesMenu *)0)
+ m (NULL)
{};
NCursesMenuException (const NCursesMenu* menu,
NCursesMenuException (int err) :
NCursesException ("menu library error", err),
- m ((NCursesMenu *)0)
+ m (NULL)
{};
NCursesMenuException (const NCursesMenu* menu,
m (menu)
{};
+ NCursesMenuException& operator=(const NCursesMenuException& rhs)
+ {
+ if (this != &rhs) {
+ NCursesException::operator=(rhs);
+ m = rhs.m;
+ }
+ return *this;
+ }
+
+ NCursesMenuException(const NCursesMenuException& rhs)
+ : NCursesException(rhs), m(rhs.m)
+ {
+ }
+
virtual const char *classname() const {
return "NCursesMenu";
}
+ virtual ~NCursesMenuException()
+ {
+ }
};
class NCURSES_IMPEXP NCursesFormException : public NCursesException
NCursesFormException (const char *msg, int err) :
NCursesException (msg, err),
- f ((NCursesForm*)0)
+ f (NULL)
{};
NCursesFormException (const NCursesForm* form,
NCursesFormException (int err) :
NCursesException ("form library error", err),
- f ((NCursesForm*)0)
+ f (NULL)
{};
NCursesFormException (const NCursesForm* form,
f (form)
{};
+ NCursesFormException& operator=(const NCursesFormException& rhs)
+ {
+ if (this != &rhs) {
+ NCursesException::operator=(rhs);
+ f = rhs.f;
+ }
+ return *this;
+ }
+
+ NCursesFormException(const NCursesFormException& rhs)
+ : NCursesException(rhs), f(rhs.f)
+ {
+ }
+
virtual const char *classname() const {
return "NCursesForm";
}
+ virtual ~NCursesFormException()
+ {
+ }
};
#if !((defined(__GNUG__) && defined(__EXCEPTIONS)) || defined(__SUNPRO_CC))
#define THROWS(s)
-#endif // NCURSES_ETIP_H_incl
+#endif /* NCURSES_ETIP_H_incl */
// * This makes emacs happy -*-Mode: C++;-*-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
* Author: Juergen Pfeifer, 1997 *
****************************************************************************/
-// $Id: internal.h,v 1.10 2003/10/25 15:04:46 tom Exp $
+// $Id: internal.h,v 1.12 2005/08/06 22:12:25 tom Exp $
#ifndef NCURSES_CPLUS_INTERNAL_H
#define NCURSES_CPLUS_INTERNAL_H 1
#define CTRL(x) ((x) & 0x1f)
-#endif // NCURSES_CPLUS_INTERNAL_H
+#ifndef __EXT_QNX
+#include <string.h>
+#endif
+
+#endif /* NCURSES_CPLUS_INTERNAL_H */
#! /bin/sh
# Attempt to guess a canonical system name.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2004-01-05'
+timestamp='2005-09-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+
# Originally written by Per Bothner <per@bothner.com>.
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
GNU config.guess ($timestamp)
Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
;;
,,*) CC_FOR_BUILD=$CC ;;
,*,*) CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
# (ghazi@noc.rutgers.edu 1994-08-24)
# contains redundant information, the shorter form:
# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
echo "${machine}-${os}${release}"
- exit 0 ;;
- amiga:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- arc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- hp300:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mac68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- macppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme68k:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvme88k:OpenBSD:*:*)
- echo m88k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- mvmeppc:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pegasos:OpenBSD:*:*)
- echo powerpc-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- pmax:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sgi:OpenBSD:*:*)
- echo mipseb-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- sun3:OpenBSD:*:*)
- echo m68k-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
- wgrisc:OpenBSD:*:*)
- echo mipsel-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:OpenBSD:*:*)
- echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
- exit 0 ;;
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+ exit ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit ;;
alpha:OSF1:*:*)
- if test $UNAME_RELEASE = "V4.0"; then
+ case $UNAME_RELEASE in
+ *4.0)
UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
- fi
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
# According to Compaq, /usr/sbin/psrinfo has been available on
# OSF/1 and Tru64 systems produced since 1995. I hope that
# covers most systems running today. This code pipes the CPU
"EV7.9 (21364A)")
UNAME_MACHINE="alphaev79" ;;
esac
+ # A Pn.n version is a patched version.
# A Vn.n version is a released version.
# A Tn.n version is a released field test version.
# A Xn.n version is an unreleased experimental baselevel.
# 1.2 uses "1.2" for uname -r.
- echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- exit 0 ;;
- Alpha*:OpenVMS:*:*)
- echo alpha-hp-vms
- exit 0 ;;
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit ;;
Alpha\ *:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# Should we change UNAME_MACHINE based on the output of uname instead
# of the specific Alpha model?
echo alpha-pc-interix
- exit 0 ;;
+ exit ;;
21064:Windows_NT:50:3)
echo alpha-dec-winnt3.5
- exit 0 ;;
+ exit ;;
Amiga*:UNIX_System_V:4.0:*)
echo m68k-unknown-sysv4
- exit 0;;
+ exit ;;
*:[Aa]miga[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-amigaos
- exit 0 ;;
+ exit ;;
*:[Mm]orph[Oo][Ss]:*:*)
echo ${UNAME_MACHINE}-unknown-morphos
- exit 0 ;;
+ exit ;;
*:OS/390:*:*)
echo i370-ibm-openedition
- exit 0 ;;
+ exit ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit ;;
*:OS400:*:*)
- echo powerpc-ibm-os400
- exit 0 ;;
+ echo powerpc-ibm-os400
+ exit ;;
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
echo arm-acorn-riscix${UNAME_RELEASE}
- exit 0;;
+ exit ;;
+ arm:riscos:*:*|arm:RISCOS:*:*)
+ echo arm-unknown-riscos
+ exit ;;
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
echo hppa1.1-hitachi-hiuxmpp
- exit 0;;
+ exit ;;
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
if test "`(/bin/universe) 2>/dev/null`" = att ; then
else
echo pyramid-pyramid-bsd
fi
- exit 0 ;;
+ exit ;;
NILE*:*:*:dcosx)
echo pyramid-pyramid-svr4
- exit 0 ;;
+ exit ;;
DRS?6000:unix:4.0:6*)
echo sparc-icl-nx6
- exit 0 ;;
- DRS?6000:UNIX_SV:4.2*:7*)
+ exit ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
case `/usr/bin/uname -p` in
- sparc) echo sparc-icl-nx7 && exit 0 ;;
+ sparc) echo sparc-icl-nx7; exit ;;
esac ;;
sun4H:SunOS:5.*:*)
echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
i86pc:SunOS:5.*:*)
echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:6*:*)
# According to config.sub, this is the proper way to canonicalize
# SunOS6. Hard to guess exactly what SunOS6 will be like, but
# it's likely to be more like Solaris than SunOS4.
echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
sun4*:SunOS:*:*)
case "`/usr/bin/arch -k`" in
Series*|S4*)
esac
# Japanese Language versions have a version number like `4.1.3-JL'.
echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
- exit 0 ;;
+ exit ;;
sun3*:SunOS:*:*)
echo m68k-sun-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sun*:*:4.2BSD:*)
UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
echo sparc-sun-sunos${UNAME_RELEASE}
;;
esac
- exit 0 ;;
+ exit ;;
aushp:SunOS:*:*)
echo sparc-auspex-sunos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
# The situation for MiNT is a little confusing. The machine name
# can be virtually everything (everything which is not
# "atarist" or "atariste" at least should have a processor
# be no problem.
atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
echo m68k-atari-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
echo m68k-milan-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
echo m68k-hades-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
echo m68k-unknown-mint${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit ;;
powerpc:machten:*:*)
echo powerpc-apple-machten${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RISC*:Mach:*:*)
echo mips-dec-mach_bsd4.3
- exit 0 ;;
+ exit ;;
RISC*:ULTRIX:*:*)
echo mips-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
VAX*:ULTRIX*:*:*)
echo vax-dec-ultrix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
2020:CLIX:*:* | 2430:CLIX:*:*)
echo clipper-intergraph-clix${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mips:*:*:UMIPS | mips:*:*:RISCos)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
exit (-1);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c \
- && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
- && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c &&
+ dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`$dummy $dummyarg` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo mips-mips-riscos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
Motorola:PowerMAX_OS:*:*)
echo powerpc-motorola-powermax
- exit 0 ;;
+ exit ;;
Motorola:*:4.3:PL8-*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
echo powerpc-harris-powermax
- exit 0 ;;
+ exit ;;
Night_Hawk:Power_UNIX:*:*)
echo powerpc-harris-powerunix
- exit 0 ;;
+ exit ;;
m88k:CX/UX:7*:*)
echo m88k-harris-cxux7
- exit 0 ;;
+ exit ;;
m88k:*:4*:R4*)
echo m88k-motorola-sysv4
- exit 0 ;;
+ exit ;;
m88k:*:3*:R3*)
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
else
echo i586-dg-dgux${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
M88*:DolphinOS:*:*) # DolphinOS (SVR3)
echo m88k-dolphin-sysv3
- exit 0 ;;
+ exit ;;
M88*:*:R3*:*)
# Delta 88k system running SVR3
echo m88k-motorola-sysv3
- exit 0 ;;
+ exit ;;
XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
echo m88k-tektronix-sysv3
- exit 0 ;;
+ exit ;;
Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
echo m68k-tektronix-bsd
- exit 0 ;;
+ exit ;;
*:IRIX*:*:*)
echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
- exit 0 ;;
+ exit ;;
????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
- echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
- exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit ;; # Note that: echo "'`uname -s`'" gives 'AIX '
i*86:AIX:*:*)
echo i386-ibm-aix
- exit 0 ;;
+ exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
IBM_REV=`/usr/bin/oslevel`
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:2:3)
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
eval $set_cc_for_build
exit(0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
- echo rs6000-ibm-aix3.2.5
+ if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+ then
+ echo "$SYSTEM_NAME"
+ else
+ echo rs6000-ibm-aix3.2.5
+ fi
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
echo rs6000-ibm-aix3.2.4
else
echo rs6000-ibm-aix3.2
fi
- exit 0 ;;
+ exit ;;
*:AIX:*:[45])
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
fi
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
- exit 0 ;;
+ exit ;;
*:AIX:*:*)
echo rs6000-ibm-aix
- exit 0 ;;
+ exit ;;
ibmrt:4.4BSD:*|romp-ibm:BSD:*)
echo romp-ibm-bsd4.4
- exit 0 ;;
+ exit ;;
ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
- exit 0 ;; # report: romp-ibm BSD 4.3
+ exit ;; # report: romp-ibm BSD 4.3
*:BOSX:*:*)
echo rs6000-bull-bosx
- exit 0 ;;
+ exit ;;
DPX/2?00:B.O.S.:*:*)
echo m68k-bull-sysv3
- exit 0 ;;
+ exit ;;
9000/[34]??:4.3bsd:1.*:*)
echo m68k-hp-bsd
- exit 0 ;;
+ exit ;;
hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
echo m68k-hp-bsd4.4
- exit 0 ;;
+ exit ;;
9000/[34678]??:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
case "${UNAME_MACHINE}" in
esac
if [ ${HP_ARCH} = "hppa2.0w" ]
then
- # avoid double evaluation of $set_cc_for_build
- test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
- if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ eval $set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep __LP64__ >/dev/null
then
HP_ARCH="hppa2.0w"
else
fi
fi
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
ia64:HP-UX:*:*)
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
echo ia64-hp-hpux${HPUX_REV}
- exit 0 ;;
+ exit ;;
3050*:HI-UX:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
exit (0);
}
EOF
- $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
echo unknown-hitachi-hiuxwe2
- exit 0 ;;
+ exit ;;
9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
echo hppa1.1-hp-bsd
- exit 0 ;;
+ exit ;;
9000/8??:4.3bsd:*:*)
echo hppa1.0-hp-bsd
- exit 0 ;;
+ exit ;;
*9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
echo hppa1.0-hp-mpeix
- exit 0 ;;
+ exit ;;
hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
echo hppa1.1-hp-osf
- exit 0 ;;
+ exit ;;
hp8??:OSF1:*:*)
echo hppa1.0-hp-osf
- exit 0 ;;
+ exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
echo ${UNAME_MACHINE}-unknown-osf1mk
else
echo ${UNAME_MACHINE}-unknown-osf1
fi
- exit 0 ;;
+ exit ;;
parisc*:Lites*:*:*)
echo hppa1.1-hp-lites
- exit 0 ;;
+ exit ;;
C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
CRAY*Y-MP:*:*:*)
echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*[A-Z]90:*:*:*)
echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*TS:*:*:*)
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*T3E:*:*:*)
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
CRAY*SV1:*:*:*)
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ exit ;;
*:UNICOS/mp:*:*)
- echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
- exit 0 ;;
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit ;;
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
- echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
5000:UNIX_System_V:4.*:*)
- FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
- FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
- echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
- exit 0 ;;
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit ;;
i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
sparc*:BSD/OS:*:*)
echo sparc-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:BSD/OS:*:*)
echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:FreeBSD:*:*)
- # Determine whether the default compiler uses glibc.
- eval $set_cc_for_build
- sed 's/^ //' << EOF >$dummy.c
- #include <features.h>
- #if __GLIBC__ >= 2
- LIBC=gnu
- #else
- LIBC=
- #endif
-EOF
- eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- # GNU/KFreeBSD systems have a "k" prefix to indicate we are using
- # FreeBSD's kernel, but not the complete OS.
- case ${LIBC} in gnu) kernel_only='k' ;; esac
- echo ${UNAME_MACHINE}-unknown-${kernel_only}freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
i*:CYGWIN*:*)
echo ${UNAME_MACHINE}-pc-cygwin
- exit 0 ;;
+ exit ;;
i*:MINGW*:*)
echo ${UNAME_MACHINE}-pc-mingw32
- exit 0 ;;
+ exit ;;
+ i*:windows32*:*)
+ # uname -m includes "-pc" on this system.
+ echo ${UNAME_MACHINE}-mingw32
+ exit ;;
i*:PW*:*)
echo ${UNAME_MACHINE}-pc-pw32
- exit 0 ;;
+ exit ;;
x86:Interix*:[34]*)
echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
- exit 0 ;;
+ exit ;;
[345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
echo i${UNAME_MACHINE}-pc-mks
- exit 0 ;;
+ exit ;;
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
# How do we know it's Interix rather than the generic POSIX subsystem?
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
# UNAME_MACHINE based on the output of uname instead of i386?
echo i586-pc-interix
- exit 0 ;;
+ exit ;;
i*:UWIN*:*)
echo ${UNAME_MACHINE}-pc-uwin
- exit 0 ;;
+ exit ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit ;;
p*:CYGWIN*:*)
echo powerpcle-unknown-cygwin
- exit 0 ;;
+ exit ;;
prep*:SunOS:5.*:*)
echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
- exit 0 ;;
+ exit ;;
*:GNU:*:*)
# the GNU system
echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
- exit 0 ;;
+ exit ;;
*:GNU/*:*:*)
# other systems with GNU libc and userland
echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
- exit 0 ;;
+ exit ;;
i*86:Minix:*:*)
echo ${UNAME_MACHINE}-pc-minix
- exit 0 ;;
+ exit ;;
arm*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
cris:Linux:*:*)
echo cris-axis-linux-gnu
- exit 0 ;;
+ exit ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit ;;
ia64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
m68*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
mips:Linux:*:*)
eval $set_cc_for_build
sed 's/^ //' << EOF >$dummy.c
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
mips64:Linux:*:*)
eval $set_cc_for_build
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
- test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
;;
+ or32:Linux:*:*)
+ echo or32-unknown-linux-gnu
+ exit ;;
ppc:Linux:*:*)
echo powerpc-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
ppc64:Linux:*:*)
echo powerpc64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
alpha:Linux:*:*)
case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
EV5) UNAME_MACHINE=alphaev5 ;;
objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
- exit 0 ;;
+ exit ;;
parisc:Linux:*:* | hppa:Linux:*:*)
# Look for CPU level
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
PA8*) echo hppa2.0-unknown-linux-gnu ;;
*) echo hppa-unknown-linux-gnu ;;
esac
- exit 0 ;;
+ exit ;;
parisc64:Linux:*:* | hppa64:Linux:*:*)
echo hppa64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
s390:Linux:*:* | s390x:Linux:*:*)
echo ${UNAME_MACHINE}-ibm-linux
- exit 0 ;;
+ exit ;;
sh64*:Linux:*:*)
- echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit ;;
sh*:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
sparc:Linux:*:* | sparc64:Linux:*:*)
echo ${UNAME_MACHINE}-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
x86_64:Linux:*:*)
echo x86_64-unknown-linux-gnu
- exit 0 ;;
+ exit ;;
i*86:Linux:*:*)
# The BFD linker knows what the default object file format is, so
# first see if it will tell us. cd to the root directory to prevent
;;
a.out-i386-linux)
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
- exit 0 ;;
+ exit ;;
coff-i386)
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
- exit 0 ;;
+ exit ;;
"")
# Either a pre-BFD a.out linker (linux-gnuoldld) or
# one that does not give us useful --help.
echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
- exit 0 ;;
+ exit ;;
esac
# Determine whether the default compiler is a.out or elf
eval $set_cc_for_build
#endif
EOF
eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
- test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
- test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ test x"${LIBC}" != x && {
+ echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+ exit
+ }
+ test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
;;
i*86:DYNIX/ptx:4*:*)
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
# earlier versions are messed up and put the nodename in both
# sysname and nodename.
echo i386-sequent-sysv4
- exit 0 ;;
+ exit ;;
i*86:UNIX_SV:4.2MP:2.*)
# Unixware is an offshoot of SVR4, but it has its own version
# number series starting with 2...
# I just have to hope. -- rms.
# Use sysv4.2uw... so that sysv4* matches it.
echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:OS/2:*:*)
# If we were able to find `uname', then EMX Unix compatibility
# is probably installed.
echo ${UNAME_MACHINE}-pc-os2-emx
- exit 0 ;;
+ exit ;;
i*86:XTS-300:*:STOP)
echo ${UNAME_MACHINE}-unknown-stop
- exit 0 ;;
+ exit ;;
i*86:atheos:*:*)
echo ${UNAME_MACHINE}-unknown-atheos
- exit 0 ;;
+ exit ;;
i*86:syllable:*:*)
echo ${UNAME_MACHINE}-pc-syllable
- exit 0 ;;
+ exit ;;
i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
echo i386-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
i*86:*DOS:*:*)
echo ${UNAME_MACHINE}-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
else
echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
fi
- exit 0 ;;
- i*86:*:5:[78]*)
+ exit ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
case `/bin/uname -X | grep "^Machine"` in
*486*) UNAME_MACHINE=i486 ;;
*Pentium) UNAME_MACHINE=i586 ;;
*Pent*|*Celeron) UNAME_MACHINE=i686 ;;
esac
echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
- exit 0 ;;
+ exit ;;
i*86:*:3.2:*)
if test -f /usr/options/cb.name; then
UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
else
echo ${UNAME_MACHINE}-pc-sysv32
fi
- exit 0 ;;
+ exit ;;
pc:*:*:*)
# Left here for compatibility:
# uname -m prints for DJGPP always 'pc', but it prints nothing about
# the processor, so we play safe by assuming i386.
echo i386-pc-msdosdjgpp
- exit 0 ;;
+ exit ;;
Intel:Mach:3*:*)
echo i386-pc-mach3
- exit 0 ;;
+ exit ;;
paragon:*:*:*)
echo i860-intel-osf1
- exit 0 ;;
+ exit ;;
i860:*:4.*:*) # i860-SVR4
if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
else # Add other i860-SVR4 vendors below as they are discovered.
echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
fi
- exit 0 ;;
+ exit ;;
mini*:CTIX:SYS*5:*)
# "miniframe"
echo m68010-convergent-sysv
- exit 0 ;;
+ exit ;;
mc68k:UNIX:SYSTEM5:3.51m)
echo m68k-convergent-sysv
- exit 0 ;;
+ exit ;;
M680?0:D-NIX:5.3:*)
echo m68k-diab-dnix
- exit 0 ;;
- M68*:*:R3V[567]*:*)
- test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
- 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0)
+ exit ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
OS_REL=''
test -r /etc/.relid \
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
- && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
- && echo i486-ncr-sysv4 && exit 0 ;;
+ && { echo i486-ncr-sysv4; exit; } ;;
m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
echo m68k-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
mc68030:UNIX_System_V:4.*:*)
echo m68k-atari-sysv4
- exit 0 ;;
+ exit ;;
TSUNAMI:LynxOS:2.*:*)
echo sparc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
rs6000:LynxOS:2.*:*)
echo rs6000-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
echo powerpc-unknown-lynxos${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SM[BE]S:UNIX_SV:*:*)
echo mips-dde-sysv${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
RM*:ReliantUNIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
RM*:SINIX-*:*:*)
echo mips-sni-sysv4
- exit 0 ;;
+ exit ;;
*:SINIX-*:*:*)
if uname -p 2>/dev/null >/dev/null ; then
UNAME_MACHINE=`(uname -p) 2>/dev/null`
else
echo ns32k-sni-sysv
fi
- exit 0 ;;
+ exit ;;
PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
# says <Richard.M.Bartel@ccMail.Census.GOV>
echo i586-unisys-sysv4
- exit 0 ;;
+ exit ;;
*:UNIX_System_V:4*:FTX*)
# From Gerald Hewes <hewes@openmarket.com>.
# How about differentiating between stratus architectures? -djm
echo hppa1.1-stratus-sysv4
- exit 0 ;;
+ exit ;;
*:*:*:FTX*)
# From seanf@swdc.stratus.com.
echo i860-stratus-sysv4
- exit 0 ;;
+ exit ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit ;;
*:VOS:*:*)
# From Paul.Green@stratus.com.
echo hppa1.1-stratus-vos
- exit 0 ;;
+ exit ;;
mc68*:A/UX:*:*)
echo m68k-apple-aux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
news*:NEWS-OS:6*:*)
echo mips-sony-newsos6
- exit 0 ;;
+ exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
echo mips-nec-sysv${UNAME_RELEASE}
else
echo mips-unknown-sysv${UNAME_RELEASE}
fi
- exit 0 ;;
+ exit ;;
BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
echo powerpc-be-beos
- exit 0 ;;
+ exit ;;
BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
echo powerpc-apple-beos
- exit 0 ;;
+ exit ;;
BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
echo i586-pc-beos
- exit 0 ;;
+ exit ;;
SX-4:SUPER-UX:*:*)
echo sx4-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-5:SUPER-UX:*:*)
echo sx5-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
SX-6:SUPER-UX:*:*)
echo sx6-nec-superux${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
Power*:Rhapsody:*:*)
echo powerpc-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Rhapsody:*:*)
echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Darwin:*:*)
- case `uname -p` in
- *86) UNAME_PROCESSOR=i686 ;;
- powerpc) UNAME_PROCESSOR=powerpc ;;
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
esac
echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:procnto*:*:* | *:QNX:[0123456789]*:*)
UNAME_PROCESSOR=`uname -p`
if test "$UNAME_PROCESSOR" = "x86"; then
UNAME_MACHINE=pc
fi
echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:QNX:*:4*)
echo i386-pc-qnx
- exit 0 ;;
+ exit ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit ;;
NSR-?:NONSTOP_KERNEL:*:*)
echo nsr-tandem-nsk${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:NonStop-UX:*:*)
echo mips-compaq-nonstopux
- exit 0 ;;
+ exit ;;
BS2000:POSIX*:*:*)
echo bs2000-siemens-sysv
- exit 0 ;;
+ exit ;;
DS/*:UNIX_System_V:*:*)
echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
- exit 0 ;;
+ exit ;;
*:Plan9:*:*)
# "uname -m" is not consistent, so use $cputype instead. 386
# is converted to i386 for consistency with other x86
UNAME_MACHINE="$cputype"
fi
echo ${UNAME_MACHINE}-unknown-plan9
- exit 0 ;;
+ exit ;;
*:TOPS-10:*:*)
echo pdp10-unknown-tops10
- exit 0 ;;
+ exit ;;
*:TENEX:*:*)
echo pdp10-unknown-tenex
- exit 0 ;;
+ exit ;;
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
echo pdp10-dec-tops20
- exit 0 ;;
+ exit ;;
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
echo pdp10-xkl-tops20
- exit 0 ;;
+ exit ;;
*:TOPS-20:*:*)
echo pdp10-unknown-tops20
- exit 0 ;;
+ exit ;;
*:ITS:*:*)
echo pdp10-unknown-its
- exit 0 ;;
+ exit ;;
SEI:*:*:SEIUX)
- echo mips-sei-seiux${UNAME_RELEASE}
- exit 0 ;;
- *:DRAGONFLY:*:*)
- echo ${UNAME_MACHINE}-unknown-dragonfly${UNAME_RELEASE}
- exit 0 ;;
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms ; exit ;;
+ I*) echo ia64-dec-vms ; exit ;;
+ V*) echo vax-dec-vms ; exit ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit ;;
+ i*86:skyos:*:*)
+ echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+ exit ;;
esac
#echo '(No uname command or uname output not recognized.)' 1>&2
#endif
#if defined (__arm) && defined (__acorn) && defined (__unix)
- printf ("arm-acorn-riscix"); exit (0);
+ printf ("arm-acorn-riscix\n"); exit (0);
#endif
#if defined (hp300) && !defined (hpux)
}
EOF
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+ { echo "$SYSTEM_NAME"; exit; }
# Apollos put the system type in the environment.
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
# Convex versions that predate uname can use getsysinfo(1)
case `getsysinfo -f cpu_type` in
c1*)
echo c1-convex-bsd
- exit 0 ;;
+ exit ;;
c2*)
if getsysinfo -f scalar_acc
then echo c32-convex-bsd
else echo c2-convex-bsd
fi
- exit 0 ;;
+ exit ;;
c34*)
echo c34-convex-bsd
- exit 0 ;;
+ exit ;;
c38*)
echo c38-convex-bsd
- exit 0 ;;
+ exit ;;
c4*)
echo c4-convex-bsd
- exit 0 ;;
+ exit ;;
esac
fi
the operating system you are using. It is advised that you
download the most up to date version of the config scripts from
- ftp://ftp.gnu.org/pub/gnu/config/
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
If the version you run ($0) is already up to date, please
send the following data and any information you think might be
#! /bin/sh
# Configuration validation subroutine script.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-# 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
-timestamp='2004-01-05'
+timestamp='2005-07-08'
# This file is (in principle) common to ALL GNU software.
# The presence of a machine in this file suggests that SOME GNU software
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+
# Please send patches to <config-patches@gnu.org>. Submit a context
# diff and a properly formatted ChangeLog entry.
#
version="\
GNU config.sub ($timestamp)
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
- echo "$timestamp" ; exit 0 ;;
+ echo "$timestamp" ; exit ;;
--version | -v )
- echo "$version" ; exit 0 ;;
+ echo "$version" ; exit ;;
--help | --h* | -h )
- echo "$usage"; exit 0 ;;
+ echo "$usage"; exit ;;
-- ) # Stop option processing
shift; break ;;
- ) # Use stdin as input.
*local*)
# First pass through any local machine types.
echo $1
- exit 0;;
+ exit ;;
* )
break ;;
-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
- -apple | -axis)
+ -apple | -axis | -knuth | -cray)
os=
basic_machine=$1
;;
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
| am33_2.0 \
| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | bfin \
| c4x | clipper \
| d10v | d30v | dlx | dsp16xx \
| fr30 | frv \
| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| i370 | i860 | i960 | ia64 \
| ip2k | iq2000 \
- | m32r | m68000 | m68k | m88k | mcore \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64el \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa64 | mipsisa64el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipstx39 | mipstx39el \
| mn10200 | mn10300 \
+ | ms1 \
| msp430 \
| ns16k | ns32k \
- | openrisc | or32 \
+ | or32 \
| pdp10 | pdp11 | pj | pjl \
| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
| pyramid \
- | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
| sh64 | sh64le \
- | sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
+ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b \
| strongarm \
| tahoe | thumb | tic4x | tic80 | tron \
| v850 | v850e \
| we32k \
- | x86 | xscale | xstormy16 | xtensa \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
| z8k)
basic_machine=$basic_machine-unknown
;;
+ m32c)
+ basic_machine=$basic_machine-unknown
+ ;;
m6811 | m68hc11 | m6812 | m68hc12)
# Motorola 68HC11/12.
basic_machine=$basic_machine-unknown
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
- basic_machine=$basic_machine-pc
- ;;
+ basic_machine=$basic_machine-pc
+ ;;
# Object if more than one company name word.
*-*-*)
echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
| arm-* | armbe-* | armle-* | armeb-* | armv*-* \
| avr-* \
- | bs2000-* \
+ | bfin-* | bs2000-* \
| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
- | clipper-* | cydra-* \
+ | clipper-* | craynv-* | cydra-* \
| d10v-* | d30v-* | dlx-* \
| elxsi-* \
| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
| i*86-* | i860-* | i960-* | ia64-* \
| ip2k-* | iq2000-* \
- | m32r-* \
+ | m32r-* | m32rle-* \
| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
- | m88110-* | m88k-* | mcore-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
| mips16-* \
| mips64-* | mips64el-* \
| mips64vr4100-* | mips64vr4100el-* \
| mips64vr4300-* | mips64vr4300el-* \
| mips64vr5000-* | mips64vr5000el-* \
+ | mips64vr5900-* | mips64vr5900el-* \
| mipsisa32-* | mipsisa32el-* \
| mipsisa32r2-* | mipsisa32r2el-* \
| mipsisa64-* | mipsisa64el-* \
| mipsisa64sb1-* | mipsisa64sb1el-* \
| mipsisa64sr71k-* | mipsisa64sr71kel-* \
| mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | ms1-* \
| msp430-* \
- | none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
| orion-* \
| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
| pyramid-* \
| romp-* | rs6000-* \
- | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
- | sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
- | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
| tahoe-* | thumb-* \
| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
| tron-* \
| v850-* | v850e-* | vax-* \
| we32k-* \
- | x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
- | xtensa-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
| ymp-* \
| z8k-*)
;;
+ m32c-*)
+ ;;
# Recognize the various machine names and aliases which stand
# for a CPU type and a company and sometimes even an OS.
386bsd)
basic_machine=a29k-amd
os=-udi
;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
adobe68k)
basic_machine=m68010-adobe
os=-scout
basic_machine=j90-cray
os=-unicos
;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
+ ;;
crds | unos)
basic_machine=m68k-crds
;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
cris | cris-* | etrax*)
basic_machine=cris-axis
;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
da30 | da30-*)
basic_machine=m68k-da30
;;
basic_machine=m88k-motorola
os=-sysv3
;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
dpx20 | dpx20-*)
basic_machine=rs6000-bull
os=-bosx
mips3*)
basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
;;
- mmix*)
- basic_machine=mmix-knuth
- os=-mmixware
- ;;
monitor)
basic_machine=m68k-rom68k
os=-coff
np1)
basic_machine=np1-gould
;;
- nv1)
- basic_machine=nv1-cray
- os=-unicosmp
- ;;
nsr-tandem)
basic_machine=nsr-tandem
;;
basic_machine=hppa1.1-oki
os=-proelf
;;
- or32 | or32-*)
+ openrisc | openrisc-*)
basic_machine=or32-unknown
- os=-coff
;;
os400)
basic_machine=powerpc-ibm
basic_machine=hppa1.1-winbond
os=-proelf
;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
xps | xps100)
basic_machine=xps100-honeywell
;;
romp)
basic_machine=romp-ibm
;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
rs6000)
basic_machine=rs6000-ibm
;;
we32k)
basic_machine=we32k-att
;;
- sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
basic_machine=sh-unknown
;;
- sh64)
- basic_machine=sh64-unknown
- ;;
- sparc | sparcv9 | sparcv9b)
+ sparc | sparcv8 | sparcv9 | sparcv9b)
basic_machine=sparc-sun
;;
cydra)
if [ x"$os" != x"" ]
then
case $os in
- # First match some system type aliases
- # that might get confused with valid system types.
+ # First match some system type aliases
+ # that might get confused with valid system types.
# -solaris* is a basic system type, with this one exception.
-solaris1 | -solaris1.*)
os=`echo $os | sed -e 's|solaris1|sunos4|'`
| -aos* \
| -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
| -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
- | -hiux* | -386bsd* | -knetbsd* | -netbsd* | -openbsd* | -kfreebsd* | -freebsd* | -riscix* \
- | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
| -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
| -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
| -chorusos* | -chorusrdb* \
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
| -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
| -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
- | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+ | -skyos* | -haiku*)
# Remember, each alternative MUST END IN *, to match a version number.
;;
-qnx*)
os=`echo $os | sed -e 's|nto|nto-qnx|'`
;;
-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
- | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
| -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
;;
-mac*)
-opened*)
os=-openedition
;;
- -os400*)
+ -os400*)
os=-os400
;;
-wince*)
-sinix*)
os=-sysv4
;;
- -tpf*)
+ -tpf*)
os=-tpf
;;
-triton*)
-kaos*)
os=-kaos
;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
-none)
;;
*)
arm*-semi)
os=-aout
;;
- c4x-* | tic4x-*)
- os=-coff
- ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
# This must come before the *-dec entry.
pdp10-*)
os=-tops20
*-be)
os=-beos
;;
+ *-haiku)
+ os=-haiku
+ ;;
*-ibm)
os=-aix
;;
+ *-knuth)
+ os=-mmixware
+ ;;
*-wec)
os=-proelf
;;
esac
echo $basic_machine$os
-exit 0
+exit
# Local variables:
# eval: (add-hook 'write-file-hooks 'time-stamp)
#! /bin/sh
-# From configure.in Revision: 1.312 .
+# From configure.in Revision: 1.351 .
# Guess values for system-dependent variables and create Makefiles.
# Generated by Autoconf 2.52.20030208.
#
--with-install-prefix prefixes actual install-location ($DESTDIR)
Build-Tools Needed to Compile Temporary Applications for Cross-compiling:
--with-build-cc=XXX the build C compiler ($BUILD_CC)
- --with-build-cflags=XXX the build C compiler-flags
- --with-build-cppflags=XXX the build C preprocessor-flags
- --with-build-ldflags=XXX the build linker-flags
- --with-build-libs=XXX the build libraries
+ --with-build-cpp=XXX the build C preprocessor ($BUILD_CPP)
+ --with-build-cflags=XXX the build C compiler-flags ($BUILD_CFLAGS)
+ --with-build-cppflags=XXX the build C preprocessor-flags ($BUILD_CPPFLAGS)
+ --with-build-ldflags=XXX the build linker-flags ($BUILD_LDFLAGS)
+ --with-build-libs=XXX the build libraries ($(BUILD_LIBS)
Options to Specify the Libraries Built/Used:
--with-libtool generate libraries with libtool
--with-shared generate shared-libraries
--with-debug generate debug-libraries (default)
--with-profile generate profile-libraries
--with-termlib generate separate terminfo library
- --with-dbmalloc test: use Conor Cahill's dbmalloc library
- --with-dmalloc test: use Gray Watson's dmalloc library
+ --with-dbmalloc use Conor Cahill's dbmalloc library
+ --with-dmalloc use Gray Watson's dmalloc library
--with-gpm use Alessandro Rubini's GPM library
--with-sysmouse use sysmouse (FreeBSD console)
--enable-rpath use rpath option when generating shared libraries
--disable-database do not use terminfo, only fallbacks/termcap
--with-database=XXX specify terminfo source to install
--with-fallbacks=XXX specify list of fallback terminal descriptions
+ --without-xterm-new specify if xterm terminfo should be old version
--with-terminfo-dirs=XXX specify list of terminfo directories (default: DATADIR/terminfo)
--with-default-terminfo-dir=DIR default terminfo directory (default: DATADIR/terminfo)
--disable-big-core assume machine has little memory
--enable-getcap fast termcap load, no xrefs to terminfo
--enable-getcap-cache cache translated termcaps in ~/.terminfo
--disable-home-terminfo drop ~/.terminfo from terminfo search-path
+ --disable-root-environ limit environment when running as root
--enable-symlinks make tic use symbolic links not hard links
--enable-broken_linker compile with broken-linker support code
+ --enable-widec compile with wide-char/UTF-8 code
+ --disable-lp64 allow chtype to be long (ignore _LP64)
+ --disable-largefile omit support for large files
--with-bool=TYPE override fallback type of bool variable
+ --with-caps=alt compile with alternate Caps file
+ --with-chtype=TYPE override type of chtype
--with-ospeed=TYPE override type of ospeed variable
+ --with-mmask-t=TYPE override type of mmask_t
--enable-bsdpad recognize BSD-style prefix padding
--with-rcs-ids compile-in RCS identifiers
Options to Specify How Manpages are Installed:
Development Code:
--with-develop enable all development options
--enable-hard-tabs compile with hard-tabs code
- --disable-root-environ limit environment when running as root
--enable-xmc-glitch compile with limited support for xmc
Experimental Code:
--disable-assumed-color do not assume anything about default-colors
--disable-hashmap compile without hashmap scrolling-optimization
--enable-colorfgbg compile with $COLORFGBG code
+ --enable-ext-colors compile for experimental 256-color support
+ --enable-ext-mouse compile for experimental mouse-encoding
--enable-safe-sprintf compile with experimental safe-sprintf code
--disable-scroll-hints compile without scroll-hints code
- --enable-widec compile with experimental wide-char/UTF-8 code
- --with-caps=alt compile with experimental alternate Caps file
Testing/development Options:
--enable-echo build: display "compiling" commands (default)
--enable-warnings build: turn on GCC compiler warnings
fi
for ac_site_file in $CONFIG_SITE; do
if test -r "$ac_site_file"; then
- { echo "$as_me:939: loading site script $ac_site_file" >&5
+ { echo "$as_me:947: loading site script $ac_site_file" >&5
echo "$as_me: loading site script $ac_site_file" >&6;}
cat "$ac_site_file" >&5
. "$ac_site_file"
# Some versions of bash will fail to source /dev/null (special
# files actually), so we avoid doing that.
if test -f "$cache_file"; then
- { echo "$as_me:950: loading cache $cache_file" >&5
+ { echo "$as_me:958: loading cache $cache_file" >&5
echo "$as_me: loading cache $cache_file" >&6;}
case $cache_file in
[\\/]* | ?:[\\/]* ) . $cache_file;;
esac
fi
else
- { echo "$as_me:958: creating cache $cache_file" >&5
+ { echo "$as_me:966: creating cache $cache_file" >&5
echo "$as_me: creating cache $cache_file" >&6;}
>$cache_file
fi
eval ac_new_val="\$ac_env_${ac_var}_value"
case $ac_old_set,$ac_new_set in
set,)
- { echo "$as_me:974: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+ { echo "$as_me:982: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
ac_cache_corrupted=: ;;
,set)
- { echo "$as_me:978: error: \`$ac_var' was not set in the previous run" >&5
+ { echo "$as_me:986: error: \`$ac_var' was not set in the previous run" >&5
echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
ac_cache_corrupted=: ;;
,);;
*)
if test "x$ac_old_val" != "x$ac_new_val"; then
- { echo "$as_me:984: error: \`$ac_var' has changed since the previous run:" >&5
+ { echo "$as_me:992: error: \`$ac_var' has changed since the previous run:" >&5
echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
- { echo "$as_me:986: former value: $ac_old_val" >&5
+ { echo "$as_me:994: former value: $ac_old_val" >&5
echo "$as_me: former value: $ac_old_val" >&2;}
- { echo "$as_me:988: current value: $ac_new_val" >&5
+ { echo "$as_me:996: current value: $ac_new_val" >&5
echo "$as_me: current value: $ac_new_val" >&2;}
ac_cache_corrupted=:
fi;;
fi
done
if $ac_cache_corrupted; then
- { echo "$as_me:1007: error: changes in the environment can compromise the build" >&5
+ { echo "$as_me:1015: error: changes in the environment can compromise the build" >&5
echo "$as_me: error: changes in the environment can compromise the build" >&2;}
- { { echo "$as_me:1009: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+ { { echo "$as_me:1017: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
{ (exit 1); exit 1; }; }
fi
echo "#! $SHELL" >conftest.sh
echo "exit 0" >>conftest.sh
chmod +x conftest.sh
-if { (echo "$as_me:1029: PATH=\".;.\"; conftest.sh") >&5
+if { (echo "$as_me:1037: PATH=\".;.\"; conftest.sh") >&5
(PATH=".;."; conftest.sh) 2>&5
ac_status=$?
- echo "$as_me:1032: \$? = $ac_status" >&5
+ echo "$as_me:1040: \$? = $ac_status" >&5
(exit $ac_status); }; then
ac_path_separator=';'
else
cf_cv_abi_version=${NCURSES_MAJOR}
cf_cv_rel_version=${NCURSES_MAJOR}.${NCURSES_MINOR}
cf_cv_timestamp=`date`
-echo "$as_me:1049: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
+echo "$as_me:1057: result: Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&5
echo "${ECHO_T}Configuring NCURSES $cf_cv_rel_version ABI $cf_cv_abi_version ($cf_cv_timestamp)" >&6
test -z "$cf_cv_rel_version" && cf_cv_rel_version=0.0
# Check whether --with-rel-version or --without-rel-version was given.
if test "${with_rel_version+set}" = set; then
withval="$with_rel_version"
- { echo "$as_me:1057: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
+ { echo "$as_me:1065: WARNING: overriding release version $cf_cv_rel_version to $withval" >&5
echo "$as_me: WARNING: overriding release version $cf_cv_rel_version to $withval" >&2;}
cf_cv_rel_version=$withval
fi;
[0-9]*) #(vi
;;
*)
- { { echo "$as_me:1070: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
+ { { echo "$as_me:1078: error: Release major-version is not a number: $NCURSES_MAJOR" >&5
echo "$as_me: error: Release major-version is not a number: $NCURSES_MAJOR" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
- { { echo "$as_me:1076: error: Release major-version value is empty" >&5
+ { { echo "$as_me:1084: error: Release major-version value is empty" >&5
echo "$as_me: error: Release major-version value is empty" >&2;}
{ (exit 1); exit 1; }; }
fi
[0-9]*) #(vi
;;
*)
- { { echo "$as_me:1086: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
+ { { echo "$as_me:1094: error: Release minor-version is not a number: $NCURSES_MINOR" >&5
echo "$as_me: error: Release minor-version is not a number: $NCURSES_MINOR" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
- { { echo "$as_me:1092: error: Release minor-version value is empty" >&5
+ { { echo "$as_me:1100: error: Release minor-version value is empty" >&5
echo "$as_me: error: Release minor-version value is empty" >&2;}
{ (exit 1); exit 1; }; }
fi
# Check whether --with-abi-version or --without-abi-version was given.
if test "${with_abi_version+set}" = set; then
withval="$with_abi_version"
- { echo "$as_me:1102: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
+ { echo "$as_me:1110: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&5
echo "$as_me: WARNING: overriding ABI version $cf_cv_abi_version to $withval" >&2;}
cf_cv_abi_version=$withval
fi;
[0-9]*) #(vi
;;
*)
- { { echo "$as_me:1112: error: ABI version is not a number: $cf_cv_abi_version" >&5
+ { { echo "$as_me:1120: error: ABI version is not a number: $cf_cv_abi_version" >&5
echo "$as_me: error: ABI version is not a number: $cf_cv_abi_version" >&2;}
{ (exit 1); exit 1; }; }
;;
esac
else
- { { echo "$as_me:1118: error: ABI version value is empty" >&5
+ { { echo "$as_me:1126: error: ABI version value is empty" >&5
echo "$as_me: error: ABI version value is empty" >&2;}
{ (exit 1); exit 1; }; }
fi
fi
done
if test -z "$ac_aux_dir"; then
- { { echo "$as_me:1140: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+ { { echo "$as_me:1148: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
{ (exit 1); exit 1; }; }
fi
# Make sure we can run config.sub.
$ac_config_sub sun4 >/dev/null 2>&1 ||
- { { echo "$as_me:1150: error: cannot run $ac_config_sub" >&5
+ { { echo "$as_me:1158: error: cannot run $ac_config_sub" >&5
echo "$as_me: error: cannot run $ac_config_sub" >&2;}
{ (exit 1); exit 1; }; }
-echo "$as_me:1154: checking build system type" >&5
+echo "$as_me:1162: checking build system type" >&5
echo $ECHO_N "checking build system type... $ECHO_C" >&6
if test "${ac_cv_build+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_cv_build_alias" &&
ac_cv_build_alias=`$ac_config_guess`
test -z "$ac_cv_build_alias" &&
- { { echo "$as_me:1163: error: cannot guess build type; you must specify one" >&5
+ { { echo "$as_me:1171: error: cannot guess build type; you must specify one" >&5
echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
{ (exit 1); exit 1; }; }
ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
- { { echo "$as_me:1167: error: $ac_config_sub $ac_cv_build_alias failed." >&5
+ { { echo "$as_me:1175: error: $ac_config_sub $ac_cv_build_alias failed." >&5
echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed." >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1172: result: $ac_cv_build" >&5
+echo "$as_me:1180: result: $ac_cv_build" >&5
echo "${ECHO_T}$ac_cv_build" >&6
build=$ac_cv_build
build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-echo "$as_me:1179: checking host system type" >&5
+echo "$as_me:1187: checking host system type" >&5
echo $ECHO_N "checking host system type... $ECHO_C" >&6
if test "${ac_cv_host+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_cv_host_alias" &&
ac_cv_host_alias=$ac_cv_build_alias
ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
- { { echo "$as_me:1188: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+ { { echo "$as_me:1196: error: $ac_config_sub $ac_cv_host_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1193: result: $ac_cv_host" >&5
+echo "$as_me:1201: result: $ac_cv_host" >&5
echo "${ECHO_T}$ac_cv_host" >&6
host=$ac_cv_host
host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
-if test -f $srcdir/config.guess ; then
- echo "$as_me:1201: checking target system type" >&5
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
+ echo "$as_me:1209: checking target system type" >&5
echo $ECHO_N "checking target system type... $ECHO_C" >&6
if test "${ac_cv_target+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test "x$ac_cv_target_alias" = "x" &&
ac_cv_target_alias=$ac_cv_host_alias
ac_cv_target=`$ac_config_sub $ac_cv_target_alias` ||
- { { echo "$as_me:1210: error: $ac_config_sub $ac_cv_target_alias failed" >&5
+ { { echo "$as_me:1218: error: $ac_config_sub $ac_cv_target_alias failed" >&5
echo "$as_me: error: $ac_config_sub $ac_cv_target_alias failed" >&2;}
{ (exit 1); exit 1; }; }
fi
-echo "$as_me:1215: result: $ac_cv_target" >&5
+echo "$as_me:1223: result: $ac_cv_target" >&5
echo "${ECHO_T}$ac_cv_target" >&6
target=$ac_cv_target
target_cpu=`echo $ac_cv_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
fi
test -z "$system_name" && system_name="$cf_cv_system_name"
-test -n "$cf_cv_system_name" && echo "$as_me:1246: result: Configuring for $cf_cv_system_name" >&5
+test -n "$cf_cv_system_name" && echo "$as_me:1254: result: Configuring for $cf_cv_system_name" >&5
echo "${ECHO_T}Configuring for $cf_cv_system_name" >&6
if test ".$system_name" != ".$cf_cv_system_name" ; then
- echo "$as_me:1250: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
+ echo "$as_me:1258: result: Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&5
echo "${ECHO_T}Cached system name ($system_name) does not agree with actual ($cf_cv_system_name)" >&6
- { { echo "$as_me:1252: error: \"Please remove config.cache and try again.\"" >&5
+ { { echo "$as_me:1260: error: \"Please remove config.cache and try again.\"" >&5
echo "$as_me: error: \"Please remove config.cache and try again.\"" >&2;}
{ (exit 1); exit 1; }; }
fi
# Check whether --with-system-type or --without-system-type was given.
if test "${with_system_type+set}" = set; then
withval="$with_system_type"
- { echo "$as_me:1260: WARNING: overriding system type to $withval" >&5
+ { echo "$as_me:1268: WARNING: overriding system type to $withval" >&5
echo "$as_me: WARNING: overriding system type to $withval" >&2;}
cf_cv_system_name=$withval
fi;
### Default install-location
-echo "$as_me:1270: checking for prefix" >&5
+echo "$as_me:1278: checking for prefix" >&5
echo $ECHO_N "checking for prefix... $ECHO_C" >&6
if test "x$prefix" = "xNONE" ; then
case "$cf_cv_system_name" in
# non-vendor systems don't have a conflict
- openbsd*|netbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
+ openbsd*|freebsd*|linux*|cygwin*|k*bsd*-gnu)
prefix=/usr
;;
*) prefix=$ac_default_prefix
;;
esac
fi
-echo "$as_me:1282: result: $prefix" >&5
+echo "$as_me:1290: result: $prefix" >&5
echo "${ECHO_T}$prefix" >&6
if test "x$prefix" = "xNONE" ; then
-echo "$as_me:1286: checking for default include-directory" >&5
+echo "$as_me:1294: checking for default include-directory" >&5
echo $ECHO_N "checking for default include-directory... $ECHO_C" >&6
test -n "$verbose" && echo 1>&6
for cf_symbol in \
fi
test -n "$verbose" && echo " tested $cf_dir" 1>&6
done
-echo "$as_me:1309: result: $includedir" >&5
+echo "$as_me:1317: result: $includedir" >&5
echo "${ECHO_T}$includedir" >&6
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
set dummy ${ac_tool_prefix}gcc; ac_word=$2
-echo "$as_me:1322: checking for $ac_word" >&5
+echo "$as_me:1330: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="${ac_tool_prefix}gcc"
-echo "$as_me:1337: found $ac_dir/$ac_word" >&5
+echo "$as_me:1345: found $ac_dir/$ac_word" >&5
break
done
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1345: result: $CC" >&5
+ echo "$as_me:1353: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1348: result: no" >&5
+ echo "$as_me:1356: result: no" >&5
echo "${ECHO_T}no" >&6
fi
ac_ct_CC=$CC
# Extract the first word of "gcc", so it can be a program name with args.
set dummy gcc; ac_word=$2
-echo "$as_me:1357: checking for $ac_word" >&5
+echo "$as_me:1365: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="gcc"
-echo "$as_me:1372: found $ac_dir/$ac_word" >&5
+echo "$as_me:1380: found $ac_dir/$ac_word" >&5
break
done
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1380: result: $ac_ct_CC" >&5
+ echo "$as_me:1388: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1383: result: no" >&5
+ echo "$as_me:1391: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
set dummy ${ac_tool_prefix}cc; ac_word=$2
-echo "$as_me:1396: checking for $ac_word" >&5
+echo "$as_me:1404: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="${ac_tool_prefix}cc"
-echo "$as_me:1411: found $ac_dir/$ac_word" >&5
+echo "$as_me:1419: found $ac_dir/$ac_word" >&5
break
done
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1419: result: $CC" >&5
+ echo "$as_me:1427: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1422: result: no" >&5
+ echo "$as_me:1430: result: no" >&5
echo "${ECHO_T}no" >&6
fi
ac_ct_CC=$CC
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-echo "$as_me:1431: checking for $ac_word" >&5
+echo "$as_me:1439: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="cc"
-echo "$as_me:1446: found $ac_dir/$ac_word" >&5
+echo "$as_me:1454: found $ac_dir/$ac_word" >&5
break
done
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1454: result: $ac_ct_CC" >&5
+ echo "$as_me:1462: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1457: result: no" >&5
+ echo "$as_me:1465: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test -z "$CC"; then
# Extract the first word of "cc", so it can be a program name with args.
set dummy cc; ac_word=$2
-echo "$as_me:1470: checking for $ac_word" >&5
+echo "$as_me:1478: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
continue
fi
ac_cv_prog_CC="cc"
-echo "$as_me:1490: found $ac_dir/$ac_word" >&5
+echo "$as_me:1498: found $ac_dir/$ac_word" >&5
break
done
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1512: result: $CC" >&5
+ echo "$as_me:1520: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1515: result: no" >&5
+ echo "$as_me:1523: result: no" >&5
echo "${ECHO_T}no" >&6
fi
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:1526: checking for $ac_word" >&5
+echo "$as_me:1534: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-echo "$as_me:1541: found $ac_dir/$ac_word" >&5
+echo "$as_me:1549: found $ac_dir/$ac_word" >&5
break
done
fi
CC=$ac_cv_prog_CC
if test -n "$CC"; then
- echo "$as_me:1549: result: $CC" >&5
+ echo "$as_me:1557: result: $CC" >&5
echo "${ECHO_T}$CC" >&6
else
- echo "$as_me:1552: result: no" >&5
+ echo "$as_me:1560: result: no" >&5
echo "${ECHO_T}no" >&6
fi
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:1565: checking for $ac_word" >&5
+echo "$as_me:1573: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CC="$ac_prog"
-echo "$as_me:1580: found $ac_dir/$ac_word" >&5
+echo "$as_me:1588: found $ac_dir/$ac_word" >&5
break
done
fi
ac_ct_CC=$ac_cv_prog_ac_ct_CC
if test -n "$ac_ct_CC"; then
- echo "$as_me:1588: result: $ac_ct_CC" >&5
+ echo "$as_me:1596: result: $ac_ct_CC" >&5
echo "${ECHO_T}$ac_ct_CC" >&6
else
- echo "$as_me:1591: result: no" >&5
+ echo "$as_me:1599: result: no" >&5
echo "${ECHO_T}no" >&6
fi
fi
-test -z "$CC" && { { echo "$as_me:1603: error: no acceptable cc found in \$PATH" >&5
+test -z "$CC" && { { echo "$as_me:1611: error: no acceptable cc found in \$PATH" >&5
echo "$as_me: error: no acceptable cc found in \$PATH" >&2;}
{ (exit 1); exit 1; }; }
# Provide some information about the compiler.
-echo "$as_me:1608:" \
+echo "$as_me:1616:" \
"checking for C compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:1611: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1619: \"$ac_compiler --version </dev/null >&5\"") >&5
(eval $ac_compiler --version </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1614: \$? = $ac_status" >&5
+ echo "$as_me:1622: \$? = $ac_status" >&5
(exit $ac_status); }
-{ (eval echo "$as_me:1616: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1624: \"$ac_compiler -v </dev/null >&5\"") >&5
(eval $ac_compiler -v </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1619: \$? = $ac_status" >&5
+ echo "$as_me:1627: \$? = $ac_status" >&5
(exit $ac_status); }
-{ (eval echo "$as_me:1621: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:1629: \"$ac_compiler -V </dev/null >&5\"") >&5
(eval $ac_compiler -V </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:1624: \$? = $ac_status" >&5
+ echo "$as_me:1632: \$? = $ac_status" >&5
(exit $ac_status); }
cat >conftest.$ac_ext <<_ACEOF
-#line 1628 "configure"
+#line 1636 "configure"
#include "confdefs.h"
int
# Try to create an executable without -o first, disregard a.out.
# It will help us diagnose broken compilers, and finding out an intuition
# of exeext.
-echo "$as_me:1644: checking for C compiler default output" >&5
+echo "$as_me:1652: checking for C compiler default output" >&5
echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:1647: \"$ac_link_default\"") >&5
+if { (eval echo "$as_me:1655: \"$ac_link_default\"") >&5
(eval $ac_link_default) 2>&5
ac_status=$?
- echo "$as_me:1650: \$? = $ac_status" >&5
+ echo "$as_me:1658: \$? = $ac_status" >&5
(exit $ac_status); }; then
# Find the output, starting from the most likely. This scheme is
# not robust to junk in `.', hence go to wildcards (a.*) only as a last
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-{ { echo "$as_me:1673: error: C compiler cannot create executables" >&5
+{ { echo "$as_me:1681: error: C compiler cannot create executables" >&5
echo "$as_me: error: C compiler cannot create executables" >&2;}
{ (exit 77); exit 77; }; }
fi
ac_exeext=$ac_cv_exeext
-echo "$as_me:1679: result: $ac_file" >&5
+echo "$as_me:1687: result: $ac_file" >&5
echo "${ECHO_T}$ac_file" >&6
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1684: checking whether the C compiler works" >&5
+echo "$as_me:1692: checking whether the C compiler works" >&5
echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
# If not cross compiling, check that we can run a simple program.
if test "$cross_compiling" != yes; then
if { ac_try='./$ac_file'
- { (eval echo "$as_me:1690: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1698: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1693: \$? = $ac_status" >&5
+ echo "$as_me:1701: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cross_compiling=no
else
if test "$cross_compiling" = maybe; then
cross_compiling=yes
else
- { { echo "$as_me:1700: error: cannot run C compiled programs.
+ { { echo "$as_me:1708: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&5
echo "$as_me: error: cannot run C compiled programs.
If you meant to cross compile, use \`--host'." >&2;}
fi
fi
fi
-echo "$as_me:1708: result: yes" >&5
+echo "$as_me:1716: result: yes" >&5
echo "${ECHO_T}yes" >&6
rm -f a.out a.exe conftest$ac_cv_exeext
ac_clean_files=$ac_clean_files_save
# Check the compiler produces executables we can run. If not, either
# the compiler is broken, or we cross compile.
-echo "$as_me:1715: checking whether we are cross compiling" >&5
+echo "$as_me:1723: checking whether we are cross compiling" >&5
echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:1717: result: $cross_compiling" >&5
+echo "$as_me:1725: result: $cross_compiling" >&5
echo "${ECHO_T}$cross_compiling" >&6
-echo "$as_me:1720: checking for executable suffix" >&5
+echo "$as_me:1728: checking for executable suffix" >&5
echo $ECHO_N "checking for executable suffix... $ECHO_C" >&6
-if { (eval echo "$as_me:1722: \"$ac_link\"") >&5
+if { (eval echo "$as_me:1730: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:1725: \$? = $ac_status" >&5
+ echo "$as_me:1733: \$? = $ac_status" >&5
(exit $ac_status); }; then
# If both `conftest.exe' and `conftest' are `present' (well, observable)
# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
esac
done
else
- { { echo "$as_me:1741: error: cannot compute EXEEXT: cannot compile and link" >&5
+ { { echo "$as_me:1749: error: cannot compute EXEEXT: cannot compile and link" >&5
echo "$as_me: error: cannot compute EXEEXT: cannot compile and link" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f conftest$ac_cv_exeext
-echo "$as_me:1747: result: $ac_cv_exeext" >&5
+echo "$as_me:1755: result: $ac_cv_exeext" >&5
echo "${ECHO_T}$ac_cv_exeext" >&6
rm -f conftest.$ac_ext
EXEEXT=$ac_cv_exeext
ac_exeext=$EXEEXT
-echo "$as_me:1753: checking for object suffix" >&5
+echo "$as_me:1761: checking for object suffix" >&5
echo $ECHO_N "checking for object suffix... $ECHO_C" >&6
if test "${ac_cv_objext+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 1759 "configure"
+#line 1767 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:1771: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1779: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1774: \$? = $ac_status" >&5
+ echo "$as_me:1782: \$? = $ac_status" >&5
(exit $ac_status); }; then
for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
case $ac_file in
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-{ { echo "$as_me:1786: error: cannot compute OBJEXT: cannot compile" >&5
+{ { echo "$as_me:1794: error: cannot compute OBJEXT: cannot compile" >&5
echo "$as_me: error: cannot compute OBJEXT: cannot compile" >&2;}
{ (exit 1); exit 1; }; }
fi
rm -f conftest.$ac_cv_objext conftest.$ac_ext
fi
-echo "$as_me:1793: result: $ac_cv_objext" >&5
+echo "$as_me:1801: result: $ac_cv_objext" >&5
echo "${ECHO_T}$ac_cv_objext" >&6
OBJEXT=$ac_cv_objext
ac_objext=$OBJEXT
-echo "$as_me:1797: checking whether we are using the GNU C compiler" >&5
+echo "$as_me:1805: checking whether we are using the GNU C compiler" >&5
echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
if test "${ac_cv_c_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 1803 "configure"
+#line 1811 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1818: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1826: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1821: \$? = $ac_status" >&5
+ echo "$as_me:1829: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1824: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1832: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1827: \$? = $ac_status" >&5
+ echo "$as_me:1835: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_compiler_gnu=yes
else
ac_cv_c_compiler_gnu=$ac_compiler_gnu
fi
-echo "$as_me:1839: result: $ac_cv_c_compiler_gnu" >&5
+echo "$as_me:1847: result: $ac_cv_c_compiler_gnu" >&5
echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
GCC=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CFLAGS=${CFLAGS+set}
ac_save_CFLAGS=$CFLAGS
CFLAGS="-g"
-echo "$as_me:1845: checking whether $CC accepts -g" >&5
+echo "$as_me:1853: checking whether $CC accepts -g" >&5
echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cc_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 1851 "configure"
+#line 1859 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1863: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1871: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1866: \$? = $ac_status" >&5
+ echo "$as_me:1874: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1869: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1877: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1872: \$? = $ac_status" >&5
+ echo "$as_me:1880: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_prog_cc_g=yes
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:1882: result: $ac_cv_prog_cc_g" >&5
+echo "$as_me:1890: result: $ac_cv_prog_cc_g" >&5
echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
if test "$ac_test_CFLAGS" = set; then
CFLAGS=$ac_save_CFLAGS
#endif
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1909: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1917: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1912: \$? = $ac_status" >&5
+ echo "$as_me:1920: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1915: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1923: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1918: \$? = $ac_status" >&5
+ echo "$as_me:1926: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
for ac_declaration in \
''\
'void exit (int);'
do
cat >conftest.$ac_ext <<_ACEOF
-#line 1930 "configure"
+#line 1938 "configure"
#include "confdefs.h"
#include <stdlib.h>
$ac_declaration
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1943: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1951: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1946: \$? = $ac_status" >&5
+ echo "$as_me:1954: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1949: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1957: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1952: \$? = $ac_status" >&5
+ echo "$as_me:1960: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
:
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
cat >conftest.$ac_ext <<_ACEOF
-#line 1962 "configure"
+#line 1970 "configure"
#include "confdefs.h"
$ac_declaration
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:1974: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:1982: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:1977: \$? = $ac_status" >&5
+ echo "$as_me:1985: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:1980: \"$ac_try\"") >&5
+ { (eval echo "$as_me:1988: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:1983: \$? = $ac_status" >&5
+ echo "$as_me:1991: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
break
else
GCC_VERSION=none
if test "$GCC" = yes ; then
- echo "$as_me:2012: checking version of $CC" >&5
+ echo "$as_me:2020: checking version of $CC" >&5
echo $ECHO_N "checking version of $CC... $ECHO_C" >&6
- GCC_VERSION="`${CC} --version|sed -e '2,$d' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ GCC_VERSION="`${CC} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
test -z "$GCC_VERSION" && GCC_VERSION=unknown
- echo "$as_me:2016: result: $GCC_VERSION" >&5
+ echo "$as_me:2024: result: $GCC_VERSION" >&5
echo "${ECHO_T}$GCC_VERSION" >&6
fi
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:2025: checking how to run the C preprocessor" >&5
+echo "$as_me:2033: checking how to run the C preprocessor" >&5
echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
# On Suns, sometimes $CPP names a directory.
if test -n "$CPP" && test -d "$CPP"; then
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line 2046 "configure"
+#line 2054 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2051: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2059: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2057: \$? = $ac_status" >&5
+ echo "$as_me:2065: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line 2080 "configure"
+#line 2088 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2084: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2092: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2090: \$? = $ac_status" >&5
+ echo "$as_me:2098: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
else
ac_cv_prog_CPP=$CPP
fi
-echo "$as_me:2127: result: $CPP" >&5
+echo "$as_me:2135: result: $CPP" >&5
echo "${ECHO_T}$CPP" >&6
ac_preproc_ok=false
for ac_c_preproc_warn_flag in '' yes
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line 2137 "configure"
+#line 2145 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:2142: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2150: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2148: \$? = $ac_status" >&5
+ echo "$as_me:2156: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line 2171 "configure"
+#line 2179 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:2175: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:2183: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:2181: \$? = $ac_status" >&5
+ echo "$as_me:2189: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:2209: error: C preprocessor \"$CPP\" fails sanity check" >&5
+ { { echo "$as_me:2217: error: C preprocessor \"$CPP\" fails sanity check" >&5
echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check" >&2;}
{ (exit 1); exit 1; }; }
fi
ac_compiler_gnu=$ac_cv_c_compiler_gnu
if test $ac_cv_c_compiler_gnu = yes; then
- echo "$as_me:2221: checking whether $CC needs -traditional" >&5
+ echo "$as_me:2229: checking whether $CC needs -traditional" >&5
echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6
if test "${ac_cv_prog_gcc_traditional+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
ac_pattern="Autoconf.*'x'"
cat >conftest.$ac_ext <<_ACEOF
-#line 2228 "configure"
+#line 2236 "configure"
#include "confdefs.h"
#include <sgtty.h>
int Autoconf = TIOCGETP;
if test $ac_cv_prog_gcc_traditional = no; then
cat >conftest.$ac_ext <<_ACEOF
-#line 2243 "configure"
+#line 2251 "configure"
#include "confdefs.h"
#include <termio.h>
int Autoconf = TCGETA;
fi
fi
-echo "$as_me:2256: result: $ac_cv_prog_gcc_traditional" >&5
+echo "$as_me:2264: result: $ac_cv_prog_gcc_traditional" >&5
echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6
if test $ac_cv_prog_gcc_traditional = yes; then
CC="$CC -traditional"
fi
fi
-echo "$as_me:2263: checking for POSIXized ISC" >&5
+echo "$as_me:2271: checking whether $CC understands -c and -o together" >&5
+echo $ECHO_N "checking whether $CC understands -c and -o together... $ECHO_C" >&6
+if test "${cf_cv_prog_CC_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat > conftest.$ac_ext <<CF_EOF
+#include <stdio.h>
+int main()
+{
+ return 0;
+}
+CF_EOF
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+if { (eval echo "$as_me:2287: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:2290: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ test -f conftest2.$ac_objext && { (eval echo "$as_me:2292: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:2295: \$? = $ac_status" >&5
+ (exit $ac_status); };
+then
+ eval cf_cv_prog_CC_c_o=yes
+else
+ eval cf_cv_prog_CC_c_o=no
+fi
+rm -f conftest*
+
+fi
+if test $cf_cv_prog_CC_c_o = yes; then
+ echo "$as_me:2306: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:2309: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+echo "$as_me:2313: checking for POSIXized ISC" >&5
echo $ECHO_N "checking for POSIXized ISC... $ECHO_C" >&6
if test -d /etc/conf/kconfig.d &&
grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
then
- echo "$as_me:2268: result: yes" >&5
+ echo "$as_me:2318: result: yes" >&5
echo "${ECHO_T}yes" >&6
ISC=yes # If later tests want to check for ISC.
CC="$CC -Xp"
fi
else
- echo "$as_me:2282: result: no" >&5
+ echo "$as_me:2332: result: no" >&5
echo "${ECHO_T}no" >&6
ISC=
fi
-echo "$as_me:2287: checking for ${CC-cc} option to accept ANSI C" >&5
+echo "$as_me:2337: checking for ${CC-cc} option to accept ANSI C" >&5
echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
if test "${cf_cv_ansi_cc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
-Xc
do
+cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
+cf_new_extra_cppflags=
+
for cf_add_cflags in $cf_arg
do
+case $cf_fix_cppflags in
+no)
case $cf_add_cflags in #(vi
-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
case "$CPPFLAGS" in
*$cf_add_cflags) #(vi
;;
cf_new_cflags="$cf_new_cflags $cf_add_cflags"
;;
esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
done
if test -n "$cf_new_cflags" ; then
CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
fi
+if test -n "$cf_new_extra_cppflags" ; then
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
cat >conftest.$ac_ext <<_ACEOF
-#line 2343 "configure"
+#line 2431 "configure"
#include "confdefs.h"
#ifndef CC_HAS_PROTOS
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2364: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2452: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2367: \$? = $ac_status" >&5
+ echo "$as_me:2455: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2370: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2458: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2373: \$? = $ac_status" >&5
+ echo "$as_me:2461: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_ansi_cc="$cf_arg"; break
else
CPPFLAGS="$cf_save_CPPFLAGS"
fi
-echo "$as_me:2386: result: $cf_cv_ansi_cc" >&5
+echo "$as_me:2474: result: $cf_cv_ansi_cc" >&5
echo "${ECHO_T}$cf_cv_ansi_cc" >&6
if test "$cf_cv_ansi_cc" != "no"; then
if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
+cf_new_extra_cppflags=
+
for cf_add_cflags in $cf_cv_ansi_cc
do
+case $cf_fix_cppflags in
+no)
case $cf_add_cflags in #(vi
-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
case "$CPPFLAGS" in
*$cf_add_cflags) #(vi
;;
cf_new_cflags="$cf_new_cflags $cf_add_cflags"
;;
esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
done
if test -n "$cf_new_cflags" ; then
CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
fi
+if test -n "$cf_new_extra_cppflags" ; then
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
else
cat >>confdefs.h <<\EOF
#define CC_HAS_PROTOS 1
fi
if test "$cf_cv_ansi_cc" = "no"; then
- { { echo "$as_me:2431: error: Your compiler does not appear to recognize prototypes.
+ { { echo "$as_me:2557: error: Your compiler does not appear to recognize prototypes.
You have the following choices:
a. adjust your compiler options
b. get an up-to-date compiler
*) LDPATH=$PATH:/sbin:/usr/sbin
# Extract the first word of "ldconfig", so it can be a program name with args.
set dummy ldconfig; ac_word=$2
-echo "$as_me:2471: checking for $ac_word" >&5
+echo "$as_me:2597: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_LDCONFIG+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_LDCONFIG="$ac_dir/$ac_word"
- echo "$as_me:2488: found $ac_dir/$ac_word" >&5
+ echo "$as_me:2614: found $ac_dir/$ac_word" >&5
break
fi
done
LDCONFIG=$ac_cv_path_LDCONFIG
if test -n "$LDCONFIG"; then
- echo "$as_me:2499: result: $LDCONFIG" >&5
+ echo "$as_me:2625: result: $LDCONFIG" >&5
echo "${ECHO_T}$LDCONFIG" >&6
else
- echo "$as_me:2502: result: no" >&5
+ echo "$as_me:2628: result: no" >&5
echo "${ECHO_T}no" >&6
fi
esac
fi
-echo "$as_me:2510: checking if you want to ensure bool is consistent with C++" >&5
+echo "$as_me:2636: checking if you want to ensure bool is consistent with C++" >&5
echo $ECHO_N "checking if you want to ensure bool is consistent with C++... $ECHO_C" >&6
# Check whether --with-cxx or --without-cxx was given.
else
cf_with_cxx=yes
fi;
-echo "$as_me:2520: result: $cf_with_cxx" >&5
+echo "$as_me:2646: result: $cf_with_cxx" >&5
echo "${ECHO_T}$cf_with_cxx" >&6
if test "X$cf_with_cxx" = Xno ; then
CXX=""
do
# Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-echo "$as_me:2537: checking for $ac_word" >&5
+echo "$as_me:2663: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-echo "$as_me:2552: found $ac_dir/$ac_word" >&5
+echo "$as_me:2678: found $ac_dir/$ac_word" >&5
break
done
fi
CXX=$ac_cv_prog_CXX
if test -n "$CXX"; then
- echo "$as_me:2560: result: $CXX" >&5
+ echo "$as_me:2686: result: $CXX" >&5
echo "${ECHO_T}$CXX" >&6
else
- echo "$as_me:2563: result: no" >&5
+ echo "$as_me:2689: result: no" >&5
echo "${ECHO_T}no" >&6
fi
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2576: checking for $ac_word" >&5
+echo "$as_me:2702: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_CXX="$ac_prog"
-echo "$as_me:2591: found $ac_dir/$ac_word" >&5
+echo "$as_me:2717: found $ac_dir/$ac_word" >&5
break
done
fi
ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
if test -n "$ac_ct_CXX"; then
- echo "$as_me:2599: result: $ac_ct_CXX" >&5
+ echo "$as_me:2725: result: $ac_ct_CXX" >&5
echo "${ECHO_T}$ac_ct_CXX" >&6
else
- echo "$as_me:2602: result: no" >&5
+ echo "$as_me:2728: result: no" >&5
echo "${ECHO_T}no" >&6
fi
fi
# Provide some information about the compiler.
-echo "$as_me:2614:" \
+echo "$as_me:2740:" \
"checking for C++ compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:2617: \"$ac_compiler --version </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2743: \"$ac_compiler --version </dev/null >&5\"") >&5
(eval $ac_compiler --version </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:2620: \$? = $ac_status" >&5
+ echo "$as_me:2746: \$? = $ac_status" >&5
(exit $ac_status); }
-{ (eval echo "$as_me:2622: \"$ac_compiler -v </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2748: \"$ac_compiler -v </dev/null >&5\"") >&5
(eval $ac_compiler -v </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:2625: \$? = $ac_status" >&5
+ echo "$as_me:2751: \$? = $ac_status" >&5
(exit $ac_status); }
-{ (eval echo "$as_me:2627: \"$ac_compiler -V </dev/null >&5\"") >&5
+{ (eval echo "$as_me:2753: \"$ac_compiler -V </dev/null >&5\"") >&5
(eval $ac_compiler -V </dev/null >&5) 2>&5
ac_status=$?
- echo "$as_me:2630: \$? = $ac_status" >&5
+ echo "$as_me:2756: \$? = $ac_status" >&5
(exit $ac_status); }
-echo "$as_me:2633: checking whether we are using the GNU C++ compiler" >&5
+echo "$as_me:2759: checking whether we are using the GNU C++ compiler" >&5
echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6
if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2639 "configure"
+#line 2765 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2654: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2780: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2657: \$? = $ac_status" >&5
+ echo "$as_me:2783: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2660: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2786: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2663: \$? = $ac_status" >&5
+ echo "$as_me:2789: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_compiler_gnu=yes
else
ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
fi
-echo "$as_me:2675: result: $ac_cv_cxx_compiler_gnu" >&5
+echo "$as_me:2801: result: $ac_cv_cxx_compiler_gnu" >&5
echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6
GXX=`test $ac_compiler_gnu = yes && echo yes`
ac_test_CXXFLAGS=${CXXFLAGS+set}
ac_save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="-g"
-echo "$as_me:2681: checking whether $CXX accepts -g" >&5
+echo "$as_me:2807: checking whether $CXX accepts -g" >&5
echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6
if test "${ac_cv_prog_cxx_g+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 2687 "configure"
+#line 2813 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2699: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2825: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2702: \$? = $ac_status" >&5
+ echo "$as_me:2828: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2705: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2831: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2708: \$? = $ac_status" >&5
+ echo "$as_me:2834: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_prog_cxx_g=yes
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:2718: result: $ac_cv_prog_cxx_g" >&5
+echo "$as_me:2844: result: $ac_cv_prog_cxx_g" >&5
echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6
if test "$ac_test_CXXFLAGS" = set; then
CXXFLAGS=$ac_save_CXXFLAGS
'void exit (int);'
do
cat >conftest.$ac_ext <<_ACEOF
-#line 2745 "configure"
+#line 2871 "configure"
#include "confdefs.h"
#include <stdlib.h>
$ac_declaration
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2758: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2884: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2761: \$? = $ac_status" >&5
+ echo "$as_me:2887: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2764: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2890: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2767: \$? = $ac_status" >&5
+ echo "$as_me:2893: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
:
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
cat >conftest.$ac_ext <<_ACEOF
-#line 2777 "configure"
+#line 2903 "configure"
#include "confdefs.h"
$ac_declaration
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:2789: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:2915: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:2792: \$? = $ac_status" >&5
+ echo "$as_me:2918: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:2795: \"$ac_try\"") >&5
+ { (eval echo "$as_me:2921: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:2798: \$? = $ac_status" >&5
+ echo "$as_me:2924: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
break
else
if test "$CXX" = "g++" ; then
# Extract the first word of "g++", so it can be a program name with args.
set dummy g++; ac_word=$2
-echo "$as_me:2824: checking for $ac_word" >&5
+echo "$as_me:2950: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_CXX+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_CXX="$ac_dir/$ac_word"
- echo "$as_me:2841: found $ac_dir/$ac_word" >&5
+ echo "$as_me:2967: found $ac_dir/$ac_word" >&5
break
fi
done
CXX=$ac_cv_path_CXX
if test -n "$CXX"; then
- echo "$as_me:2852: result: $CXX" >&5
+ echo "$as_me:2978: result: $CXX" >&5
echo "${ECHO_T}$CXX" >&6
else
- echo "$as_me:2855: result: no" >&5
+ echo "$as_me:2981: result: no" >&5
echo "${ECHO_T}no" >&6
fi
fi
if test "$CXX" = "g++" ; then
- { echo "$as_me:2861: WARNING: ignoring hardcoded g++" >&5
+ { echo "$as_me:2987: WARNING: ignoring hardcoded g++" >&5
echo "$as_me: WARNING: ignoring hardcoded g++" >&2;}
cf_with_cxx=no; CXX=""; GXX="";
fi
GXX_VERSION=none
if test "$GXX" = yes; then
- echo "$as_me:2869: checking version of g++" >&5
+ echo "$as_me:2995: checking version of g++" >&5
echo $ECHO_N "checking version of g++... $ECHO_C" >&6
- GXX_VERSION="`${CXX-g++} --version|sed -e '2,$d'`"
- echo "$as_me:2872: result: $GXX_VERSION" >&5
+ GXX_VERSION="`${CXX-g++} --version| sed -e '2,$d' -e 's/^.*(GCC) //' -e 's/^[^0-9.]*//' -e 's/[^0-9.].*//'`"
+ test -z "$GXX_VERSION" && GXX_VERSION=unknown
+ echo "$as_me:2999: result: $GXX_VERSION" >&5
echo "${ECHO_T}$GXX_VERSION" >&6
fi
1*|2.[0-6]*)
GXX=""; CXX=""; ac_cv_cxx_compiler_gnu=no
cf_cxx_library=no
- { echo "$as_me:2880: WARNING: templates do not work" >&5
+ { echo "$as_me:3007: WARNING: templates do not work" >&5
echo "$as_me: WARNING: templates do not work" >&2;}
;;
esac
-echo "$as_me:2885: checking if you want to build C++ binding and demo" >&5
+echo "$as_me:3012: checking if you want to build C++ binding and demo" >&5
echo $ECHO_N "checking if you want to build C++ binding and demo... $ECHO_C" >&6
# Check whether --with-cxx-binding or --without-cxx-binding was given.
else
cf_with_cxx_binding=$cf_with_cxx
fi;
-echo "$as_me:2895: result: $cf_with_cxx_binding" >&5
+echo "$as_me:3022: result: $cf_with_cxx_binding" >&5
echo "${ECHO_T}$cf_with_cxx_binding" >&6
-echo "$as_me:2898: checking if you want to build with Ada95" >&5
+echo "$as_me:3025: checking if you want to build with Ada95" >&5
echo $ECHO_N "checking if you want to build with Ada95... $ECHO_C" >&6
# Check whether --with-ada or --without-ada was given.
else
cf_with_ada=yes
fi;
-echo "$as_me:2908: result: $cf_with_ada" >&5
+echo "$as_me:3035: result: $cf_with_ada" >&5
echo "${ECHO_T}$cf_with_ada" >&6
-echo "$as_me:2911: checking if you want to build programs such as tic" >&5
+echo "$as_me:3038: checking if you want to build programs such as tic" >&5
echo $ECHO_N "checking if you want to build programs such as tic... $ECHO_C" >&6
# Check whether --with-progs or --without-progs was given.
else
cf_with_progs=yes
fi;
-echo "$as_me:2921: result: $cf_with_progs" >&5
+echo "$as_me:3048: result: $cf_with_progs" >&5
echo "${ECHO_T}$cf_with_progs" >&6
-echo "$as_me:2924: checking if you wish to install curses.h" >&5
+echo "$as_me:3051: checking if you wish to install curses.h" >&5
echo $ECHO_N "checking if you wish to install curses.h... $ECHO_C" >&6
# Check whether --with-curses-h or --without-curses-h was given.
else
with_curses_h=yes
fi;
-echo "$as_me:2934: result: $with_curses_h" >&5
+echo "$as_me:3061: result: $with_curses_h" >&5
echo "${ECHO_T}$with_curses_h" >&6
modules_to_build="ncurses"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:2960: checking for $ac_word" >&5
+echo "$as_me:3087: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AWK+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AWK="$ac_prog"
-echo "$as_me:2975: found $ac_dir/$ac_word" >&5
+echo "$as_me:3102: found $ac_dir/$ac_word" >&5
break
done
fi
AWK=$ac_cv_prog_AWK
if test -n "$AWK"; then
- echo "$as_me:2983: result: $AWK" >&5
+ echo "$as_me:3110: result: $AWK" >&5
echo "${ECHO_T}$AWK" >&6
else
- echo "$as_me:2986: result: no" >&5
+ echo "$as_me:3113: result: no" >&5
echo "${ECHO_T}no" >&6
fi
test -n "$AWK" && break
done
-echo "$as_me:2993: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "$as_me:3120: checking whether ${MAKE-make} sets \${MAKE}" >&5
echo $ECHO_N "checking whether ${MAKE-make} sets \${MAKE}... $ECHO_C" >&6
set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,./+-,__p_,'`
if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
rm -f conftest.make
fi
if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
- echo "$as_me:3013: result: yes" >&5
+ echo "$as_me:3140: result: yes" >&5
echo "${ECHO_T}yes" >&6
SET_MAKE=
else
- echo "$as_me:3017: result: no" >&5
+ echo "$as_me:3144: result: no" >&5
echo "${ECHO_T}no" >&6
SET_MAKE="MAKE=${MAKE-make}"
fi
# AFS /usr/afsws/bin/install, which mishandles nonexistent args
# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
# ./install, which can be erroneously created by make from ./install.sh.
-echo "$as_me:3034: checking for a BSD compatible install" >&5
+echo "$as_me:3161: checking for a BSD compatible install" >&5
echo $ECHO_N "checking for a BSD compatible install... $ECHO_C" >&6
if test -z "$INSTALL"; then
if test "${ac_cv_path_install+set}" = set; then
INSTALL=$ac_install_sh
fi
fi
-echo "$as_me:3083: result: $INSTALL" >&5
+echo "$as_me:3210: result: $INSTALL" >&5
echo "${ECHO_T}$INSTALL" >&6
# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
;;
esac
-echo "$as_me:3104: checking for long file names" >&5
+echo "$as_me:3231: checking for long file names" >&5
echo $ECHO_N "checking for long file names... $ECHO_C" >&6
if test "${ac_cv_sys_long_file_names+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
rm -rf $ac_xdir 2>/dev/null
done
fi
-echo "$as_me:3143: result: $ac_cv_sys_long_file_names" >&5
+echo "$as_me:3270: result: $ac_cv_sys_long_file_names" >&5
echo "${ECHO_T}$ac_cv_sys_long_file_names" >&6
if test $ac_cv_sys_long_file_names = yes; then
fi
-echo "$as_me:3153: checking if filesystem supports mixed-case filenames" >&5
+echo "$as_me:3280: checking if filesystem supports mixed-case filenames" >&5
echo $ECHO_N "checking if filesystem supports mixed-case filenames... $ECHO_C" >&6
if test "${cf_cv_mixedcase+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
fi
fi
-echo "$as_me:3180: result: $cf_cv_mixedcase" >&5
+echo "$as_me:3307: result: $cf_cv_mixedcase" >&5
echo "${ECHO_T}$cf_cv_mixedcase" >&6
test "$cf_cv_mixedcase" = yes && cat >>confdefs.h <<\EOF
#define MIXEDCASE_FILENAMES 1
EOF
-echo "$as_me:3186: checking whether ln -s works" >&5
+echo "$as_me:3313: checking whether ln -s works" >&5
echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6
LN_S=$as_ln_s
if test "$LN_S" = "ln -s"; then
- echo "$as_me:3190: result: yes" >&5
+ echo "$as_me:3317: result: yes" >&5
echo "${ECHO_T}yes" >&6
else
- echo "$as_me:3193: result: no, using $LN_S" >&5
+ echo "$as_me:3320: result: no, using $LN_S" >&5
echo "${ECHO_T}no, using $LN_S" >&6
fi
# Extract the first word of "ctags", so it can be a program name with args.
set dummy ctags; ac_word=$2
-echo "$as_me:3199: checking for $ac_word" >&5
+echo "$as_me:3326: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_LOWER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_LOWER_TAGS="yes"
-echo "$as_me:3214: found $ac_dir/$ac_word" >&5
+echo "$as_me:3341: found $ac_dir/$ac_word" >&5
break
done
fi
MAKE_LOWER_TAGS=$ac_cv_prog_MAKE_LOWER_TAGS
if test -n "$MAKE_LOWER_TAGS"; then
- echo "$as_me:3223: result: $MAKE_LOWER_TAGS" >&5
+ echo "$as_me:3350: result: $MAKE_LOWER_TAGS" >&5
echo "${ECHO_T}$MAKE_LOWER_TAGS" >&6
else
- echo "$as_me:3226: result: no" >&5
+ echo "$as_me:3353: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test "$cf_cv_mixedcase" = yes ; then
# Extract the first word of "etags", so it can be a program name with args.
set dummy etags; ac_word=$2
-echo "$as_me:3233: checking for $ac_word" >&5
+echo "$as_me:3360: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAKE_UPPER_TAGS+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAKE_UPPER_TAGS="yes"
-echo "$as_me:3248: found $ac_dir/$ac_word" >&5
+echo "$as_me:3375: found $ac_dir/$ac_word" >&5
break
done
fi
MAKE_UPPER_TAGS=$ac_cv_prog_MAKE_UPPER_TAGS
if test -n "$MAKE_UPPER_TAGS"; then
- echo "$as_me:3257: result: $MAKE_UPPER_TAGS" >&5
+ echo "$as_me:3384: result: $MAKE_UPPER_TAGS" >&5
echo "${ECHO_T}$MAKE_UPPER_TAGS" >&6
else
- echo "$as_me:3260: result: no" >&5
+ echo "$as_me:3387: result: no" >&5
echo "${ECHO_T}no" >&6
fi
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3284: checking for $ac_word" >&5
+echo "$as_me:3411: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LINT+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LINT="$ac_prog"
-echo "$as_me:3299: found $ac_dir/$ac_word" >&5
+echo "$as_me:3426: found $ac_dir/$ac_word" >&5
break
done
fi
LINT=$ac_cv_prog_LINT
if test -n "$LINT"; then
- echo "$as_me:3307: result: $LINT" >&5
+ echo "$as_me:3434: result: $LINT" >&5
echo "${ECHO_T}$LINT" >&6
else
- echo "$as_me:3310: result: no" >&5
+ echo "$as_me:3437: result: no" >&5
echo "${ECHO_T}no" >&6
fi
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3321: checking for $ac_word" >&5
+echo "$as_me:3448: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_MAN+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_MAN="$ac_prog"
-echo "$as_me:3336: found $ac_dir/$ac_word" >&5
+echo "$as_me:3463: found $ac_dir/$ac_word" >&5
break
done
fi
MAN=$ac_cv_prog_MAN
if test -n "$MAN"; then
- echo "$as_me:3344: result: $MAN" >&5
+ echo "$as_me:3471: result: $MAN" >&5
echo "${ECHO_T}$MAN" >&6
else
- echo "$as_me:3347: result: no" >&5
+ echo "$as_me:3474: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-echo "$as_me:3357: checking for $ac_word" >&5
+echo "$as_me:3484: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-echo "$as_me:3372: found $ac_dir/$ac_word" >&5
+echo "$as_me:3499: found $ac_dir/$ac_word" >&5
break
done
fi
RANLIB=$ac_cv_prog_RANLIB
if test -n "$RANLIB"; then
- echo "$as_me:3380: result: $RANLIB" >&5
+ echo "$as_me:3507: result: $RANLIB" >&5
echo "${ECHO_T}$RANLIB" >&6
else
- echo "$as_me:3383: result: no" >&5
+ echo "$as_me:3510: result: no" >&5
echo "${ECHO_T}no" >&6
fi
ac_ct_RANLIB=$RANLIB
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
-echo "$as_me:3392: checking for $ac_word" >&5
+echo "$as_me:3519: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_RANLIB="ranlib"
-echo "$as_me:3407: found $ac_dir/$ac_word" >&5
+echo "$as_me:3534: found $ac_dir/$ac_word" >&5
break
done
fi
ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
if test -n "$ac_ct_RANLIB"; then
- echo "$as_me:3416: result: $ac_ct_RANLIB" >&5
+ echo "$as_me:3543: result: $ac_ct_RANLIB" >&5
echo "${ECHO_T}$ac_ct_RANLIB" >&6
else
- echo "$as_me:3419: result: no" >&5
+ echo "$as_me:3546: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
set dummy ${ac_tool_prefix}ld; ac_word=$2
-echo "$as_me:3431: checking for $ac_word" >&5
+echo "$as_me:3558: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_LD+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_LD="${ac_tool_prefix}ld"
-echo "$as_me:3446: found $ac_dir/$ac_word" >&5
+echo "$as_me:3573: found $ac_dir/$ac_word" >&5
break
done
fi
LD=$ac_cv_prog_LD
if test -n "$LD"; then
- echo "$as_me:3454: result: $LD" >&5
+ echo "$as_me:3581: result: $LD" >&5
echo "${ECHO_T}$LD" >&6
else
- echo "$as_me:3457: result: no" >&5
+ echo "$as_me:3584: result: no" >&5
echo "${ECHO_T}no" >&6
fi
ac_ct_LD=$LD
# Extract the first word of "ld", so it can be a program name with args.
set dummy ld; ac_word=$2
-echo "$as_me:3466: checking for $ac_word" >&5
+echo "$as_me:3593: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_LD="ld"
-echo "$as_me:3481: found $ac_dir/$ac_word" >&5
+echo "$as_me:3608: found $ac_dir/$ac_word" >&5
break
done
fi
ac_ct_LD=$ac_cv_prog_ac_ct_LD
if test -n "$ac_ct_LD"; then
- echo "$as_me:3490: result: $ac_ct_LD" >&5
+ echo "$as_me:3617: result: $ac_ct_LD" >&5
echo "${ECHO_T}$ac_ct_LD" >&6
else
- echo "$as_me:3493: result: no" >&5
+ echo "$as_me:3620: result: no" >&5
echo "${ECHO_T}no" >&6
fi
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
-echo "$as_me:3505: checking for $ac_word" >&5
+echo "$as_me:3632: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_AR="${ac_tool_prefix}ar"
-echo "$as_me:3520: found $ac_dir/$ac_word" >&5
+echo "$as_me:3647: found $ac_dir/$ac_word" >&5
break
done
fi
AR=$ac_cv_prog_AR
if test -n "$AR"; then
- echo "$as_me:3528: result: $AR" >&5
+ echo "$as_me:3655: result: $AR" >&5
echo "${ECHO_T}$AR" >&6
else
- echo "$as_me:3531: result: no" >&5
+ echo "$as_me:3658: result: no" >&5
echo "${ECHO_T}no" >&6
fi
ac_ct_AR=$AR
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
-echo "$as_me:3540: checking for $ac_word" >&5
+echo "$as_me:3667: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_ac_ct_AR="ar"
-echo "$as_me:3555: found $ac_dir/$ac_word" >&5
+echo "$as_me:3682: found $ac_dir/$ac_word" >&5
break
done
fi
ac_ct_AR=$ac_cv_prog_ac_ct_AR
if test -n "$ac_ct_AR"; then
- echo "$as_me:3564: result: $ac_ct_AR" >&5
+ echo "$as_me:3691: result: $ac_ct_AR" >&5
echo "${ECHO_T}$ac_ct_AR" >&6
else
- echo "$as_me:3567: result: no" >&5
+ echo "$as_me:3694: result: no" >&5
echo "${ECHO_T}no" >&6
fi
echo $ECHO_N "(cached) $ECHO_C" >&6
else
-echo "$as_me:3580: checking for archiver options (symbol AR_OPTS)" >&5
+echo "$as_me:3707: checking for archiver options (symbol AR_OPTS)" >&5
echo $ECHO_N "checking for archiver options (symbol AR_OPTS)... $ECHO_C" >&6
test -z "$AR_OPTS" && AR_OPTS=rv
-echo "$as_me:3583: result: $AR_OPTS" >&5
+echo "$as_me:3710: result: $AR_OPTS" >&5
echo "${ECHO_T}$AR_OPTS" >&6
cf_cv_subst_AR_OPTS=$AR_OPTS
AR_OPTS=${cf_cv_subst_AR_OPTS}
-echo "$as_me:3591: checking for makeflags variable" >&5
+echo "$as_me:3718: checking for makeflags variable" >&5
echo $ECHO_N "checking for makeflags variable... $ECHO_C" >&6
if test "${cf_cv_makeflags+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
rm -f cf_makeflags.tmp
fi
-echo "$as_me:3624: result: $cf_cv_makeflags" >&5
+echo "$as_me:3751: result: $cf_cv_makeflags" >&5
echo "${ECHO_T}$cf_cv_makeflags" >&6
-echo "$as_me:3627: checking if you have specified an install-prefix" >&5
+echo "$as_me:3754: checking if you have specified an install-prefix" >&5
echo $ECHO_N "checking if you have specified an install-prefix... $ECHO_C" >&6
# Check whether --with-install-prefix or --without-install-prefix was given.
;;
esac
fi;
-echo "$as_me:3640: result: $DESTDIR" >&5
+echo "$as_me:3767: result: $DESTDIR" >&5
echo "${ECHO_T}$DESTDIR" >&6
###############################################################################
# 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.
-: ${BUILD_CC:='$(CC)'}
-: ${BUILD_CFLAGS:='$(CFLAGS)'}
-: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
-: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
-: ${BUILD_LIBS:='$(LIBS)'}
-: ${BUILD_EXEEXT:='$x'}
+
if test "$cross_compiling" = yes ; then
+ # defaults that we might want to override
+ : ${BUILD_CFLAGS:=''}
+ : ${BUILD_CPPFLAGS:=''}
+ : ${BUILD_LDFLAGS:=''}
+ : ${BUILD_LIBS:=''}
+ : ${BUILD_EXEEXT:='$x'}
+ : ${BUILD_OBJEXT:='o'}
+
# Check whether --with-build-cc or --without-build-cc was given.
if test "${with_build_cc+set}" = set; then
withval="$with_build_cc"
BUILD_CC="$withval"
else
- for ac_prog in $CC gcc cc
+ for ac_prog in gcc cc cl
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
-echo "$as_me:3665: checking for $ac_word" >&5
+echo "$as_me:3795: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_BUILD_CC+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_BUILD_CC="$ac_prog"
-echo "$as_me:3680: found $ac_dir/$ac_word" >&5
+echo "$as_me:3810: found $ac_dir/$ac_word" >&5
break
done
fi
BUILD_CC=$ac_cv_prog_BUILD_CC
if test -n "$BUILD_CC"; then
- echo "$as_me:3688: result: $BUILD_CC" >&5
+ echo "$as_me:3818: result: $BUILD_CC" >&5
echo "${ECHO_T}$BUILD_CC" >&6
else
- echo "$as_me:3691: result: no" >&5
+ echo "$as_me:3821: result: no" >&5
echo "${ECHO_T}no" >&6
fi
done
fi;
+ echo "$as_me:3829: checking for native build C compiler" >&5
+echo $ECHO_N "checking for native build C compiler... $ECHO_C" >&6
+ echo "$as_me:3831: result: $BUILD_CC" >&5
+echo "${ECHO_T}$BUILD_CC" >&6
+
+ echo "$as_me:3834: checking for native build C preprocessor" >&5
+echo $ECHO_N "checking for native build C preprocessor... $ECHO_C" >&6
+
+# Check whether --with-build-cpp or --without-build-cpp was given.
+if test "${with_build_cpp+set}" = set; then
+ withval="$with_build_cpp"
+ BUILD_CPP="$withval"
+else
+ BUILD_CPP='$(BUILD_CC) -E'
+fi;
+ echo "$as_me:3844: result: $BUILD_CPP" >&5
+echo "${ECHO_T}$BUILD_CPP" >&6
+
+ echo "$as_me:3847: checking for native build C flags" >&5
+echo $ECHO_N "checking for native build C flags... $ECHO_C" >&6
# Check whether --with-build-cflags or --without-build-cflags was given.
if test "${with_build_cflags+set}" = set; then
withval="$with_build_cflags"
BUILD_CFLAGS="$withval"
fi;
+ echo "$as_me:3855: result: $BUILD_CFLAGS" >&5
+echo "${ECHO_T}$BUILD_CFLAGS" >&6
+
+ echo "$as_me:3858: checking for native build C preprocessor-flags" >&5
+echo $ECHO_N "checking for native build C preprocessor-flags... $ECHO_C" >&6
# Check whether --with-build-cppflags or --without-build-cppflags was given.
if test "${with_build_cppflags+set}" = set; then
withval="$with_build_cppflags"
BUILD_CPPFLAGS="$withval"
fi;
+ echo "$as_me:3866: result: $BUILD_CPPFLAGS" >&5
+echo "${ECHO_T}$BUILD_CPPFLAGS" >&6
+
+ echo "$as_me:3869: checking for native build linker-flags" >&5
+echo $ECHO_N "checking for native build linker-flags... $ECHO_C" >&6
# Check whether --with-build-ldflags or --without-build-ldflags was given.
if test "${with_build_ldflags+set}" = set; then
withval="$with_build_ldflags"
BUILD_LDFLAGS="$withval"
fi;
+ echo "$as_me:3877: result: $BUILD_LDFLAGS" >&5
+echo "${ECHO_T}$BUILD_LDFLAGS" >&6
+
+ echo "$as_me:3880: checking for native build linker-libraries" >&5
+echo $ECHO_N "checking for native build linker-libraries... $ECHO_C" >&6
# Check whether --with-build-libs or --without-build-libs was given.
if test "${with_build_libs+set}" = set; then
withval="$with_build_libs"
BUILD_LIBS="$withval"
fi;
+ echo "$as_me:3888: result: $BUILD_LIBS" >&5
+echo "${ECHO_T}$BUILD_LIBS" >&6
+
+ # this assumes we're on Unix.
BUILD_EXEEXT=
+ BUILD_OBJEXT=o
+
+ : ${BUILD_CC:='$(CC)'}
+
+ if ( test "$BUILD_CC" = "$CC" || test "$BUILD_CC" = '$(CC)' ) ; then
+ { { echo "$as_me:3898: error: Cross-build requires two compilers.
+Use --with-build-cc to specify the native compiler." >&5
+echo "$as_me: error: Cross-build requires two compilers.
+Use --with-build-cc to specify the native compiler." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+else
+ : ${BUILD_CC:='$(CC)'}
+ : ${BUILD_CPP:='$(CPP)'}
+ : ${BUILD_CFLAGS:='$(CFLAGS)'}
+ : ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
+ : ${BUILD_LDFLAGS:='$(LDFLAGS)'}
+ : ${BUILD_LIBS:='$(LIBS)'}
+ : ${BUILD_EXEEXT:='$x'}
+ : ${BUILD_OBJEXT:='o'}
fi
###############################################################################
LIB_INSTALL=
LIB_UNINSTALL=
-echo "$as_me:3749: checking if you want to build libraries with libtool" >&5
+echo "$as_me:3939: checking if you want to build libraries with libtool" >&5
echo $ECHO_N "checking if you want to build libraries with libtool... $ECHO_C" >&6
# Check whether --with-libtool or --without-libtool was given.
else
with_libtool=no
fi;
-echo "$as_me:3759: result: $with_libtool" >&5
+echo "$as_me:3949: result: $with_libtool" >&5
echo "${ECHO_T}$with_libtool" >&6
if test "$with_libtool" != "no"; then
with_libtool=`echo $with_libtool | sed -e s%NONE%$ac_default_prefix%`
;;
*)
- { { echo "$as_me:3784: error: expected a pathname, not \"$with_libtool\"" >&5
+ { { echo "$as_me:3974: error: expected a pathname, not \"$with_libtool\"" >&5
echo "$as_me: error: expected a pathname, not \"$with_libtool\"" >&2;}
{ (exit 1); exit 1; }; }
;;
else
# Extract the first word of "libtool", so it can be a program name with args.
set dummy libtool; ac_word=$2
-echo "$as_me:3794: checking for $ac_word" >&5
+echo "$as_me:3984: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_path_LIBTOOL+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
if $as_executable_p "$ac_dir/$ac_word"; then
ac_cv_path_LIBTOOL="$ac_dir/$ac_word"
- echo "$as_me:3811: found $ac_dir/$ac_word" >&5
+ echo "$as_me:4001: found $ac_dir/$ac_word" >&5
break
fi
done
LIBTOOL=$ac_cv_path_LIBTOOL
if test -n "$LIBTOOL"; then
- echo "$as_me:3822: result: $LIBTOOL" >&5
+ echo "$as_me:4012: result: $LIBTOOL" >&5
echo "${ECHO_T}$LIBTOOL" >&6
else
- echo "$as_me:3825: result: no" >&5
+ echo "$as_me:4015: result: no" >&5
echo "${ECHO_T}no" >&6
fi
fi
if test -z "$LIBTOOL" ; then
- { { echo "$as_me:3831: error: Cannot find libtool" >&5
+ { { echo "$as_me:4021: error: Cannot find libtool" >&5
echo "$as_me: error: Cannot find libtool" >&2;}
{ (exit 1); exit 1; }; }
fi
LIB_PREP=:
# Show the version of libtool
- echo "$as_me:3846: checking version of libtool" >&5
+ echo "$as_me:4036: checking version of libtool" >&5
echo $ECHO_N "checking version of libtool... $ECHO_C" >&6
# Save the version in a cache variable - this is not entirely a good
# thing, but the version string from libtool is very ugly, and for
# bug reports it might be useful to have the original string.
cf_cv_libtool_version=`$LIBTOOL --version 2>&1 | sed -e '2,$d' -e 's/([^)]*)//g' -e 's/^[^1-9]*//' -e 's/[^0-9.].*//'`
- echo "$as_me:3853: result: $cf_cv_libtool_version" >&5
+ echo "$as_me:4043: result: $cf_cv_libtool_version" >&5
echo "${ECHO_T}$cf_cv_libtool_version" >&6
if test -z "$cf_cv_libtool_version" ; then
- { { echo "$as_me:3856: error: This is not libtool" >&5
+ { { echo "$as_me:4046: error: This is not libtool" >&5
echo "$as_me: error: This is not libtool" >&2;}
{ (exit 1); exit 1; }; }
fi
else
-echo "$as_me:3883: checking if you want to build shared libraries" >&5
+echo "$as_me:4073: checking if you want to build shared libraries" >&5
echo $ECHO_N "checking if you want to build shared libraries... $ECHO_C" >&6
# Check whether --with-shared or --without-shared was given.
else
with_shared=no
fi;
-echo "$as_me:3893: result: $with_shared" >&5
+echo "$as_me:4083: result: $with_shared" >&5
echo "${ECHO_T}$with_shared" >&6
test "$with_shared" = "yes" && cf_list_models="$cf_list_models shared"
-echo "$as_me:3897: checking if you want to build static libraries" >&5
+echo "$as_me:4087: checking if you want to build static libraries" >&5
echo $ECHO_N "checking if you want to build static libraries... $ECHO_C" >&6
# Check whether --with-normal or --without-normal was given.
else
with_normal=yes
fi;
-echo "$as_me:3907: result: $with_normal" >&5
+echo "$as_me:4097: result: $with_normal" >&5
echo "${ECHO_T}$with_normal" >&6
test "$with_normal" = "yes" && cf_list_models="$cf_list_models normal"
-echo "$as_me:3911: checking if you want to build debug libraries" >&5
+echo "$as_me:4101: checking if you want to build debug libraries" >&5
echo $ECHO_N "checking if you want to build debug libraries... $ECHO_C" >&6
# Check whether --with-debug or --without-debug was given.
else
with_debug=yes
fi;
-echo "$as_me:3921: result: $with_debug" >&5
+echo "$as_me:4111: result: $with_debug" >&5
echo "${ECHO_T}$with_debug" >&6
test "$with_debug" = "yes" && cf_list_models="$cf_list_models debug"
-echo "$as_me:3925: checking if you want to build profiling libraries" >&5
+echo "$as_me:4115: checking if you want to build profiling libraries" >&5
echo $ECHO_N "checking if you want to build profiling libraries... $ECHO_C" >&6
# Check whether --with-profile or --without-profile was given.
else
with_profile=no
fi;
-echo "$as_me:3935: result: $with_profile" >&5
+echo "$as_me:4125: result: $with_profile" >&5
echo "${ECHO_T}$with_profile" >&6
test "$with_profile" = "yes" && cf_list_models="$cf_list_models profile"
###############################################################################
-echo "$as_me:3943: checking for specified models" >&5
+echo "$as_me:4133: checking for specified models" >&5
echo $ECHO_N "checking for specified models... $ECHO_C" >&6
test -z "$cf_list_models" && cf_list_models=normal
test "$with_libtool" != "no" && cf_list_models=libtool
-echo "$as_me:3947: result: $cf_list_models" >&5
+echo "$as_me:4137: result: $cf_list_models" >&5
echo "${ECHO_T}$cf_list_models" >&6
### Use the first model as the default, and save its suffix for use in building
### up test-applications.
-echo "$as_me:3952: checking for default model" >&5
+echo "$as_me:4142: checking for default model" >&5
echo $ECHO_N "checking for default model... $ECHO_C" >&6
DFT_LWR_MODEL=`echo "$cf_list_models" | $AWK '{print $1}'`
-echo "$as_me:3955: result: $DFT_LWR_MODEL" >&5
+echo "$as_me:4145: result: $DFT_LWR_MODEL" >&5
echo "${ECHO_T}$DFT_LWR_MODEL" >&6
DFT_UPR_MODEL=`echo "$DFT_LWR_MODEL" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
LIB_NAME=ncurses
LIB_DIR=../lib
+LIB_2ND=../../lib
case $cf_cv_system_name in
OS/2*) LIB_PREFIX='' ;;
###############################################################################
-echo "$as_me:3979: checking if you want to build a separate terminfo library" >&5
+echo "$as_me:4170: checking if you want to build a separate terminfo library" >&5
echo $ECHO_N "checking if you want to build a separate terminfo library... $ECHO_C" >&6
# Check whether --with-termlib or --without-termlib was given.
else
with_termlib=no
fi;
-echo "$as_me:3989: result: $with_termlib" >&5
+echo "$as_me:4180: result: $with_termlib" >&5
echo "${ECHO_T}$with_termlib" >&6
### Checks for special libraries, must be done up-front.
-echo "$as_me:3994: checking if you want to link with dbmalloc for testing" >&5
+echo "$as_me:4185: checking if you want to link with dbmalloc for testing" >&5
echo $ECHO_N "checking if you want to link with dbmalloc for testing... $ECHO_C" >&6
# Check whether --with-dbmalloc or --without-dbmalloc was given.
else
with_dbmalloc=no
fi;
-echo "$as_me:4004: result: $with_dbmalloc" >&5
+echo "$as_me:4195: result: $with_dbmalloc" >&5
echo "${ECHO_T}$with_dbmalloc" >&6
-if test $with_dbmalloc = yes ; then
+if test "$with_dbmalloc" = yes ; then
+ echo "$as_me:4198: checking for dbmalloc.h" >&5
+echo $ECHO_N "checking for dbmalloc.h... $ECHO_C" >&6
+if test "${ac_cv_header_dbmalloc_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 4204 "configure"
+#include "confdefs.h"
+#include <dbmalloc.h>
+_ACEOF
+if { (eval echo "$as_me:4208: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:4214: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_cv_header_dbmalloc_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_header_dbmalloc_h=no
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:4233: result: $ac_cv_header_dbmalloc_h" >&5
+echo "${ECHO_T}$ac_cv_header_dbmalloc_h" >&6
+if test $ac_cv_header_dbmalloc_h = yes; then
-echo "$as_me:4008: checking for debug_malloc in -ldbmalloc" >&5
+echo "$as_me:4237: checking for debug_malloc in -ldbmalloc" >&5
echo $ECHO_N "checking for debug_malloc in -ldbmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dbmalloc_debug_malloc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldbmalloc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4016 "configure"
+#line 4245 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4035: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4264: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4038: \$? = $ac_status" >&5
+ echo "$as_me:4267: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4041: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4270: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4044: \$? = $ac_status" >&5
+ echo "$as_me:4273: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_dbmalloc_debug_malloc=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:4055: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
+echo "$as_me:4284: result: $ac_cv_lib_dbmalloc_debug_malloc" >&5
echo "${ECHO_T}$ac_cv_lib_dbmalloc_debug_malloc" >&6
if test $ac_cv_lib_dbmalloc_debug_malloc = yes; then
cat >>confdefs.h <<EOF
fi
-echo "$as_me:4068: checking if you want to link with dmalloc for testing" >&5
+fi
+
+echo "$as_me:4299: checking if you want to link with dmalloc for testing" >&5
echo $ECHO_N "checking if you want to link with dmalloc for testing... $ECHO_C" >&6
# Check whether --with-dmalloc or --without-dmalloc was given.
else
with_dmalloc=no
fi;
-echo "$as_me:4078: result: $with_dmalloc" >&5
+echo "$as_me:4309: result: $with_dmalloc" >&5
echo "${ECHO_T}$with_dmalloc" >&6
-if test $with_dmalloc = yes ; then
+if test "$with_dmalloc" = yes ; then
+ echo "$as_me:4312: checking for dmalloc.h" >&5
+echo $ECHO_N "checking for dmalloc.h... $ECHO_C" >&6
+if test "${ac_cv_header_dmalloc_h+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 4318 "configure"
+#include "confdefs.h"
+#include <dmalloc.h>
+_ACEOF
+if { (eval echo "$as_me:4322: \"$ac_cpp conftest.$ac_ext\"") >&5
+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+ ac_status=$?
+ egrep -v '^ *\+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ echo "$as_me:4328: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null; then
+ if test -s conftest.err; then
+ ac_cpp_err=$ac_c_preproc_warn_flag
+ else
+ ac_cpp_err=
+ fi
+else
+ ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+ ac_cv_header_dmalloc_h=yes
+else
+ echo "$as_me: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ ac_cv_header_dmalloc_h=no
+fi
+rm -f conftest.err conftest.$ac_ext
+fi
+echo "$as_me:4347: result: $ac_cv_header_dmalloc_h" >&5
+echo "${ECHO_T}$ac_cv_header_dmalloc_h" >&6
+if test $ac_cv_header_dmalloc_h = yes; then
-echo "$as_me:4082: checking for dmalloc_debug in -ldmalloc" >&5
+echo "$as_me:4351: checking for dmalloc_debug in -ldmalloc" >&5
echo $ECHO_N "checking for dmalloc_debug in -ldmalloc... $ECHO_C" >&6
if test "${ac_cv_lib_dmalloc_dmalloc_debug+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldmalloc $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4090 "configure"
+#line 4359 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4109: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4378: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4112: \$? = $ac_status" >&5
+ echo "$as_me:4381: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4115: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4384: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4118: \$? = $ac_status" >&5
+ echo "$as_me:4387: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_dmalloc_dmalloc_debug=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:4129: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
+echo "$as_me:4398: result: $ac_cv_lib_dmalloc_dmalloc_debug" >&5
echo "${ECHO_T}$ac_cv_lib_dmalloc_dmalloc_debug" >&6
if test $ac_cv_lib_dmalloc_dmalloc_debug = yes; then
cat >>confdefs.h <<EOF
fi
+fi
+
SHLIB_LIST=""
-echo "$as_me:4143: checking if you want to link with the gpm mouse library" >&5
-echo $ECHO_N "checking if you want to link with the gpm mouse library... $ECHO_C" >&6
+
+echo "$as_me:4415: checking if you want to link with the GPM mouse library" >&5
+echo $ECHO_N "checking if you want to link with the GPM mouse library... $ECHO_C" >&6
# Check whether --with-gpm or --without-gpm was given.
if test "${with_gpm+set}" = set; then
withval="$with_gpm"
with_gpm=$withval
else
- with_gpm=no
+ with_gpm=maybe
fi;
-echo "$as_me:4153: result: $with_gpm" >&5
+echo "$as_me:4425: result: $with_gpm" >&5
echo "${ECHO_T}$with_gpm" >&6
-if test "$with_gpm" = yes ; then
- echo "$as_me:4156: checking for Gpm_Open in -lgpm" >&5
+if test "$with_gpm" != no ; then
+ echo "$as_me:4428: checking for Gpm_Open in -lgpm" >&5
echo $ECHO_N "checking for Gpm_Open in -lgpm... $ECHO_C" >&6
if test "${ac_cv_lib_gpm_Gpm_Open+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lgpm $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4164 "configure"
+#line 4436 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4183: \"$ac_link\"") >&5
+if { (eval echo "$as_me:4455: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4186: \$? = $ac_status" >&5
+ echo "$as_me:4458: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4189: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4461: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4192: \$? = $ac_status" >&5
+ echo "$as_me:4464: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_gpm_Gpm_Open=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:4203: result: $ac_cv_lib_gpm_Gpm_Open" >&5
+echo "$as_me:4475: result: $ac_cv_lib_gpm_Gpm_Open" >&5
echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Open" >&6
if test $ac_cv_lib_gpm_Gpm_Open = yes; then
- EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- cat >>confdefs.h <<\EOF
-#define HAVE_LIBGPM 1
-EOF
-
-for ac_header in gpm.h
-do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:4216: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:4479: checking for gpm.h" >&5
+echo $ECHO_N "checking for gpm.h... $ECHO_C" >&6
+if test "${ac_cv_header_gpm_h+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4222 "configure"
+#line 4485 "configure"
#include "confdefs.h"
-#include <$ac_header>
+#include <gpm.h>
_ACEOF
-if { (eval echo "$as_me:4226: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:4489: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:4232: \$? = $ac_status" >&5
+ echo "$as_me:4495: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
ac_cpp_err=yes
fi
if test -z "$ac_cpp_err"; then
- eval "$as_ac_Header=yes"
+ ac_cv_header_gpm_h=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
- eval "$as_ac_Header=no"
+ ac_cv_header_gpm_h=no
fi
rm -f conftest.err conftest.$ac_ext
fi
-echo "$as_me:4251: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+echo "$as_me:4514: result: $ac_cv_header_gpm_h" >&5
+echo "${ECHO_T}$ac_cv_header_gpm_h" >&6
+if test $ac_cv_header_gpm_h = yes; then
+
+ cat >>confdefs.h <<\EOF
+#define HAVE_GPM_H 1
EOF
+ with_gpm=yes
+
+else
+
+ if test "$with_gpm" = yes ; then
+ { { echo "$as_me:4527: error: Cannot find GPM header" >&5
+echo "$as_me: error: Cannot find GPM header" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
fi
-done
else
- { echo "$as_me:4262: WARNING: Cannot link with gpm library - read the FAQ" >&5
-echo "$as_me: WARNING: Cannot link with gpm library - read the FAQ" >&2;}
+
+ if test "$with_gpm" = yes ; then
+ { { echo "$as_me:4537: error: Cannot link with GPM library" >&5
+echo "$as_me: error: Cannot link with GPM library" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ with_gpm=no
+
fi
fi
-# not everyone has "test -c"
-if test -c /dev/sysmouse 2>/dev/null ; then
-echo "$as_me:4270: checking if you want to use sysmouse" >&5
-echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
+if test "$with_gpm" = yes ; then
-# Check whether --with-sysmouse or --without-sysmouse was given.
-if test "${with_sysmouse+set}" = set; then
- withval="$with_sysmouse"
- cf_with_sysmouse=$withval
+cf_have_dlsym=no
+echo "$as_me:4550: checking for dlsym" >&5
+echo $ECHO_N "checking for dlsym... $ECHO_C" >&6
+if test "${ac_cv_func_dlsym+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cf_with_sysmouse=maybe
-fi;
- if test "$cf_with_sysmouse" != no ; then
- cat >conftest.$ac_ext <<_ACEOF
-#line 4282 "configure"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 4556 "configure"
#include "confdefs.h"
-
-#include <osreldate.h>
-#if (__FreeBSD_version >= 400017)
-#include <sys/consio.h>
-#include <sys/fbio.h>
-#else
-#include <machine/console.h>
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char dlsym (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlsym ();
+char (*f) ();
int
main ()
{
-
- struct mouse_info the_mouse;
- ioctl(0, CONS_MOUSECTL, &the_mouse);
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_dlsym) || defined (__stub___dlsym)
+choke me
+#else
+f = dlsym;
+#endif
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4305: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4587: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4308: \$? = $ac_status" >&5
+ echo "$as_me:4590: \$? = $ac_status" >&5
(exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4311: \"$ac_try\"") >&5
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:4593: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4314: \$? = $ac_status" >&5
+ echo "$as_me:4596: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_with_sysmouse=yes
+ ac_cv_func_dlsym=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_with_sysmouse=no
+ac_cv_func_dlsym=no
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
- fi
-echo "$as_me:4324: result: $cf_with_sysmouse" >&5
-echo "${ECHO_T}$cf_with_sysmouse" >&6
-test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
-#define USE_SYSMOUSE 1
-EOF
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:4606: result: $ac_cv_func_dlsym" >&5
+echo "${ECHO_T}$ac_cv_func_dlsym" >&6
+if test $ac_cv_func_dlsym = yes; then
+ cf_have_dlsym=yes
+else
+cf_have_libdl=no
+echo "$as_me:4613: checking for dlsym in -ldl" >&5
+echo $ECHO_N "checking for dlsym in -ldl... $ECHO_C" >&6
+if test "${ac_cv_lib_dl_dlsym+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4621 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char dlsym ();
+int
+main ()
+{
+dlsym ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4640: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:4643: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:4646: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:4649: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_dl_dlsym=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_dl_dlsym=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
fi
+echo "$as_me:4660: result: $ac_cv_lib_dl_dlsym" >&5
+echo "${ECHO_T}$ac_cv_lib_dl_dlsym" >&6
+if test $ac_cv_lib_dl_dlsym = yes; then
-if test X"$CC_G_OPT" = X"" ; then
- CC_G_OPT='-g'
- test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
+ cf_have_dlsym=yes
+ cf_have_libdl=yes
fi
-if test X"$CXX_G_OPT" = X"" ; then
- CXX_G_OPT='-g'
- test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
fi
-echo "$as_me:4342: checking for default loader flags" >&5
-echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
+if test "$cf_have_dlsym" = yes ; then
+ test "$cf_have_libdl" = yes && LIBS="-ldl $LIBS"
+
+ echo "$as_me:4673: checking whether able to link to dl*() functions" >&5
+echo $ECHO_N "checking whether able to link to dl*() functions... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+#line 4676 "configure"
+#include "confdefs.h"
+#include <dlfcn.h>
+int
+main ()
+{
+
+ void *obj;
+ if ((obj = dlopen("filename", 0)) != 0) {
+ if (dlsym(obj, "symbolname") == 0) {
+ dlclose(obj);
+ }
+ }
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4694: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:4697: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:4700: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:4703: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+
+ cat >>confdefs.h <<\EOF
+#define HAVE_LIBDL 1
+EOF
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+
+ { { echo "$as_me:4714: error: Cannot link test program for libdl" >&5
+echo "$as_me: error: Cannot link test program for libdl" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ echo "$as_me:4719: result: ok" >&5
+echo "${ECHO_T}ok" >&6
+else
+ { { echo "$as_me:4722: error: Cannot find dlsym function" >&5
+echo "$as_me: error: Cannot find dlsym function" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+
+echo "$as_me:4727: checking for soname of gpm library" >&5
+echo $ECHO_N "checking for soname of gpm library... $ECHO_C" >&6
+if test "${cf_cv_gpm_soname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cf_cv_gpm_soname=unknown
+if test "$cross_compiling" != yes ; then
+cat >conftest.$ac_ext <<CF_EOF
+#include <gpm.h>
+int main()
+{
+if (Gpm_Open(0,0)) Gpm_Close();
+return 0;
+}
+CF_EOF
+cf_save_LIBS="$LIBS"
+ LIBS="-lgpm $LIBS"
+ if { (eval echo "$as_me:4745: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:4748: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ if { (eval echo "$as_me:4750: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:4753: \$? = $ac_status" >&5
+ (exit $ac_status); } ; then
+ cf_cv_gpm_soname=`ldd conftest$ac_exeext 2>/dev/null | sed -e 's,^.*/,,' -e 's, .*$,,' | fgrep libgpm.`
+ test -z "$cf_cv_gpm_soname" && cf_cv_gpm_soname=unknown
+ fi
+ fi
+rm -f conftest*
+LIBS="$cf_save_LIBS"
+fi
+
+fi
+echo "$as_me:4764: result: $cf_cv_gpm_soname" >&5
+echo "${ECHO_T}$cf_cv_gpm_soname" >&6
+
+ test "$cf_cv_gpm_soname" != "unknown" && cat >>confdefs.h <<EOF
+#define LIBGPM_SONAME "$cf_cv_gpm_soname"
+EOF
+
+ SHLIB_LIST="-ldl $SHLIB_LIST"
+ cat >>confdefs.h <<\EOF
+#define HAVE_LIBGPM 1
+EOF
+
+ echo "$as_me:4776: checking for Gpm_Wgetch in -lgpm" >&5
+echo $ECHO_N "checking for Gpm_Wgetch in -lgpm... $ECHO_C" >&6
+if test "${ac_cv_lib_gpm_Gpm_Wgetch+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgpm $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 4784 "configure"
+#include "confdefs.h"
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char Gpm_Wgetch ();
+int
+main ()
+{
+Gpm_Wgetch ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:4803: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:4806: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:4809: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:4812: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gpm_Gpm_Wgetch=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_lib_gpm_Gpm_Wgetch=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+echo "$as_me:4823: result: $ac_cv_lib_gpm_Gpm_Wgetch" >&5
+echo "${ECHO_T}$ac_cv_lib_gpm_Gpm_Wgetch" >&6
+if test $ac_cv_lib_gpm_Gpm_Wgetch = yes; then
+
+ { echo "$as_me:4827: WARNING: GPM library is already linked with curses - read the FAQ" >&5
+echo "$as_me: WARNING: GPM library is already linked with curses - read the FAQ" >&2;}
+
+fi
+
+fi
+
+# not everyone has "test -c"
+if test -c /dev/sysmouse 2>/dev/null ; then
+echo "$as_me:4836: checking if you want to use sysmouse" >&5
+echo $ECHO_N "checking if you want to use sysmouse... $ECHO_C" >&6
+
+# Check whether --with-sysmouse or --without-sysmouse was given.
+if test "${with_sysmouse+set}" = set; then
+ withval="$with_sysmouse"
+ cf_with_sysmouse=$withval
+else
+ cf_with_sysmouse=maybe
+fi;
+ if test "$cf_with_sysmouse" != no ; then
+ cat >conftest.$ac_ext <<_ACEOF
+#line 4848 "configure"
+#include "confdefs.h"
+
+#include <osreldate.h>
+#if (__FreeBSD_version >= 400017)
+#include <sys/consio.h>
+#include <sys/fbio.h>
+#else
+#include <machine/console.h>
+#endif
+
+int
+main ()
+{
+
+ struct mouse_info the_mouse;
+ ioctl(0, CONS_MOUSECTL, &the_mouse);
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:4871: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:4874: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:4877: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:4880: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_with_sysmouse=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_with_sysmouse=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
+echo "$as_me:4890: result: $cf_with_sysmouse" >&5
+echo "${ECHO_T}$cf_with_sysmouse" >&6
+test "$cf_with_sysmouse" = yes && cat >>confdefs.h <<\EOF
+#define USE_SYSMOUSE 1
+EOF
+
+fi
+
+if test X"$CC_G_OPT" = X"" ; then
+ CC_G_OPT='-g'
+ test -n "$GCC" && test "${ac_cv_prog_cc_g}" != yes && CC_G_OPT=''
+fi
+
+if test X"$CXX_G_OPT" = X"" ; then
+ CXX_G_OPT='-g'
+ test -n "$GXX" && test "${ac_cv_prog_cxx_g}" != yes && CXX_G_OPT=''
+fi
+
+echo "$as_me:4908: checking for default loader flags" >&5
+echo $ECHO_N "checking for default loader flags... $ECHO_C" >&6
case $DFT_LWR_MODEL in
libtool) LD_MODEL='' ;;
normal) LD_MODEL='' ;;
profile) LD_MODEL='-pg';;
shared) LD_MODEL='' ;;
esac
-echo "$as_me:4351: result: $LD_MODEL" >&5
+echo "$as_me:4917: result: $LD_MODEL" >&5
echo "${ECHO_T}$LD_MODEL" >&6
-echo "$as_me:4354: checking if rpath option should be used" >&5
+echo "$as_me:4920: checking if rpath option should be used" >&5
echo $ECHO_N "checking if rpath option should be used... $ECHO_C" >&6
# Check whether --enable-rpath or --disable-rpath was given.
else
cf_cv_ld_rpath=no
fi;
-echo "$as_me:4364: result: $cf_cv_ld_rpath" >&5
+echo "$as_me:4930: result: $cf_cv_ld_rpath" >&5
echo "${ECHO_T}$cf_cv_ld_rpath" >&6
LOCAL_LDFLAGS=
cf_cv_do_symlinks=no
- echo "$as_me:4374: checking if release/abi version should be used for shared libs" >&5
+ echo "$as_me:4940: checking if release/abi version should be used for shared libs" >&5
echo $ECHO_N "checking if release/abi version should be used for shared libs... $ECHO_C" >&6
# Check whether --with-shlib-version or --without-shlib-version was given.
cf_cv_shlib_version=$withval
;;
*)
- { { echo "$as_me:4389: error: option value must be one of: rel, abi, auto or no" >&5
+ { { echo "$as_me:4955: error: option value must be one of: rel, abi, auto or no" >&5
echo "$as_me: error: option value must be one of: rel, abi, auto or no" >&2;}
{ (exit 1); exit 1; }; }
;;
else
cf_cv_shlib_version=auto
fi;
- echo "$as_me:4398: result: $cf_cv_shlib_version" >&5
+ echo "$as_me:4964: result: $cf_cv_shlib_version" >&5
echo "${ECHO_T}$cf_cv_shlib_version" >&6
cf_cv_rm_so_locs=no
CC_SHARED_OPTS=
if test "$GCC" = yes
then
- echo "$as_me:4407: checking which $CC option to use" >&5
+ echo "$as_me:4973: checking which $CC option to use" >&5
echo $ECHO_N "checking which $CC option to use... $ECHO_C" >&6
cf_save_CFLAGS="$CFLAGS"
for CC_SHARED_OPTS in -fPIC -fpic ''
do
CFLAGS="$cf_save_CFLAGS $CC_SHARED_OPTS"
cat >conftest.$ac_ext <<_ACEOF
-#line 4414 "configure"
+#line 4980 "configure"
#include "confdefs.h"
#include <stdio.h>
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:4426: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:4992: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:4429: \$? = $ac_status" >&5
+ echo "$as_me:4995: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:4432: \"$ac_try\"") >&5
+ { (eval echo "$as_me:4998: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4435: \$? = $ac_status" >&5
+ echo "$as_me:5001: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
break
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
done
- echo "$as_me:4444: result: $CC_SHARED_OPTS" >&5
+ echo "$as_me:5010: result: $CC_SHARED_OPTS" >&5
echo "${ECHO_T}$CC_SHARED_OPTS" >&6
CFLAGS="$cf_save_CFLAGS"
fi
;;
irix*)
if test "$cf_cv_ld_rpath" = yes ; then
- cf_ld_rpath_opt="-Wl,-rpath,"
- EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+ if test "$GCC" = yes; then
+ cf_ld_rpath_opt="-Wl,-rpath,"
+ EXTRA_LDFLAGS="-Wl,-rpath,\$(libdir) $EXTRA_LDFLAGS"
+ else
+ cf_ld_rpath_opt="-rpath "
+ EXTRA_LDFLAGS="-rpath \$(libdir) $EXTRA_LDFLAGS"
+ fi
fi
# tested with IRIX 5.2 and 'cc'.
if test "$GCC" != yes; then
test "$cf_cv_do_symlinks" = no && cf_cv_do_symlinks=yes
;;
*)
- { echo "$as_me:4628: WARNING: ignored --with-shlib-version" >&5
+ { echo "$as_me:5199: WARNING: ignored --with-shlib-version" >&5
echo "$as_me: WARNING: ignored --with-shlib-version" >&2;}
;;
esac
esac
if test -n "$cf_ld_rpath_opt" ; then
- echo "$as_me:4636: checking if we need a space after rpath option" >&5
+ echo "$as_me:5207: checking if we need a space after rpath option" >&5
echo $ECHO_N "checking if we need a space after rpath option... $ECHO_C" >&6
cf_save_LIBS="$LIBS"
LIBS="$LIBS ${cf_ld_rpath_opt}$libdir"
cat >conftest.$ac_ext <<_ACEOF
-#line 4641 "configure"
+#line 5212 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:4653: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5224: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4656: \$? = $ac_status" >&5
+ echo "$as_me:5227: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:4659: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5230: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4662: \$? = $ac_status" >&5
+ echo "$as_me:5233: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_rpath_space=no
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS="$cf_save_LIBS"
- echo "$as_me:4672: result: $cf_rpath_space" >&5
+ echo "$as_me:5243: result: $cf_rpath_space" >&5
echo "${ECHO_T}$cf_rpath_space" >&6
test "$cf_rpath_space" = yes && cf_ld_rpath_opt="$cf_ld_rpath_opt "
MK_SHARED_LIB="$MK_SHARED_LIB $cf_ld_rpath_opt\$(libdir)"
if test "$CC_SHARED_OPTS" = "unknown"; then
for model in $cf_list_models; do
if test "$model" = "shared"; then
- { { echo "$as_me:4681: error: Shared libraries are not supported in this version" >&5
+ { { echo "$as_me:5252: error: Shared libraries are not supported in this version" >&5
echo "$as_me: error: Shared libraries are not supported in this version" >&2;}
{ (exit 1); exit 1; }; }
fi
###############################################################################
### use option --disable-overwrite to leave out the link to -lcurses
-echo "$as_me:4691: checking if you wish to install ncurses overwriting curses" >&5
+echo "$as_me:5262: checking if you wish to install ncurses overwriting curses" >&5
echo $ECHO_N "checking if you wish to install ncurses overwriting curses... $ECHO_C" >&6
# Check whether --enable-overwrite or --disable-overwrite was given.
else
if test "$prefix" = "/usr" ; then with_overwrite=yes; else with_overwrite=no; fi
fi;
-echo "$as_me:4701: result: $with_overwrite" >&5
+echo "$as_me:5272: result: $with_overwrite" >&5
echo "${ECHO_T}$with_overwrite" >&6
-echo "$as_me:4704: checking if external terminfo-database is used" >&5
+echo "$as_me:5275: checking if external terminfo-database is used" >&5
echo $ECHO_N "checking if external terminfo-database is used... $ECHO_C" >&6
# Check whether --enable-database or --disable-database was given.
else
use_database=yes
fi;
-echo "$as_me:4714: result: $use_database" >&5
+echo "$as_me:5285: result: $use_database" >&5
echo "${ECHO_T}$use_database" >&6
case $host_os in #(vi
#define USE_DATABASE 1
EOF
- echo "$as_me:4736: checking which terminfo source-file will be installed" >&5
+ echo "$as_me:5307: checking which terminfo source-file will be installed" >&5
echo $ECHO_N "checking which terminfo source-file will be installed... $ECHO_C" >&6
# Check whether --enable-database or --disable-database was given.
enableval="$enable_database"
TERMINFO_SRC=$withval
fi;
- echo "$as_me:4744: result: $TERMINFO_SRC" >&5
+ echo "$as_me:5315: result: $TERMINFO_SRC" >&5
echo "${ECHO_T}$TERMINFO_SRC" >&6
fi
-echo "$as_me:4748: checking for list of fallback descriptions" >&5
+echo "$as_me:5319: checking for list of fallback descriptions" >&5
echo $ECHO_N "checking for list of fallback descriptions... $ECHO_C" >&6
# Check whether --with-fallbacks or --without-fallbacks was given.
else
with_fallback=
fi;
-echo "$as_me:4758: result: $with_fallback" >&5
+echo "$as_me:5329: result: $with_fallback" >&5
echo "${ECHO_T}$with_fallback" >&6
FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
+echo "$as_me:5333: checking if you want modern xterm or antique" >&5
+echo $ECHO_N "checking if you want modern xterm or antique... $ECHO_C" >&6
+
+# Check whether --with-xterm-new or --without-xterm-new was given.
+if test "${with_xterm_new+set}" = set; then
+ withval="$with_xterm_new"
+ with_xterm_new=$withval
+else
+ with_xterm_new=yes
+fi;
+case $with_xterm_new in
+no) with_xterm_new=xterm-old;;
+*) with_xterm_new=xterm-new;;
+esac
+echo "$as_me:5347: result: $with_xterm_new" >&5
+echo "${ECHO_T}$with_xterm_new" >&6
+WHICH_XTERM=$with_xterm_new
+
MAKE_TERMINFO=
if test "$use_database" = no ; then
TERMINFO="${datadir}/terminfo"
MAKE_TERMINFO="#"
else
-echo "$as_me:4768: checking for list of terminfo directories" >&5
+echo "$as_me:5357: checking for list of terminfo directories" >&5
echo $ECHO_N "checking for list of terminfo directories... $ECHO_C" >&6
# Check whether --with-terminfo-dirs or --without-terminfo-dirs was given.
cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
;;
*)
- { { echo "$as_me:4802: error: expected a pathname, not \"$cf_src_path\"" >&5
+ { { echo "$as_me:5391: error: expected a pathname, not \"$cf_src_path\"" >&5
echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
{ (exit 1); exit 1; }; }
;;
eval 'TERMINFO_DIRS="$cf_dst_path"'
-echo "$as_me:4815: result: $TERMINFO_DIRS" >&5
+echo "$as_me:5404: result: $TERMINFO_DIRS" >&5
echo "${ECHO_T}$TERMINFO_DIRS" >&6
test -n "$TERMINFO_DIRS" && cat >>confdefs.h <<EOF
#define TERMINFO_DIRS "$TERMINFO_DIRS"
EOF
-echo "$as_me:4821: checking for default terminfo directory" >&5
+echo "$as_me:5410: checking for default terminfo directory" >&5
echo $ECHO_N "checking for default terminfo directory... $ECHO_C" >&6
# Check whether --with-default-terminfo-dir or --without-default-terminfo-dir was given.
withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
;;
*)
- { { echo "$as_me:4850: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:5439: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
eval TERMINFO="$withval"
-echo "$as_me:4858: result: $TERMINFO" >&5
+echo "$as_me:5447: result: $TERMINFO" >&5
echo "${ECHO_T}$TERMINFO" >&6
cat >>confdefs.h <<EOF
#define TERMINFO "$TERMINFO"
### use option --disable-big-core to make tic run on small machines
### We need 4Mb, check if we can allocate 50% more than that.
-echo "$as_me:4868: checking if big-core option selected" >&5
+echo "$as_me:5457: checking if big-core option selected" >&5
echo $ECHO_N "checking if big-core option selected... $ECHO_C" >&6
# Check whether --enable-big-core or --disable-big-core was given.
with_big_core=no
else
cat >conftest.$ac_ext <<_ACEOF
-#line 4880 "configure"
+#line 5469 "configure"
#include "confdefs.h"
#include <stdlib.h>
}
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:4894: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5483: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:4897: \$? = $ac_status" >&5
+ echo "$as_me:5486: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:4899: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5488: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:4902: \$? = $ac_status" >&5
+ echo "$as_me:5491: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
with_big_core=yes
else
rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi;
-echo "$as_me:4914: result: $with_big_core" >&5
+echo "$as_me:5503: result: $with_big_core" >&5
echo "${ECHO_T}$with_big_core" >&6
test "$with_big_core" = "yes" && cat >>confdefs.h <<\EOF
#define HAVE_BIG_CORE 1
EOF
### use option --enable-termcap to compile in the termcap fallback support
-echo "$as_me:4921: checking if you want termcap-fallback support" >&5
+echo "$as_me:5510: checking if you want termcap-fallback support" >&5
echo $ECHO_N "checking if you want termcap-fallback support... $ECHO_C" >&6
# Check whether --enable-termcap or --disable-termcap was given.
else
with_termcap=no
fi;
-echo "$as_me:4931: result: $with_termcap" >&5
+echo "$as_me:5520: result: $with_termcap" >&5
echo "${ECHO_T}$with_termcap" >&6
if test "$with_termcap" != "yes" ; then
if test "$use_database" = no ; then
if test -z "$with_fallback" ; then
- { { echo "$as_me:4937: error: You have disabled the database w/o specifying fallbacks" >&5
+ { { echo "$as_me:5526: error: You have disabled the database w/o specifying fallbacks" >&5
echo "$as_me: error: You have disabled the database w/o specifying fallbacks" >&2;}
{ (exit 1); exit 1; }; }
fi
#define USE_TERMCAP 1
EOF
-echo "$as_me:4952: checking for list of termcap files" >&5
+echo "$as_me:5541: checking for list of termcap files" >&5
echo $ECHO_N "checking for list of termcap files... $ECHO_C" >&6
# Check whether --with-termpath or --without-termpath was given.
cf_src_path=`echo $cf_src_path | sed -e s%NONE%$ac_default_prefix%`
;;
*)
- { { echo "$as_me:4986: error: expected a pathname, not \"$cf_src_path\"" >&5
+ { { echo "$as_me:5575: error: expected a pathname, not \"$cf_src_path\"" >&5
echo "$as_me: error: expected a pathname, not \"$cf_src_path\"" >&2;}
{ (exit 1); exit 1; }; }
;;
eval 'TERMPATH="$cf_dst_path"'
-echo "$as_me:4999: result: $TERMPATH" >&5
+echo "$as_me:5588: result: $TERMPATH" >&5
echo "${ECHO_T}$TERMPATH" >&6
test -n "$TERMPATH" && cat >>confdefs.h <<EOF
#define TERMPATH "$TERMPATH"
EOF
### use option --enable-getcap to use a hacked getcap for reading termcaps
-echo "$as_me:5006: checking if fast termcap-loader is needed" >&5
+echo "$as_me:5595: checking if fast termcap-loader is needed" >&5
echo $ECHO_N "checking if fast termcap-loader is needed... $ECHO_C" >&6
# Check whether --enable-getcap or --disable-getcap was given.
else
with_getcap=no
fi;
-echo "$as_me:5016: result: $with_getcap" >&5
+echo "$as_me:5605: result: $with_getcap" >&5
echo "${ECHO_T}$with_getcap" >&6
test "$with_getcap" = "yes" && cat >>confdefs.h <<\EOF
#define USE_GETCAP 1
EOF
-echo "$as_me:5022: checking if translated termcaps will be cached in ~/.terminfo" >&5
+echo "$as_me:5611: checking if translated termcaps will be cached in ~/.terminfo" >&5
echo $ECHO_N "checking if translated termcaps will be cached in ~/.terminfo... $ECHO_C" >&6
# Check whether --enable-getcap-cache or --disable-getcap-cache was given.
else
with_getcap_cache=no
fi;
-echo "$as_me:5032: result: $with_getcap_cache" >&5
+echo "$as_me:5621: result: $with_getcap_cache" >&5
echo "${ECHO_T}$with_getcap_cache" >&6
test "$with_getcap_cache" = "yes" && cat >>confdefs.h <<\EOF
#define USE_GETCAP_CACHE 1
fi
### Use option --disable-home-terminfo to completely remove ~/.terminfo
-echo "$as_me:5041: checking if ~/.terminfo is wanted" >&5
+echo "$as_me:5630: checking if ~/.terminfo is wanted" >&5
echo $ECHO_N "checking if ~/.terminfo is wanted... $ECHO_C" >&6
# Check whether --enable-home-terminfo or --disable-home-terminfo was given.
else
with_home_terminfo=yes
fi;
+echo "$as_me:5640: result: $with_home_terminfo" >&5
+echo "${ECHO_T}$with_home_terminfo" >&6
test "$with_home_terminfo" = "yes" && cat >>confdefs.h <<\EOF
#define USE_HOME_TERMINFO 1
EOF
+echo "$as_me:5646: checking if you want to use restrict environment when running as root" >&5
+echo $ECHO_N "checking if you want to use restrict environment when running as root... $ECHO_C" >&6
+
+# Check whether --enable-root-environ or --disable-root-environ was given.
+if test "${enable_root_environ+set}" = set; then
+ enableval="$enable_root_environ"
+ with_root_environ=$enableval
+else
+ with_root_environ=yes
+fi;
+echo "$as_me:5656: result: $with_root_environ" >&5
+echo "${ECHO_T}$with_root_environ" >&6
+test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
+#define USE_ROOT_ENVIRON 1
+EOF
+
### Use option --enable-symlinks to make tic use symlinks, not hard links
### to reduce storage requirements for the terminfo database.
unlink
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5063: checking for $ac_func" >&5
+echo "$as_me:5670: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 5069 "configure"
+#line 5676 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5100: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5707: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:5103: \$? = $ac_status" >&5
+ echo "$as_me:5710: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:5106: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5713: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5109: \$? = $ac_status" >&5
+ echo "$as_me:5716: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:5119: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:5726: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<EOF
symlink
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:5136: checking for $ac_func" >&5
+echo "$as_me:5743: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 5142 "configure"
+#line 5749 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:5173: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5780: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:5176: \$? = $ac_status" >&5
+ echo "$as_me:5783: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:5179: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5786: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5182: \$? = $ac_status" >&5
+ echo "$as_me:5789: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:5192: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:5799: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<EOF
done
else
- echo "$as_me:5203: checking if link/symlink functions work" >&5
+ echo "$as_me:5810: checking if link/symlink functions work" >&5
echo $ECHO_N "checking if link/symlink functions work... $ECHO_C" >&6
if test "${cf_cv_link_funcs+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
eval 'ac_cv_func_'$cf_func'=error'
else
cat >conftest.$ac_ext <<_ACEOF
-#line 5216 "configure"
+#line 5823 "configure"
#include "confdefs.h"
#include <sys/types.h>
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:5246: \"$ac_link\"") >&5
+if { (eval echo "$as_me:5853: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:5249: \$? = $ac_status" >&5
+ echo "$as_me:5856: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:5251: \"$ac_try\"") >&5
+ { (eval echo "$as_me:5858: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:5254: \$? = $ac_status" >&5
+ echo "$as_me:5861: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_link_funcs="$cf_cv_link_funcs $cf_func"
test -z "$cf_cv_link_funcs" && cf_cv_link_funcs=no
fi
-echo "$as_me:5272: result: $cf_cv_link_funcs" >&5
+echo "$as_me:5879: result: $cf_cv_link_funcs" >&5
echo "${ECHO_T}$cf_cv_link_funcs" >&6
test "$ac_cv_func_link" = yes && cat >>confdefs.h <<\EOF
#define HAVE_LINK 1
with_symlinks=no
if test "$ac_cv_func_link" != yes ; then
- echo "$as_me:5288: checking if tic should use symbolic links" >&5
+ echo "$as_me:5895: checking if tic should use symbolic links" >&5
echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
if test "$ac_cv_func_symlink" = yes ; then
with_symlinks=yes
else
with_symlinks=no
fi
- echo "$as_me:5295: result: $with_symlinks" >&5
+ echo "$as_me:5902: result: $with_symlinks" >&5
echo "${ECHO_T}$with_symlinks" >&6
elif test "$ac_cv_func_symlink" != yes ; then
- echo "$as_me:5298: checking if tic should use hard links" >&5
+ echo "$as_me:5905: checking if tic should use hard links" >&5
echo $ECHO_N "checking if tic should use hard links... $ECHO_C" >&6
if test "$ac_cv_func_link" = yes ; then
with_links=yes
else
with_links=no
fi
- echo "$as_me:5305: result: $with_links" >&5
+ echo "$as_me:5912: result: $with_links" >&5
echo "${ECHO_T}$with_links" >&6
else
- echo "$as_me:5308: checking if tic should use symbolic links" >&5
+ echo "$as_me:5915: checking if tic should use symbolic links" >&5
echo $ECHO_N "checking if tic should use symbolic links... $ECHO_C" >&6
# Check whether --enable-symlinks or --disable-symlinks was given.
else
with_symlinks=no
fi;
- echo "$as_me:5318: result: $with_symlinks" >&5
+ echo "$as_me:5925: result: $with_symlinks" >&5
echo "${ECHO_T}$with_symlinks" >&6
fi
EOF
### use option --enable-broken-linker to force on use of broken-linker support
-echo "$as_me:5331: checking if you want broken-linker support code" >&5
+echo "$as_me:5938: checking if you want broken-linker support code" >&5
echo $ECHO_N "checking if you want broken-linker support code... $ECHO_C" >&6
# Check whether --enable-broken_linker or --disable-broken_linker was given.
else
with_broken_linker=${BROKEN_LINKER-no}
fi;
-echo "$as_me:5341: result: $with_broken_linker" >&5
+echo "$as_me:5948: result: $with_broken_linker" >&5
echo "${ECHO_T}$with_broken_linker" >&6
BROKEN_LINKER=0
esac
fi
-### use option --with-bool to override bool's type
-echo "$as_me:5366: checking for type of bool" >&5
-echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
+### use option --enable-widec to turn on use of wide-character support
+NCURSES_CH_T=chtype
+NCURSES_LIBUTF8=0
-# Check whether --with-bool or --without-bool was given.
-if test "${with_bool+set}" = set; then
- withval="$with_bool"
- NCURSES_BOOL="$withval"
-else
- NCURSES_BOOL=auto
-fi;
-echo "$as_me:5376: result: $NCURSES_BOOL" >&5
-echo "${ECHO_T}$NCURSES_BOOL" >&6
+NEED_WCHAR_H=0
+NCURSES_MBSTATE_T=0
+NCURSES_WCHAR_T=0
+NCURSES_WINT_T=0
-### use option --with-ospeed to override ospeed's type
-echo "$as_me:5380: checking for type of ospeed" >&5
-echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
+# Check to define _XOPEN_SOURCE "automatically"
-# Check whether --with-ospeed or --without-ospeed was given.
-if test "${with_ospeed+set}" = set; then
- withval="$with_ospeed"
- NCURSES_OSPEED="$withval"
+echo "$as_me:5983: checking if $CC -U and -D options work together" >&5
+echo $ECHO_N "checking if $CC -U and -D options work together... $ECHO_C" >&6
+if test "${cf_cv_cc_u_d_options+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- NCURSES_OSPEED=short
-fi;
-echo "$as_me:5390: result: $NCURSES_OSPEED" >&5
-echo "${ECHO_T}$NCURSES_OSPEED" >&6
-### use option --enable-bsdpad to have tputs process BSD-style prefix padding
-echo "$as_me:5394: checking if tputs should process BSD-style prefix padding" >&5
-echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6
+ cf_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="-UU_D_OPTIONS -DU_D_OPTIONS -DD_U_OPTIONS -UD_U_OPTIONS"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 5992 "configure"
+#include "confdefs.h"
-# Check whether --enable-bsdpad or --disable-bsdpad was given.
-if test "${enable_bsdpad+set}" = set; then
- enableval="$enable_bsdpad"
- with_bsdpad=$enableval
-else
- with_bsdpad=no
-fi;
-echo "$as_me:5404: result: $with_bsdpad" >&5
-echo "${ECHO_T}$with_bsdpad" >&6
-test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
-#define BSD_TPUTS 1
-EOF
+int
+main ()
+{
-### Enable compiling-in rcs id's
-echo "$as_me:5411: checking if RCS identifiers should be compiled-in" >&5
-echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
+#ifndef U_D_OPTIONS
+make an undefined-error
+#endif
+#ifdef D_U_OPTIONS
+make a defined-error
+#endif
-# Check whether --with-rcs-ids or --without-rcs-ids was given.
-if test "${with_rcs_ids+set}" = set; then
- withval="$with_rcs_ids"
- with_rcs_ids=$withval
-else
- with_rcs_ids=no
-fi;
-echo "$as_me:5421: result: $with_rcs_ids" >&5
-echo "${ECHO_T}$with_rcs_ids" >&6
-test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
-#define USE_RCS_IDS 1
-EOF
-
-###############################################################################
-
-echo "$as_me:5429: checking format of man-pages" >&5
-echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6011: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6014: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6017: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6020: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
-# Check whether --with-manpage-format or --without-manpage-format was given.
-if test "${with_manpage_format+set}" = set; then
- withval="$with_manpage_format"
- MANPAGE_FORMAT=$withval
+ cf_cv_cc_u_d_options=yes
else
- MANPAGE_FORMAT=unknown
-fi;
-
-test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
-MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
-
-cf_unknown=
-
-case $MANPAGE_FORMAT in
-unknown)
- if test -z "$MANPATH" ; then
- MANPATH="/usr/man:/usr/share/man"
- fi
-
- # look for the 'date' man-page (it's most likely to be installed!)
- MANPAGE_FORMAT=
- cf_preform=no
- cf_catonly=yes
- cf_example=date
-
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
- for cf_dir in $MANPATH; do
- test -z "$cf_dir" && cf_dir=/usr/man
- for cf_name in $cf_dir/man*/$cf_example.[01]* $cf_dir/cat*/$cf_example.[01]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
- do
- cf_test=`echo $cf_name | sed -e 's/*//'`
- if test "x$cf_test" = "x$cf_name" ; then
-
- case "$cf_name" in
- *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
- *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
- *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
- *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
- esac
-
- case "$cf_name" in
- $cf_dir/man*)
- cf_catonly=no
- ;;
- $cf_dir/cat*)
- cf_preform=yes
- ;;
- esac
- break
- fi
-
- # if we found a match in either man* or cat*, stop looking
- if test -n "$MANPAGE_FORMAT" ; then
- cf_found=no
- test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
- test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
- case "$cf_name" in
- $cf_dir/cat*)
- cf_found=yes
- ;;
- esac
- test $cf_found=yes && break
- fi
- done
- # only check the first directory in $MANPATH where we find manpages
- if test -n "$MANPAGE_FORMAT" ; then
- break
- fi
- done
- # if we did not find the example, just assume it is normal
- test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
- IFS="$ac_save_ifs"
- ;;
-*)
- for cf_option in $MANPAGE_FORMAT; do
- case $cf_option in #(vi
- gzip|compress|BSDI|normal|formatted|catonly)
- ;;
- *)
- cf_unknown="$cf_unknown $cf_option"
- ;;
- esac
- done
- ;;
-esac
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
-echo "$as_me:5518: result: $MANPAGE_FORMAT" >&5
-echo "${ECHO_T}$MANPAGE_FORMAT" >&6
-if test -n "$cf_unknown" ; then
- { echo "$as_me:5521: WARNING: Unexpected manpage-format $cf_unknown" >&5
-echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
+ cf_cv_cc_u_d_options=no
fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$cf_save_CPPFLAGS"
-echo "$as_me:5525: checking for manpage renaming" >&5
-echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
-
-# Check whether --with-manpage-renames or --without-manpage-renames was given.
-if test "${with_manpage_renames+set}" = set; then
- withval="$with_manpage_renames"
- MANPAGE_RENAMES=$withval
-else
- MANPAGE_RENAMES=yes
-fi;
-
-case ".$MANPAGE_RENAMES" in #(vi
-.no) #(vi
- ;;
-.|.yes)
- # Debian 'man' program?
- if test -f /etc/debian_version ; then
- MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
- else
- MANPAGE_RENAMES=no
- fi
- ;;
-esac
-
-if test "$MANPAGE_RENAMES" != no ; then
- if test -f $srcdir/man/$MANPAGE_RENAMES ; then
- MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
- elif test ! -f $MANPAGE_RENAMES ; then
- { { echo "$as_me:5553: error: not a filename: $MANPAGE_RENAMES" >&5
-echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
- { (exit 1); exit 1; }; }
- fi
-
- test ! -d man && mkdir man
-
- # Construct a sed-script to perform renaming within man-pages
- if test -n "$MANPAGE_RENAMES" ; then
- test ! -d man && mkdir man
- sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >man/edit_man.sed
- fi
fi
+echo "$as_me:6034: result: $cf_cv_cc_u_d_options" >&5
+echo "${ECHO_T}$cf_cv_cc_u_d_options" >&6
-echo "$as_me:5567: result: $MANPAGE_RENAMES" >&5
-echo "${ECHO_T}$MANPAGE_RENAMES" >&6
+cf_XOPEN_SOURCE=500
+cf_POSIX_C_SOURCE=199506L
-echo "$as_me:5570: checking if manpage aliases will be installed" >&5
-echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
+case $host_os in #(vi
+aix[45]*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+ ;;
+darwin*) #(vi
+ # setting _XOPEN_SOURCE breaks things on Darwin
+ ;;
+freebsd*) #(vi
+ # 5.x headers associate
+ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
+ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
+ cf_POSIX_C_SOURCE=200112L
+ cf_XOPEN_SOURCE=600
+ CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ ;;
+hpux*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+ ;;
+irix[56].*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+ ;;
+linux*|gnu*) #(vi
-# Check whether --with-manpage-aliases or --without-manpage-aliases was given.
-if test "${with_manpage_aliases+set}" = set; then
- withval="$with_manpage_aliases"
- MANPAGE_ALIASES=$withval
+echo "$as_me:6063: checking if we must define _GNU_SOURCE" >&5
+echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
+if test "${cf_cv_gnu_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- MANPAGE_ALIASES=yes
-fi;
-echo "$as_me:5581: result: $MANPAGE_ALIASES" >&5
-echo "${ECHO_T}$MANPAGE_ALIASES" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6070 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
-if test "$LN_S" = "ln -s"; then
- cf_use_symlinks=yes
+#ifndef _XOPEN_SOURCE
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6085: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6088: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6091: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6094: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_gnu_source=no
else
- cf_use_symlinks=no
-fi
-
-MANPAGE_SYMLINKS=no
-if test "$MANPAGE_ALIASES" = yes ; then
-echo "$as_me:5592: checking if manpage symlinks should be used" >&5
-echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6103 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
-# Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
-if test "${with_manpage_symlinks+set}" = set; then
- withval="$with_manpage_symlinks"
- MANPAGE_SYMLINKS=$withval
+#ifdef _XOPEN_SOURCE
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6118: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6121: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6124: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6127: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_gnu_source=no
else
- MANPAGE_SYMLINKS=$cf_use_symlinks
-fi;
-
-if test "$$cf_use_symlinks" = no; then
-if test "$MANPAGE_SYMLINKS" = yes ; then
- { echo "$as_me:5605: WARNING: cannot make symlinks" >&5
-echo "$as_me: WARNING: cannot make symlinks" >&2;}
- MANPAGE_SYMLINKS=no
-fi
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_gnu_source=yes
fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$cf_save"
-echo "$as_me:5611: result: $MANPAGE_SYMLINKS" >&5
-echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
fi
+rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:5615: checking for manpage tbl" >&5
-echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
-
-# Check whether --with-manpage-tbl or --without-manpage-tbl was given.
-if test "${with_manpage_tbl+set}" = set; then
- withval="$with_manpage_tbl"
- MANPAGE_TBL=$withval
-else
- MANPAGE_TBL=no
-fi;
-
-echo "$as_me:5626: result: $MANPAGE_TBL" >&5
-echo "${ECHO_T}$MANPAGE_TBL" >&6
+fi
+echo "$as_me:6142: result: $cf_cv_gnu_source" >&5
+echo "${ECHO_T}$cf_cv_gnu_source" >&6
+test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- if test "$prefix" = "NONE" ; then
- cf_prefix="$ac_default_prefix"
- else
- cf_prefix="$prefix"
- fi
+ ;;
+mirbsd*) #(vi
+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+ ;;
+netbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+ ;;
+openbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+ ;;
+osf[45]*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+ ;;
+nto-qnx*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_QNX_SOURCE"
+ ;;
+sco*) #(vi
+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+ ;;
+solaris*) #(vi
+ CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+ ;;
+*)
+ echo "$as_me:6169: checking if we should define _XOPEN_SOURCE" >&5
+echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
+if test "${cf_cv_xopen_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
- case "$MANPAGE_FORMAT" in # (vi
- *catonly*) # (vi
- cf_format=yes
- cf_inboth=no
- ;;
- *formatted*) # (vi
- cf_format=yes
- cf_inboth=yes
- ;;
- *)
- cf_format=no
- cf_inboth=no
- ;;
- esac
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6176 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
-test ! -d man && mkdir man
+#ifndef _XOPEN_SOURCE
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6191: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6194: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6197: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6200: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_xopen_source=no
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6209 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
-cf_so_strip=
-cf_compress=
-case "$MANPAGE_FORMAT" in #(vi
-*compress*) #(vi
- cf_so_strip="Z"
- cf_compress=compress
- ;;
-*gzip*) #(vi
- cf_so_strip="gz"
- cf_compress=gzip
- ;;
-esac
+#ifdef _XOPEN_SOURCE
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6224: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6227: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6230: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6233: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_xopen_source=no
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_xopen_source=$cf_XOPEN_SOURCE
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CPPFLAGS="$cf_save"
-cf_edit_man=man/edit_man.sh
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
-cat >$cf_edit_man <<CF_EOF
-#! /bin/sh
-# this script is generated by the configure-script CF_MAN_PAGES macro.
-prefix="$cf_prefix"
-datadir="$datadir"
-NCURSES_OSPEED="$NCURSES_OSPEED"
-TERMINFO="$TERMINFO"
-MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
-INSTALL="$INSTALL"
-INSTALL_DATA="$INSTALL_DATA"
-transform="$program_transform_name"
+fi
+echo "$as_me:6248: result: $cf_cv_xopen_source" >&5
+echo "${ECHO_T}$cf_cv_xopen_source" >&6
+ if test "$cf_cv_xopen_source" != no ; then
-TMP=\${TMPDIR-/tmp}/man\$\$
-trap "rm -f \$TMP" 0 1 2 5 15
+# remove _XOPEN_SOURCE symbol from $CFLAGS
+CFLAGS=`echo "$CFLAGS" | \
+ sed -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?$//g'`
-form=\$1
-shift || exit 1
+# remove _XOPEN_SOURCE symbol from $CPPFLAGS
+CPPFLAGS=`echo "$CPPFLAGS" | \
+ sed -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]_XOPEN_SOURCE\(=[^ ]*\)\?$//g'`
-verb=\$1
-shift || exit 1
+ test "$cf_cv_cc_u_d_options" = yes && \
+ CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE"
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+ fi
-mandir=\$1
-shift || exit 1
+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
-srcdir=\$1
-shift || exit 1
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
-if test "\$form" = normal ; then
- if test "$cf_format" = yes ; then
- if test "$cf_inboth" = no ; then
- sh \$0 format \$verb \$mandir \$srcdir \$*
- exit $?
- fi
- fi
- cf_subdir=\$mandir/man
- cf_tables=$MANPAGE_TBL
+# remove _POSIX_C_SOURCE symbol from $cf_save_CFLAGS
+cf_trim_CFLAGS=`echo "$cf_save_CFLAGS" | \
+ sed -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?$//g'`
+
+# remove _POSIX_C_SOURCE symbol from $cf_save_CPPFLAGS
+cf_trim_CPPFLAGS=`echo "$cf_save_CPPFLAGS" | \
+ sed -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?[ ]/ /g' \
+ -e 's/-[UD]_POSIX_C_SOURCE\(=[^ ]*\)\?$//g'`
+
+echo "$as_me:6282: checking if we should define _POSIX_C_SOURCE" >&5
+echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
+if test "${cf_cv_posix_c_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cf_subdir=\$mandir/cat
- cf_tables=yes
-fi
-# process the list of source-files
-for i in \$* ; do
-case \$i in #(vi
-*.orig|*.rej) ;; #(vi
-*.[0-9]*)
- section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
- if test \$verb = installing ; then
- if test ! -d \$cf_subdir\${section} ; then
- \$MKDIRS \$cf_subdir\$section
- fi
- fi
- aliases=
- source=\`basename \$i\`
- inalias=\$source
- test ! -f \$inalias && inalias="\$srcdir/\$inalias"
- if test ! -f \$inalias ; then
- echo .. skipped \$source
- continue
- fi
-CF_EOF
+echo "(line 6288) testing if the symbol is already defined go no further ..." 1>&5
-if test "$MANPAGE_ALIASES" != no ; then
-cat >>$cf_edit_man <<CF_EOF
- aliases=\`sed -f \$srcdir/manlinks.sed \$inalias | sort -u\`
-CF_EOF
-fi
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6291 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
-if test "$MANPAGE_RENAMES" = no ; then
-cat >>$cf_edit_man <<CF_EOF
- # perform program transformations for section 1 man pages
- if test \$section = 1 ; then
- target=\$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
- else
- target=\$cf_subdir\${section}/\$source
- fi
-CF_EOF
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6306: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6309: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6312: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6315: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_posix_c_source=no
else
-cat >>$cf_edit_man <<CF_EOF
- target=\`grep "^\$source" $MANPAGE_RENAMES | $AWK '{print \$2}'\`
- if test -z "\$target" ; then
- echo '? missing rename for '\$source
- target="\$source"
- fi
- target="\$cf_subdir\${section}/\${target}"
-CF_EOF
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_want_posix_source=no
+ case .$cf_POSIX_C_SOURCE in #(vi
+ .[12]??*) #(vi
+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ ;;
+ .2) #(vi
+ cf_cv_posix_c_source="-D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ cf_want_posix_source=yes
+ ;;
+ .*)
+ cf_want_posix_source=yes
+ ;;
+ esac
+ if test "$cf_want_posix_source" = yes ; then
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6336 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
+
+#ifdef _POSIX_SOURCE
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6351: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6354: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6357: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6360: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_posix_c_source="$cf_cv_posix_c_source -D_POSIX_SOURCE"
fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ fi
- # replace variables in man page
+echo "(line 6371) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
- for cf_name in captoinfo clear infocmp infotocap tic toe tput
- do
-cat >>$cf_edit_man <<CF_EOF
- prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
-CF_EOF
- done
+ CFLAGS="$cf_trim_CFLAGS"
+ CPPFLAGS="$cf_trim_CPPFLAGS $cf_cv_posix_c_source"
-cat >>$cf_edit_man <<CF_EOF
- sed -e "s,@DATADIR@,\$datadir," \\
- -e "s,@TERMINFO@,\$TERMINFO," \\
- -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
-CF_EOF
+echo "(line 6376) testing if the second compile does not leave our definition intact error ..." 1>&5
- for cf_name in captoinfo clear infocmp infotocap tic toe tput
- do
- cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
-cat >>$cf_edit_man <<CF_EOF
- -e "s,@$cf_NAME@,\$prog_$cf_name," \\
-CF_EOF
- done
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6379 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int
+main ()
+{
-if test -f $MANPAGE_RENAMES ; then
-cat >>$cf_edit_man <<CF_EOF
- < \$i | sed -f $srcdir/edit_man.sed >\$TMP
-CF_EOF
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6394: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6397: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6400: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6403: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ :
else
-cat >>$cf_edit_man <<CF_EOF
- < \$i >\$TMP
-CF_EOF
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_posix_c_source=no
fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$cf_save_CFLAGS"
+ CPPFLAGS="$cf_save_CPPFLAGS"
-cat >>$cf_edit_man <<CF_EOF
-if test \$cf_tables = yes ; then
- tbl \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
fi
-CF_EOF
+rm -f conftest.$ac_objext conftest.$ac_ext
-if test $with_curses_h != yes ; then
-cat >>$cf_edit_man <<CF_EOF
- sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
-CF_EOF
fi
+echo "$as_me:6419: result: $cf_cv_posix_c_source" >&5
+echo "${ECHO_T}$cf_cv_posix_c_source" >&6
-cat >>$cf_edit_man <<CF_EOF
- if test \$form = format ; then
- nroff -man \$TMP >\$TMP.out
- mv \$TMP.out \$TMP
- fi
-CF_EOF
-
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
- if test \$verb = installing ; then
- if ( $cf_compress -f \$TMP )
- then
- mv \$TMP.$cf_so_strip \$TMP
- fi
+if test "$cf_cv_posix_c_source" != no ; then
+ CFLAGS="$cf_trim_CFLAGS"
+ CPPFLAGS="$cf_trim_CPPFLAGS"
+ if test "$cf_cv_cc_u_d_options" = yes ; then
+ cf_temp_posix_c_source=`echo "$cf_cv_posix_c_source" | \
+ sed -e 's/-D/-U/g' -e 's/=[^ ]*//g'`
+ CPPFLAGS="$CPPFLAGS $cf_temp_posix_c_source"
fi
- target="\$target.$cf_so_strip"
-CF_EOF
+ CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
fi
-case "$MANPAGE_FORMAT" in #(vi
-*BSDI*)
-cat >>$cf_edit_man <<CF_EOF
- if test \$form = format ; then
- # BSDI installs only .0 suffixes in the cat directories
- target="\`echo \$target|sed -e 's/\.[1-9]\+[a-z]*/.0/'\`"
- fi
-CF_EOF
- ;;
+ ;;
esac
-cat >>$cf_edit_man <<CF_EOF
- suffix=\`basename \$target | sed -e 's%^[^.]*%%'\`
- if test \$verb = installing ; then
- echo \$verb \$target
- \$INSTALL_DATA \$TMP \$target
- test -n "\$aliases" && (
- cd \$cf_subdir\${section} && (
- source=\`echo \$target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
- test -n "$cf_so_strip" && source=\`echo \$source |sed -e 's%\.$cf_so_strip\$%%'\`
- target=\`basename \$target\`
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
+# Checks for CODESET support.
- if test "$MANPAGE_SYMLINKS" = yes ; then
- if test -f \$cf_alias\${suffix} ; then
- if ( cmp -s \$target \$cf_alias\${suffix} )
- then
- continue
- fi
- fi
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- $LN_S \$target \$cf_alias\${suffix}
- elif test "\$target" != "\$cf_alias\${suffix}" ; then
- echo ".so \$source" >\$TMP
-CF_EOF
-if test -n "$cf_compress" ; then
-cat >>$cf_edit_man <<CF_EOF
- if test -n "$cf_so_strip" ; then
- $cf_compress -f \$TMP
- mv \$TMP.$cf_so_strip \$TMP
- fi
-CF_EOF
+ echo "$as_me:6438: checking for nl_langinfo and CODESET" >&5
+echo $ECHO_N "checking for nl_langinfo and CODESET... $ECHO_C" >&6
+if test "${am_cv_langinfo_codeset+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6444 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int
+main ()
+{
+char* cs = nl_langinfo(CODESET);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6456: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6459: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:6462: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6465: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ am_cv_langinfo_codeset=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+am_cv_langinfo_codeset=no
fi
-cat >>$cf_edit_man <<CF_EOF
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
- fi
- done
- )
- )
- elif test \$verb = removing ; then
- echo \$verb \$target
- rm -f \$target
- test -n "\$aliases" && (
- cd \$cf_subdir\${section} && (
- for cf_alias in \$aliases
- do
- if test \$section = 1 ; then
- cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
- fi
-
- echo .. \$verb alias \$cf_alias\${suffix}
- rm -f \$cf_alias\${suffix}
- done
- )
- )
- else
-# echo ".hy 0"
- cat \$TMP
- fi
- ;;
-esac
-done
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-if test $cf_inboth = yes ; then
-if test \$form != format ; then
- sh \$0 format \$verb \$mandir \$srcdir \$*
fi
-fi
-
-exit 0
-CF_EOF
-chmod 755 $cf_edit_man
-
-###############################################################################
-
-### Note that some functions (such as const) are normally disabled anyway.
-echo "$as_me:5914: checking if you want to build with function extensions" >&5
-echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
+echo "$as_me:6476: result: $am_cv_langinfo_codeset" >&5
+echo "${ECHO_T}$am_cv_langinfo_codeset" >&6
+ if test $am_cv_langinfo_codeset = yes; then
-# Check whether --enable-ext-funcs or --disable-ext-funcs was given.
-if test "${enable_ext_funcs+set}" = set; then
- enableval="$enable_ext_funcs"
- with_ext_funcs=$enableval
-else
- with_ext_funcs=yes
-fi;
-echo "$as_me:5924: result: $with_ext_funcs" >&5
-echo "${ECHO_T}$with_ext_funcs" >&6
-if test "$with_ext_funcs" = yes ; then
- NCURSES_EXT_FUNCS=1
- cat >>confdefs.h <<\EOF
-#define HAVE_CURSES_VERSION 1
+cat >>confdefs.h <<\EOF
+#define HAVE_LANGINFO_CODESET 1
EOF
- cat >>confdefs.h <<\EOF
-#define HAVE_HAS_KEY 1
-EOF
+ fi
- cat >>confdefs.h <<\EOF
-#define HAVE_RESIZETERM 1
-EOF
+# use these variables to work around a defect in gcc's fixincludes.
+NCURSES_OK_WCHAR_T=
+NCURSES_OK_WINT_T=
- cat >>confdefs.h <<\EOF
-#define HAVE_RESIZE_TERM 1
-EOF
+echo "$as_me:6490: checking if you want wide-character code" >&5
+echo $ECHO_N "checking if you want wide-character code... $ECHO_C" >&6
+# Check whether --enable-widec or --disable-widec was given.
+if test "${enable_widec+set}" = set; then
+ enableval="$enable_widec"
+ with_widec=$enableval
+else
+ with_widec=no
+fi;
+echo "$as_me:6500: result: $with_widec" >&5
+echo "${ECHO_T}$with_widec" >&6
+if test "$with_widec" = yes ; then
+ LIB_SUFFIX="w${LIB_SUFFIX}"
cat >>confdefs.h <<\EOF
-#define HAVE_USE_DEFAULT_COLORS 1
+#define USE_WIDEC_SUPPORT 1
EOF
- cat >>confdefs.h <<\EOF
-#define HAVE_WRESIZE 1
-EOF
+echo "$as_me:6508: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
+echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6511 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
- cat >>confdefs.h <<\EOF
-#define NCURSES_EXT_FUNCS 1
-EOF
+int
+main ()
+{
+#ifndef _XOPEN_SOURCE_EXTENDED
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6527: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6530: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6533: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6536: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_result=no
else
- NCURSES_EXT_FUNCS=0
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_result=yes
fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:6545: result: $cf_result" >&5
+echo "${ECHO_T}$cf_result" >&6
-### use option --enable-const to turn on use of const beyond that in XSI.
-echo "$as_me:5961: checking for extended use of const keyword" >&5
-echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
+if test "$cf_result" = yes ; then
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
+elif test "x" != "x" ; then
+ echo "$as_me:6551: checking checking for compatible value versus " >&5
+echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6554 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
-# Check whether --enable-const or --disable-const was given.
-if test "${enable_const+set}" = set; then
- enableval="$enable_const"
- with_ext_const=$enableval
+int
+main ()
+{
+
+#if _XOPEN_SOURCE_EXTENDED- < 0
+make an error
+#endif
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:6570: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:6573: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:6576: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6579: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_result=yes
else
- with_ext_const=no
-fi;
-echo "$as_me:5971: result: $with_ext_const" >&5
-echo "${ECHO_T}$with_ext_const" >&6
-NCURSES_CONST='/*nothing*/'
-if test "$with_ext_const" = yes ; then
- NCURSES_CONST=const
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_result=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ echo "$as_me:6588: result: $cf_result" >&5
+echo "${ECHO_T}$cf_result" >&6
+ if test "$cf_result" = no ; then
+ # perhaps we can override it - try...
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
+ fi
fi
-echo "$as_me:5978: checking if you want \$NCURSES_NO_PADDING code" >&5
-echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
+ # with_overwrite=no
+ NCURSES_CH_T=cchar_t
-# Check whether --enable-no-padding or --disable-no-padding was given.
-if test "${enable_no_padding+set}" = set; then
- enableval="$enable_no_padding"
- with_no_padding=$enableval
+for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc
+do
+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
+echo "$as_me:6602: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
+if eval "test \"\${$as_ac_var+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- with_no_padding=$with_ext_funcs
-fi;
-echo "$as_me:5988: result: $with_no_padding" >&5
-echo "${ECHO_T}$with_no_padding" >&6
-test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
-#define NCURSES_NO_PADDING 1
-EOF
+ cat >conftest.$ac_ext <<_ACEOF
+#line 6608 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below. */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char $ac_func ();
+char (*f) ();
-### use option --enable-sigwinch to turn on use of SIGWINCH logic
-echo "$as_me:5995: checking if you want SIGWINCH handler" >&5
-echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
+int
+main ()
+{
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+f = $ac_func;
+#endif
-# Check whether --enable-sigwinch or --disable-sigwinch was given.
-if test "${enable_sigwinch+set}" = set; then
- enableval="$enable_sigwinch"
- with_sigwinch=$enableval
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6639: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6642: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:6645: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6648: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ eval "$as_ac_var=yes"
else
- with_sigwinch=$with_ext_funcs
-fi;
-echo "$as_me:6005: result: $with_sigwinch" >&5
-echo "${ECHO_T}$with_sigwinch" >&6
-test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
-#define USE_SIGWINCH 1
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+eval "$as_ac_var=no"
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:6658: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+if test `eval echo '${'$as_ac_var'}'` = yes; then
+ cat >>confdefs.h <<EOF
+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
EOF
-### use option --enable-tcap-names to allow user to define new capabilities
-echo "$as_me:6012: checking if you want user-definable terminal capabilities like termcap" >&5
-echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
-
-# Check whether --enable-tcap-names or --disable-tcap-names was given.
-if test "${enable_tcap_names+set}" = set; then
- enableval="$enable_tcap_names"
- with_tcap_names=$enableval
-else
- with_tcap_names=$with_ext_funcs
-fi;
-echo "$as_me:6022: result: $with_tcap_names" >&5
-echo "${ECHO_T}$with_tcap_names" >&6
-NCURSES_XNAMES=0
-test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-
-###############################################################################
-# These options are relatively safe to experiment with.
-
-echo "$as_me:6030: checking if you want all development code" >&5
-echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
-
-# Check whether --with-develop or --without-develop was given.
-if test "${with_develop+set}" = set; then
- withval="$with_develop"
- with_develop=$withval
-else
- with_develop=no
-fi;
-echo "$as_me:6040: result: $with_develop" >&5
-echo "${ECHO_T}$with_develop" >&6
+fi
+done
-### use option --enable-hard-tabs to turn on use of hard-tabs optimize
-echo "$as_me:6044: checking if you want hard-tabs code" >&5
-echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
+ if test "$ac_cv_func_putwc" != yes ; then
-# Check whether --enable-hard-tabs or --disable-hard-tabs was given.
-if test "${enable_hard_tabs+set}" = set; then
- enableval="$enable_hard_tabs"
- with_hardtabs=$enableval
+echo "$as_me:6670: checking for putwc in libutf8" >&5
+echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6
+if test "${cf_cv_libutf8+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- with_hardtabs=$with_develop
-fi;
-echo "$as_me:6054: result: $with_hardtabs" >&5
-echo "${ECHO_T}$with_hardtabs" >&6
-test "$with_hardtabs" = yes && cat >>confdefs.h <<\EOF
-#define USE_HARD_TABS 1
-EOF
-echo "$as_me:6060: checking if you want to use restrict environment when running as root" >&5
-echo $ECHO_N "checking if you want to use restrict environment when running as root... $ECHO_C" >&6
+ cf_save_LIBS="$LIBS"
+ LIBS="-lutf8 $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6679 "configure"
+#include "confdefs.h"
-# Check whether --enable-root-environ or --disable-root-environ was given.
-if test "${enable_root_environ+set}" = set; then
- enableval="$enable_root_environ"
- with_root_environ=$enableval
+#include <libutf8.h>
+int
+main ()
+{
+putwc(0,0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:6692: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:6695: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:6698: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:6701: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_libutf8=yes
else
- with_root_environ=yes
-fi;
-echo "$as_me:6070: result: $with_root_environ" >&5
-echo "${ECHO_T}$with_root_environ" >&6
-test "$with_root_environ" = yes && cat >>confdefs.h <<\EOF
-#define USE_ROOT_ENVIRON 1
-EOF
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_libutf8=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+ LIBS="$cf_save_LIBS"
-### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
-echo "$as_me:6077: checking if you want limited support for xmc" >&5
-echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
+fi
+echo "$as_me:6713: result: $cf_cv_libutf8" >&5
+echo "${ECHO_T}$cf_cv_libutf8" >&6
-# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
-if test "${enable_xmc_glitch+set}" = set; then
- enableval="$enable_xmc_glitch"
- with_xmc_glitch=$enableval
-else
- with_xmc_glitch=$with_develop
-fi;
-echo "$as_me:6087: result: $with_xmc_glitch" >&5
-echo "${ECHO_T}$with_xmc_glitch" >&6
-test "$with_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
-#define USE_XMC_SUPPORT 1
+if test "$cf_cv_libutf8" = yes ; then
+ cat >>confdefs.h <<\EOF
+#define HAVE_LIBUTF8_H 1
EOF
-###############################################################################
-# These are just experimental, probably should not be in a package:
+ LIBS="-lutf8 $LIBS"
+fi
-echo "$as_me:6096: checking if you do not want to assume colors are white-on-black" >&5
-echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
+ if test "$cf_cv_libutf8" = yes ; then
+ NCURSES_LIBUTF8=1
+ fi
+ fi
-# Check whether --enable-assumed-color or --disable-assumed-color was given.
-if test "${enable_assumed_color+set}" = set; then
- enableval="$enable_assumed_color"
- with_assumed_color=$enableval
+# This is needed on Tru64 5.0 to declare mbstate_t
+echo "$as_me:6730: checking if we must include wchar.h to declare mbstate_t" >&5
+echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
+if test "${cf_cv_mbstate_t+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
else
- with_assumed_color=yes
-fi;
-echo "$as_me:6106: result: $with_assumed_color" >&5
-echo "${ECHO_T}$with_assumed_color" >&6
-test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
-#define USE_ASSUMED_COLOR 1
-EOF
-### use option --enable-hashmap to turn on use of hashmap scrolling logic
-echo "$as_me:6113: checking if you want hashmap scrolling-optimization code" >&5
-echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+#line 6737 "configure"
+#include "confdefs.h"
-# Check whether --enable-hashmap or --disable-hashmap was given.
-if test "${enable_hashmap+set}" = set; then
- enableval="$enable_hashmap"
- with_hashmap=$enableval
-else
- with_hashmap=yes
-fi;
-echo "$as_me:6123: result: $with_hashmap" >&5
-echo "${ECHO_T}$with_hashmap" >&6
-test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
-#define USE_HASHMAP 1
-EOF
-
-### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
-echo "$as_me:6130: checking if you want colorfgbg code" >&5
-echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
-
-# Check whether --enable-colorfgbg or --disable-colorfgbg was given.
-if test "${enable_colorfgbg+set}" = set; then
- enableval="$enable_colorfgbg"
- with_colorfgbg=$enableval
-else
- with_colorfgbg=no
-fi;
-echo "$as_me:6140: result: $with_colorfgbg" >&5
-echo "${ECHO_T}$with_colorfgbg" >&6
-test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
-#define USE_COLORFGBG 1
-EOF
-
-echo "$as_me:6146: checking if you want experimental safe-sprintf code" >&5
-echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
-
-# Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
-if test "${enable_safe_sprintf+set}" = set; then
- enableval="$enable_safe_sprintf"
- with_safe_sprintf=$enableval
-else
- with_safe_sprintf=no
-fi;
-echo "$as_me:6156: result: $with_safe_sprintf" >&5
-echo "${ECHO_T}$with_safe_sprintf" >&6
-test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
-#define USE_SAFE_SPRINTF 1
-EOF
-
-### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
-# when hashmap is used scroll hints are useless
-if test "$with_hashmap" = no ; then
-echo "$as_me:6165: checking if you want to experiment without scrolling-hints code" >&5
-echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
-
-# Check whether --enable-scroll-hints or --disable-scroll-hints was given.
-if test "${enable_scroll_hints+set}" = set; then
- enableval="$enable_scroll_hints"
- with_scroll_hints=$enableval
-else
- with_scroll_hints=yes
-fi;
-echo "$as_me:6175: result: $with_scroll_hints" >&5
-echo "${ECHO_T}$with_scroll_hints" >&6
-test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
-#define USE_SCROLL_HINTS 1
-EOF
-
-fi
-
-### use option --enable-widec to turn on use of wide-character support
-NCURSES_CH_T=chtype
-NCURSES_LIBUTF8=0
-
-NEED_WCHAR_H=0
-NCURSES_MBSTATE_T=0
-NCURSES_WCHAR_T=0
-NCURSES_WINT_T=0
-
-# Check to define _XOPEN_SOURCE "automatically"
-
-case $host_os in #(vi
-freebsd*) #(vi
- CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600"
- ;;
-hpux*) #(vi
- CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
- ;;
-irix6.*) #(vi
- CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
- ;;
-linux*) #(vi
-
-echo "$as_me:6206: checking if we must define _GNU_SOURCE" >&5
-echo $ECHO_N "checking if we must define _GNU_SOURCE... $ECHO_C" >&6
-if test "${cf_cv_gnu_source+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
-cat >conftest.$ac_ext <<_ACEOF
-#line 6213 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
int
main ()
{
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
+mbstate_t state
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6228: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6755: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6231: \$? = $ac_status" >&5
+ echo "$as_me:6758: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6234: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6761: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6237: \$? = $ac_status" >&5
+ echo "$as_me:6764: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_cv_gnu_source=no
+ cf_cv_mbstate_t=no
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
-#line 6246 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6771 "configure"
#include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <wchar.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
int
main ()
{
-
-#ifdef _XOPEN_SOURCE
-make an error
-#endif
+mbstate_t value
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6261: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6790: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6264: \$? = $ac_status" >&5
+ echo "$as_me:6793: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6267: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6796: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6270: \$? = $ac_status" >&5
+ echo "$as_me:6799: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_cv_gnu_source=no
+ cf_cv_mbstate_t=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_cv_gnu_source=yes
+cf_cv_mbstate_t=unknown
fi
rm -f conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS="$cf_save"
-
fi
rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:6811: result: $cf_cv_mbstate_t" >&5
+echo "${ECHO_T}$cf_cv_mbstate_t" >&6
+
+if test "$cf_cv_mbstate_t" = yes ; then
+ cat >>confdefs.h <<\EOF
+#define NEED_WCHAR_H 1
+EOF
+ NEED_WCHAR_H=1
fi
-echo "$as_me:6285: result: $cf_cv_gnu_source" >&5
-echo "${ECHO_T}$cf_cv_gnu_source" >&6
-test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
- ;;
-mirbsd*) #(vi
- # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
- ;;
-netbsd*) #(vi
- # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
- ;;
-openbsd*) #(vi
- # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
- ;;
-osf[45]*) #(vi
- CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
- ;;
-sco*) #(vi
- # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
- ;;
-solaris*) #(vi
- CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
- ;;
-*)
- echo "$as_me:6309: checking if we should define _XOPEN_SOURCE" >&5
-echo $ECHO_N "checking if we should define _XOPEN_SOURCE... $ECHO_C" >&6
-if test "${cf_cv_xopen_source+set}" = set; then
+# if we do not find mbstate_t in either place, use substitution to provide a fallback.
+if test "$cf_cv_mbstate_t" = unknown ; then
+ NCURSES_MBSTATE_T=1
+fi
+
+# This is needed on Tru64 5.0 to declare wchar_t
+echo "$as_me:6828: checking if we must include wchar.h to declare wchar_t" >&5
+echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
+if test "${cf_cv_wchar_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-#line 6316 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6835 "configure"
#include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
int
main ()
{
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
+wchar_t state
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6331: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6853: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6334: \$? = $ac_status" >&5
+ echo "$as_me:6856: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6337: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6859: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6340: \$? = $ac_status" >&5
+ echo "$as_me:6862: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_cv_xopen_source=no
+ cf_cv_wchar_t=no
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
- cat >conftest.$ac_ext <<_ACEOF
-#line 6349 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6869 "configure"
#include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <wchar.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
int
main ()
{
-
-#ifdef _XOPEN_SOURCE
-make an error
-#endif
+wchar_t value
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6364: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6888: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6367: \$? = $ac_status" >&5
+ echo "$as_me:6891: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6370: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6894: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6373: \$? = $ac_status" >&5
+ echo "$as_me:6897: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_cv_xopen_source=no
+ cf_cv_wchar_t=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_cv_xopen_source=yes
+cf_cv_wchar_t=unknown
fi
rm -f conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS="$cf_save"
-
fi
rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:6909: result: $cf_cv_wchar_t" >&5
+echo "${ECHO_T}$cf_cv_wchar_t" >&6
+
+if test "$cf_cv_wchar_t" = yes ; then
+ cat >>confdefs.h <<\EOF
+#define NEED_WCHAR_H 1
+EOF
+ NEED_WCHAR_H=1
fi
-echo "$as_me:6388: result: $cf_cv_xopen_source" >&5
-echo "${ECHO_T}$cf_cv_xopen_source" >&6
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
- # FreeBSD 5.x headers demand this...
- echo "$as_me:6393: checking if we should define _POSIX_C_SOURCE" >&5
-echo $ECHO_N "checking if we should define _POSIX_C_SOURCE... $ECHO_C" >&6
-if test "${cf_cv_xopen_source+set}" = set; then
+# if we do not find wchar_t in either place, use substitution to provide a fallback.
+if test "$cf_cv_wchar_t" = unknown ; then
+ NCURSES_WCHAR_T=1
+fi
+
+# if we find wchar_t in either place, use substitution to provide a fallback.
+if test "$cf_cv_wchar_t" != unknown ; then
+ NCURSES_OK_WCHAR_T=1
+fi
+
+# This is needed on Tru64 5.0 to declare wint_t
+echo "$as_me:6931: checking if we must include wchar.h to declare wint_t" >&5
+echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
+if test "${cf_cv_wint_t+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- cat >conftest.$ac_ext <<_ACEOF
-#line 6400 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6938 "configure"
#include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
int
main ()
{
-
-#ifndef _POSIX_C_SOURCE
-make an error
-#endif
+wint_t state
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6415: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6956: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6418: \$? = $ac_status" >&5
+ echo "$as_me:6959: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6421: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6962: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6424: \$? = $ac_status" >&5
+ echo "$as_me:6965: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_cv_xopen_source=no
+ cf_cv_wint_t=no
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_save="$CPPFLAGS"
- CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
- cat >conftest.$ac_ext <<_ACEOF
-#line 6433 "configure"
+cat >conftest.$ac_ext <<_ACEOF
+#line 6972 "configure"
#include "confdefs.h"
-#include <sys/types.h>
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <wchar.h>
+#ifdef HAVE_LIBUTF8_H
+#include <libutf8.h>
+#endif
int
main ()
{
-
-#ifdef _POSIX_C_SOURCE
-make an error
-#endif
+wint_t value
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6448: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:6991: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6451: \$? = $ac_status" >&5
+ echo "$as_me:6994: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6454: \"$ac_try\"") >&5
+ { (eval echo "$as_me:6997: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6457: \$? = $ac_status" >&5
+ echo "$as_me:7000: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_cv_xopen_source=no
+ cf_cv_wint_t=yes
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_cv_xopen_source=yes
+cf_cv_wint_t=unknown
fi
rm -f conftest.$ac_objext conftest.$ac_ext
- CPPFLAGS="$cf_save"
-
fi
rm -f conftest.$ac_objext conftest.$ac_ext
+fi
+echo "$as_me:7012: result: $cf_cv_wint_t" >&5
+echo "${ECHO_T}$cf_cv_wint_t" >&6
+
+if test "$cf_cv_wint_t" = yes ; then
+ cat >>confdefs.h <<\EOF
+#define NEED_WCHAR_H 1
+EOF
+ NEED_WCHAR_H=1
fi
-echo "$as_me:6472: result: $cf_cv_xopen_source" >&5
-echo "${ECHO_T}$cf_cv_xopen_source" >&6
-test "$cf_cv_xopen_source" = yes && CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE"
+
+# if we do not find wint_t in either place, use substitution to provide a fallback.
+if test "$cf_cv_wint_t" = unknown ; then
+ NCURSES_WINT_T=1
+fi
+
+# if we find wint_t in either place, use substitution to provide a fallback.
+if test "$cf_cv_wint_t" != unknown ; then
+ NCURSES_OK_WINT_T=1
+fi
+
+ if test "$NCURSES_MBSTATE_T" != 0; then
+ cat >>confdefs.h <<\EOF
+#define NEED_MBSTATE_T_DEF 1
+EOF
+
+ fi
+fi
+
+### use option --disable-lp64 to allow long chtype
+case $cf_cv_abi_version in
+[345]*)
+ default_with_lp64=no
+ ;;
+*)
+ default_with_lp64=yes
;;
esac
-# use these variables to work around a defect in gcc's fixincludes.
-NCURSES_OK_WCHAR_T=
-NCURSES_OK_WINT_T=
-
-echo "$as_me:6482: checking if you want experimental wide-character code" >&5
-echo $ECHO_N "checking if you want experimental wide-character code... $ECHO_C" >&6
+echo "$as_me:7051: checking whether to enable _LP64 definition in curses.h" >&5
+echo $ECHO_N "checking whether to enable _LP64 definition in curses.h... $ECHO_C" >&6
-# Check whether --enable-widec or --disable-widec was given.
-if test "${enable_widec+set}" = set; then
- enableval="$enable_widec"
- with_widec=$enableval
+# Check whether --enable-lp64 or --disable-lp64 was given.
+if test "${enable_lp64+set}" = set; then
+ enableval="$enable_lp64"
+ with_lp64=$enableval
else
- with_widec=no
+ with_lp64=$default_with_lp64
fi;
-echo "$as_me:6492: result: $with_widec" >&5
-echo "${ECHO_T}$with_widec" >&6
-if test "$with_widec" = yes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
- cat >>confdefs.h <<\EOF
-#define USE_WIDEC_SUPPORT 1
+echo "$as_me:7061: result: $with_lp64" >&5
+echo "${ECHO_T}$with_lp64" >&6
+
+if test "$with_lp64" = yes ; then
+ cf_cv_enable_lp64=1
+else
+ cf_cv_enable_lp64=0
+fi
+
+ echo "$as_me:7070: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+echo $ECHO_N "checking for _LARGEFILE_SOURCE value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_largefile_source+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ while :; do
+ ac_cv_sys_largefile_source=no
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7078 "configure"
+#include "confdefs.h"
+#include <stdio.h>
+int
+main ()
+{
+return !fseeko;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7090: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:7093: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:7096: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7099: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7108 "configure"
+#include "confdefs.h"
+#define _LARGEFILE_SOURCE 1
+#include <stdio.h>
+int
+main ()
+{
+return !fseeko;
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7121: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:7124: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:7127: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7130: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_sys_largefile_source=1; break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ break
+done
+fi
+echo "$as_me:7141: result: $ac_cv_sys_largefile_source" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_source" >&6
+if test "$ac_cv_sys_largefile_source" != no; then
+
+cat >>confdefs.h <<EOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
EOF
-echo "$as_me:6500: checking if we must define _XOPEN_SOURCE" >&5
-echo $ECHO_N "checking if we must define _XOPEN_SOURCE... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line 6503 "configure"
+fi
+rm -f conftest*
+
+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+# in glibc 2.1.3, but that breaks too many other things.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+echo "$as_me:7155: checking for fseeko" >&5
+echo $ECHO_N "checking for fseeko... $ECHO_C" >&6
+if test "${ac_cv_func_fseeko+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7161 "configure"
#include "confdefs.h"
-#include <sys/types.h>
+#include <stdio.h>
+int
+main ()
+{
+return fseeko && fseeko (stdin, 0, 0);
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:7173: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:7176: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest$ac_exeext'
+ { (eval echo "$as_me:7179: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7182: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_func_fseeko=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+ac_cv_func_fseeko=no
+fi
+rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+fi
+echo "$as_me:7192: result: $ac_cv_func_fseeko" >&5
+echo "${ECHO_T}$ac_cv_func_fseeko" >&6
+if test $ac_cv_func_fseeko = yes; then
+
+cat >>confdefs.h <<\EOF
+#define HAVE_FSEEKO 1
+EOF
+
+fi
+
+# Check whether --enable-largefile or --disable-largefile was given.
+if test "${enable_largefile+set}" = set; then
+ enableval="$enable_largefile"
+
+fi;
+if test "$enable_largefile" != no; then
+ echo "$as_me:7209: checking for special C compiler options needed for large files" >&5
+echo $ECHO_N "checking for special C compiler options needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_largefile_CC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7221 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
int
main ()
{
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
;
return 0;
}
_ACEOF
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7241: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:7244: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:7247: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7250: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6519: \"$ac_compile\"") >&5
+ CC="$CC -n32"
+ rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7260: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6522: \$? = $ac_status" >&5
+ echo "$as_me:7263: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6525: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7266: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6528: \$? = $ac_status" >&5
+ echo "$as_me:7269: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_result=no
+ ac_cv_sys_largefile_CC=' -n32'; break
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_result=yes
fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:6537: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
+rm -f conftest.$ac_objext
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+echo "$as_me:7283: result: $ac_cv_sys_largefile_CC" >&5
+echo "${ECHO_T}$ac_cv_sys_largefile_CC" >&6
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
-if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-elif test "x500" != "x" ; then
- echo "$as_me:6543: checking checking for compatible value versus 500" >&5
-echo $ECHO_N "checking checking for compatible value versus 500... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
-#line 6546 "configure"
+ echo "$as_me:7289: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+echo $ECHO_N "checking for _FILE_OFFSET_BITS value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_file_offset_bits+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ while :; do
+ ac_cv_sys_file_offset_bits=no
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7297 "configure"
#include "confdefs.h"
#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main ()
+{
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7317: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:7320: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:7323: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7326: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ break
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7335 "configure"
+#include "confdefs.h"
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
int
main ()
{
-#if _XOPEN_SOURCE-500 < 0
-make an error
-#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6562: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7356: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6565: \$? = $ac_status" >&5
+ echo "$as_me:7359: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6568: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7362: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6571: \$? = $ac_status" >&5
+ echo "$as_me:7365: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_result=yes
+ ac_cv_sys_file_offset_bits=64; break
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_result=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
- echo "$as_me:6580: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
- fi
+ break
+done
fi
+echo "$as_me:7376: result: $ac_cv_sys_file_offset_bits" >&5
+echo "${ECHO_T}$ac_cv_sys_file_offset_bits" >&6
+if test "$ac_cv_sys_file_offset_bits" != no; then
-echo "$as_me:6588: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-echo $ECHO_N "checking if we must define _XOPEN_SOURCE_EXTENDED... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-#line 6591 "configure"
+cat >>confdefs.h <<EOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+EOF
+
+fi
+rm -f conftest*
+ echo "$as_me:7386: checking for _LARGE_FILES value needed for large files" >&5
+echo $ECHO_N "checking for _LARGE_FILES value needed for large files... $ECHO_C" >&6
+if test "${ac_cv_sys_large_files+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ while :; do
+ ac_cv_sys_large_files=no
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7394 "configure"
#include "confdefs.h"
#include <sys/types.h>
-
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
int
main ()
{
-#ifndef _XOPEN_SOURCE_EXTENDED
-make an error
-#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6607: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7414: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6610: \$? = $ac_status" >&5
+ echo "$as_me:7417: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6613: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7420: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6616: \$? = $ac_status" >&5
+ echo "$as_me:7423: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_result=no
+ break
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_result=yes
fi
rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:6625: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
-
-if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-elif test "x" != "x" ; then
- echo "$as_me:6631: checking checking for compatible value versus " >&5
-echo $ECHO_N "checking checking for compatible value versus ... $ECHO_C" >&6
- cat >conftest.$ac_ext <<_ACEOF
-#line 6634 "configure"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7432 "configure"
#include "confdefs.h"
+#define _LARGE_FILES 1
#include <sys/types.h>
-
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
int
main ()
{
-#if _XOPEN_SOURCE_EXTENDED- < 0
-make an error
-#endif
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6650: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:7453: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:6653: \$? = $ac_status" >&5
+ echo "$as_me:7456: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6656: \"$ac_try\"") >&5
+ { (eval echo "$as_me:7459: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:6659: \$? = $ac_status" >&5
+ echo "$as_me:7462: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
- cf_result=yes
+ ac_cv_sys_large_files=1; break
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
-cf_result=no
fi
rm -f conftest.$ac_objext conftest.$ac_ext
- echo "$as_me:6668: result: $cf_result" >&5
-echo "${ECHO_T}$cf_result" >&6
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
+ break
+done
+fi
+echo "$as_me:7473: result: $ac_cv_sys_large_files" >&5
+echo "${ECHO_T}$ac_cv_sys_large_files" >&6
+if test "$ac_cv_sys_large_files" != no; then
+
+cat >>confdefs.h <<EOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+EOF
+
+fi
+rm -f conftest*
+fi
+
+ # Normally we would collect these definitions in the config.h,
+ # but (like _XOPEN_SOURCE), some environments rely on having these
+ # defined before any of the system headers are included. Another
+ # case comes up with C++, e.g., on AIX the compiler compiles the
+ # header files by themselves before looking at the body files it is
+ # told to compile. For ncurses, those header files do not include
+ # the config.h
+ test "$ac_cv_sys_large_files" != no && CPPFLAGS="$CPPFLAGS -D_LARGE_FILES "
+ test "$ac_cv_sys_largefile_source" != no && CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE "
+
+ echo "$as_me:7495: checking whether to use struct dirent64" >&5
+echo $ECHO_N "checking whether to use struct dirent64... $ECHO_C" >&6
+if test "${cf_cv_struct_dirent64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >conftest.$ac_ext <<_ACEOF
+#line 7502 "configure"
+#include "confdefs.h"
+
+#include <sys/types.h>
+#include <dirent.h>
+
+int
+main ()
+{
+
+ /* if transitional largefile support is setup, this is true */
+ extern struct dirent64 * readdir(DIR *);
+ struct dirent64 *x = readdir((DIR *)0);
+ struct dirent *y = readdir((DIR *)0);
+ int z = x - y;
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:7523: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:7526: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:7529: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:7532: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_struct_dirent64=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_struct_dirent64=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+fi
+echo "$as_me:7543: result: $cf_cv_struct_dirent64" >&5
+echo "${ECHO_T}$cf_cv_struct_dirent64" >&6
+ test "$cf_cv_struct_dirent64" = yes && cat >>confdefs.h <<\EOF
+#define HAVE_STRUCT_DIRENT64 1
+EOF
+
+### use option --with-bool to override bool's type
+echo "$as_me:7550: checking for type of bool" >&5
+echo $ECHO_N "checking for type of bool... $ECHO_C" >&6
+
+# Check whether --with-bool or --without-bool was given.
+if test "${with_bool+set}" = set; then
+ withval="$with_bool"
+ NCURSES_BOOL="$withval"
+else
+ NCURSES_BOOL=auto
+fi;
+echo "$as_me:7560: result: $NCURSES_BOOL" >&5
+echo "${ECHO_T}$NCURSES_BOOL" >&6
+
+echo "$as_me:7563: checking for alternate terminal capabilities file" >&5
+echo $ECHO_N "checking for alternate terminal capabilities file... $ECHO_C" >&6
+
+# Check whether --with-caps or --without-caps was given.
+if test "${with_caps+set}" = set; then
+ withval="$with_caps"
+ TERMINFO_CAPS=Caps.$withval
+else
+ TERMINFO_CAPS=Caps
+fi;
+test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
+echo "$as_me:7574: result: $TERMINFO_CAPS" >&5
+echo "${ECHO_T}$TERMINFO_CAPS" >&6
+
+### use option --with-chtype to override chtype's type
+echo "$as_me:7578: checking for type of chtype" >&5
+echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
+
+# Check whether --with-chtype or --without-chtype was given.
+if test "${with_chtype+set}" = set; then
+ withval="$with_chtype"
+ NCURSES_CHTYPE="$withval"
+else
+ NCURSES_CHTYPE=auto
+fi;
+echo "$as_me:7588: result: $NCURSES_CHTYPE" >&5
+echo "${ECHO_T}$NCURSES_CHTYPE" >&6
+
+### use option --with-ospeed to override ospeed's type
+echo "$as_me:7592: checking for type of ospeed" >&5
+echo $ECHO_N "checking for type of ospeed... $ECHO_C" >&6
+
+# Check whether --with-ospeed or --without-ospeed was given.
+if test "${with_ospeed+set}" = set; then
+ withval="$with_ospeed"
+ NCURSES_OSPEED="$withval"
+else
+ NCURSES_OSPEED=short
+fi;
+echo "$as_me:7602: result: $NCURSES_OSPEED" >&5
+echo "${ECHO_T}$NCURSES_OSPEED" >&6
+
+### use option --with-mmask-t to override mmask_t's type
+echo "$as_me:7606: checking for type of mmask_t" >&5
+echo $ECHO_N "checking for type of mmask_t... $ECHO_C" >&6
+
+# Check whether --with-mmask-t or --without-mmask-t was given.
+if test "${with_mmask_t+set}" = set; then
+ withval="$with_mmask_t"
+ NCURSES_MMASK_T="$withval"
+else
+ NCURSES_MMASK_T=auto
+fi;
+echo "$as_me:7616: result: $NCURSES_MMASK_T" >&5
+echo "${ECHO_T}$NCURSES_MMASK_T" >&6
+
+### use option --enable-bsdpad to have tputs process BSD-style prefix padding
+echo "$as_me:7620: checking if tputs should process BSD-style prefix padding" >&5
+echo $ECHO_N "checking if tputs should process BSD-style prefix padding... $ECHO_C" >&6
+
+# Check whether --enable-bsdpad or --disable-bsdpad was given.
+if test "${enable_bsdpad+set}" = set; then
+ enableval="$enable_bsdpad"
+ with_bsdpad=$enableval
+else
+ with_bsdpad=no
+fi;
+echo "$as_me:7630: result: $with_bsdpad" >&5
+echo "${ECHO_T}$with_bsdpad" >&6
+test "$with_bsdpad" = yes && cat >>confdefs.h <<\EOF
+#define BSD_TPUTS 1
+EOF
+
+### Enable compiling-in rcs id's
+echo "$as_me:7637: checking if RCS identifiers should be compiled-in" >&5
+echo $ECHO_N "checking if RCS identifiers should be compiled-in... $ECHO_C" >&6
+
+# Check whether --with-rcs-ids or --without-rcs-ids was given.
+if test "${with_rcs_ids+set}" = set; then
+ withval="$with_rcs_ids"
+ with_rcs_ids=$withval
+else
+ with_rcs_ids=no
+fi;
+echo "$as_me:7647: result: $with_rcs_ids" >&5
+echo "${ECHO_T}$with_rcs_ids" >&6
+test "$with_rcs_ids" = yes && cat >>confdefs.h <<\EOF
+#define USE_RCS_IDS 1
+EOF
+
+###############################################################################
+
+echo "$as_me:7655: checking format of man-pages" >&5
+echo $ECHO_N "checking format of man-pages... $ECHO_C" >&6
+
+# Check whether --with-manpage-format or --without-manpage-format was given.
+if test "${with_manpage_format+set}" = set; then
+ withval="$with_manpage_format"
+ MANPAGE_FORMAT=$withval
+else
+ MANPAGE_FORMAT=unknown
+fi;
+
+test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=unknown
+MANPAGE_FORMAT=`echo "$MANPAGE_FORMAT" | sed -e 's/,/ /g'`
+
+cf_unknown=
+
+case $MANPAGE_FORMAT in
+unknown)
+ if test -z "$MANPATH" ; then
+ MANPATH="/usr/man:/usr/share/man"
+ fi
+
+ # look for the 'date' man-page (it's most likely to be installed!)
+ MANPAGE_FORMAT=
+ cf_preform=no
+ cf_catonly=yes
+ cf_example=date
+
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATHSEP}"
+ for cf_dir in $MANPATH; do
+ test -z "$cf_dir" && cf_dir=/usr/man
+ for cf_name in $cf_dir/man*/$cf_example.[01]* $cf_dir/cat*/$cf_example.[01]* $cf_dir/man*/$cf_example $cf_dir/cat*/$cf_example
+ do
+ cf_test=`echo $cf_name | sed -e 's/*//'`
+ if test "x$cf_test" = "x$cf_name" ; then
+
+ case "$cf_name" in
+ *.gz) MANPAGE_FORMAT="$MANPAGE_FORMAT gzip";;
+ *.Z) MANPAGE_FORMAT="$MANPAGE_FORMAT compress";;
+ *.0) MANPAGE_FORMAT="$MANPAGE_FORMAT BSDI";;
+ *) MANPAGE_FORMAT="$MANPAGE_FORMAT normal";;
+ esac
+
+ case "$cf_name" in
+ $cf_dir/man*)
+ cf_catonly=no
+ ;;
+ $cf_dir/cat*)
+ cf_preform=yes
+ ;;
+ esac
+ break
+ fi
+
+ # if we found a match in either man* or cat*, stop looking
+ if test -n "$MANPAGE_FORMAT" ; then
+ cf_found=no
+ test "$cf_preform" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT formatted"
+ test "$cf_catonly" = yes && MANPAGE_FORMAT="$MANPAGE_FORMAT catonly"
+ case "$cf_name" in
+ $cf_dir/cat*)
+ cf_found=yes
+ ;;
+ esac
+ test $cf_found=yes && break
+ fi
+ done
+ # only check the first directory in $MANPATH where we find manpages
+ if test -n "$MANPAGE_FORMAT" ; then
+ break
+ fi
+ done
+ # if we did not find the example, just assume it is normal
+ test -z "$MANPAGE_FORMAT" && MANPAGE_FORMAT=normal
+ IFS="$ac_save_ifs"
+ ;;
+*)
+ for cf_option in $MANPAGE_FORMAT; do
+ case $cf_option in #(vi
+ gzip|compress|BSDI|normal|formatted|catonly)
+ ;;
+ *)
+ cf_unknown="$cf_unknown $cf_option"
+ ;;
+ esac
+ done
+ ;;
+esac
+
+echo "$as_me:7744: result: $MANPAGE_FORMAT" >&5
+echo "${ECHO_T}$MANPAGE_FORMAT" >&6
+if test -n "$cf_unknown" ; then
+ { echo "$as_me:7747: WARNING: Unexpected manpage-format $cf_unknown" >&5
+echo "$as_me: WARNING: Unexpected manpage-format $cf_unknown" >&2;}
+fi
+
+echo "$as_me:7751: checking for manpage renaming" >&5
+echo $ECHO_N "checking for manpage renaming... $ECHO_C" >&6
+
+# Check whether --with-manpage-renames or --without-manpage-renames was given.
+if test "${with_manpage_renames+set}" = set; then
+ withval="$with_manpage_renames"
+ MANPAGE_RENAMES=$withval
+else
+ MANPAGE_RENAMES=yes
+fi;
+
+case ".$MANPAGE_RENAMES" in #(vi
+.no) #(vi
+ ;;
+.|.yes)
+ # Debian 'man' program?
+ if test -f /etc/debian_version ; then
+ MANPAGE_RENAMES=`cd $srcdir && pwd`/man/man_db.renames
+ else
+ MANPAGE_RENAMES=no
+ fi
+ ;;
+esac
+
+if test "$MANPAGE_RENAMES" != no ; then
+ if test -f $srcdir/man/$MANPAGE_RENAMES ; then
+ MANPAGE_RENAMES=`cd $srcdir/man && pwd`/$MANPAGE_RENAMES
+ elif test ! -f $MANPAGE_RENAMES ; then
+ { { echo "$as_me:7779: error: not a filename: $MANPAGE_RENAMES" >&5
+echo "$as_me: error: not a filename: $MANPAGE_RENAMES" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+
+ test ! -d man && mkdir man
+
+ # Construct a sed-script to perform renaming within man-pages
+ if test -n "$MANPAGE_RENAMES" ; then
+ test ! -d man && mkdir man
+ sh $srcdir/man/make_sed.sh $MANPAGE_RENAMES >./edit_man.sed
+ fi
+fi
+
+echo "$as_me:7793: result: $MANPAGE_RENAMES" >&5
+echo "${ECHO_T}$MANPAGE_RENAMES" >&6
+
+echo "$as_me:7796: checking if manpage aliases will be installed" >&5
+echo $ECHO_N "checking if manpage aliases will be installed... $ECHO_C" >&6
+
+# Check whether --with-manpage-aliases or --without-manpage-aliases was given.
+if test "${with_manpage_aliases+set}" = set; then
+ withval="$with_manpage_aliases"
+ MANPAGE_ALIASES=$withval
+else
+ MANPAGE_ALIASES=yes
+fi;
+
+echo "$as_me:7807: result: $MANPAGE_ALIASES" >&5
+echo "${ECHO_T}$MANPAGE_ALIASES" >&6
+
+if test "$LN_S" = "ln -s"; then
+ cf_use_symlinks=yes
+else
+ cf_use_symlinks=no
+fi
+
+MANPAGE_SYMLINKS=no
+if test "$MANPAGE_ALIASES" = yes ; then
+echo "$as_me:7818: checking if manpage symlinks should be used" >&5
+echo $ECHO_N "checking if manpage symlinks should be used... $ECHO_C" >&6
+
+# Check whether --with-manpage-symlinks or --without-manpage-symlinks was given.
+if test "${with_manpage_symlinks+set}" = set; then
+ withval="$with_manpage_symlinks"
+ MANPAGE_SYMLINKS=$withval
+else
+ MANPAGE_SYMLINKS=$cf_use_symlinks
+fi;
+
+if test "$$cf_use_symlinks" = no; then
+if test "$MANPAGE_SYMLINKS" = yes ; then
+ { echo "$as_me:7831: WARNING: cannot make symlinks" >&5
+echo "$as_me: WARNING: cannot make symlinks" >&2;}
+ MANPAGE_SYMLINKS=no
+fi
+fi
+
+echo "$as_me:7837: result: $MANPAGE_SYMLINKS" >&5
+echo "${ECHO_T}$MANPAGE_SYMLINKS" >&6
+fi
+
+echo "$as_me:7841: checking for manpage tbl" >&5
+echo $ECHO_N "checking for manpage tbl... $ECHO_C" >&6
+
+# Check whether --with-manpage-tbl or --without-manpage-tbl was given.
+if test "${with_manpage_tbl+set}" = set; then
+ withval="$with_manpage_tbl"
+ MANPAGE_TBL=$withval
+else
+ MANPAGE_TBL=no
+fi;
+
+echo "$as_me:7852: result: $MANPAGE_TBL" >&5
+echo "${ECHO_T}$MANPAGE_TBL" >&6
+
+ if test "$prefix" = "NONE" ; then
+ cf_prefix="$ac_default_prefix"
+ else
+ cf_prefix="$prefix"
+ fi
+
+ case "$MANPAGE_FORMAT" in # (vi
+ *catonly*) # (vi
+ cf_format=yes
+ cf_inboth=no
+ ;;
+ *formatted*) # (vi
+ cf_format=yes
+ cf_inboth=yes
+ ;;
+ *)
+ cf_format=no
+ cf_inboth=no
+ ;;
+ esac
+
+test ! -d man && mkdir man
+
+cf_so_strip=
+cf_compress=
+case "$MANPAGE_FORMAT" in #(vi
+*compress*) #(vi
+ cf_so_strip="Z"
+ cf_compress=compress
+ ;;
+*gzip*) #(vi
+ cf_so_strip="gz"
+ cf_compress=gzip
+ ;;
+esac
+
+cf_edit_man=./edit_man.sh
+
+cat >$cf_edit_man <<CF_EOF
+#! /bin/sh
+# this script is generated by the configure-script CF_MAN_PAGES macro.
+prefix="$cf_prefix"
+datadir="$datadir"
+NCURSES_OSPEED="$NCURSES_OSPEED"
+TERMINFO="$TERMINFO"
+MKDIRS="sh `cd $srcdir && pwd`/mkinstalldirs"
+INSTALL="$INSTALL"
+INSTALL_DATA="$INSTALL_DATA"
+transform="$program_transform_name"
+
+TMP=\${TMPDIR-/tmp}/man\$\$
+trap "rm -f \$TMP" 0 1 2 5 15
+
+form=\$1
+shift || exit 1
+
+verb=\$1
+shift || exit 1
+
+mandir=\$1
+shift || exit 1
+
+srcdir=\$1
+top_srcdir=\$srcdir/..
+shift || exit 1
+
+if test "\$form" = normal ; then
+ if test "$cf_format" = yes ; then
+ if test "$cf_inboth" = no ; then
+ sh \$0 format \$verb \$mandir \$srcdir \$*
+ exit $?
+ fi
+ fi
+ cf_subdir=\$mandir/man
+ cf_tables=$MANPAGE_TBL
+else
+ cf_subdir=\$mandir/cat
+ cf_tables=yes
+fi
+
+# process the list of source-files
+for i in \$* ; do
+case \$i in #(vi
+*.orig|*.rej) ;; #(vi
+*.[0-9]*)
+ section=\`expr "\$i" : '.*\\.\\([0-9]\\)[xm]*'\`;
+ if test \$verb = installing ; then
+ if test ! -d \$cf_subdir\${section} ; then
+ \$MKDIRS \$cf_subdir\$section
+ fi
+ fi
+ aliases=
+ source=\`basename \$i\`
+ inalias=\$source
+ test ! -f \$inalias && inalias="\$srcdir/\$inalias"
+ if test ! -f \$inalias ; then
+ echo .. skipped \$source
+ continue
+ fi
+CF_EOF
+
+if test "$MANPAGE_ALIASES" != no ; then
+cat >>$cf_edit_man <<CF_EOF
+ aliases=\`sed -f \$top_srcdir/man/manlinks.sed \$inalias | sort -u\`
+CF_EOF
+fi
+
+if test "$MANPAGE_RENAMES" = no ; then
+cat >>$cf_edit_man <<CF_EOF
+ # perform program transformations for section 1 man pages
+ if test \$section = 1 ; then
+ target=\$cf_subdir\${section}/\`echo \$source|sed "\${transform}"\`
+ else
+ target=\$cf_subdir\${section}/\$source
+ fi
+CF_EOF
+else
+cat >>$cf_edit_man <<CF_EOF
+ target=\`grep "^\$source" $MANPAGE_RENAMES | $AWK '{print \$2}'\`
+ if test -z "\$target" ; then
+ echo '? missing rename for '\$source
+ target="\$source"
+ fi
+ target="\$cf_subdir\${section}/\${target}"
+CF_EOF
+fi
+
+ # replace variables in man page
+
+ for cf_name in captoinfo clear infocmp infotocap tic toe tput
+ do
+cat >>$cf_edit_man <<CF_EOF
+ prog_$cf_name=\`echo $cf_name|sed "\${transform}"\`
+CF_EOF
+ done
+
+cat >>$cf_edit_man <<CF_EOF
+ sed -e "s,@DATADIR@,\$datadir," \\
+ -e "s,@TERMINFO@,\$TERMINFO," \\
+ -e "s,@NCURSES_OSPEED@,\$NCURSES_OSPEED," \\
+CF_EOF
+
+ for cf_name in captoinfo clear infocmp infotocap tic toe tput
+ do
+ cf_NAME=`echo "$cf_name" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cat >>$cf_edit_man <<CF_EOF
+ -e "s,@$cf_NAME@,\$prog_$cf_name," \\
+CF_EOF
+ done
+
+if test -f $MANPAGE_RENAMES ; then
+cat >>$cf_edit_man <<CF_EOF
+ < \$i | sed -f `pwd`/edit_man.sed >\$TMP
+CF_EOF
+else
+cat >>$cf_edit_man <<CF_EOF
+ < \$i >\$TMP
+CF_EOF
+fi
+
+cat >>$cf_edit_man <<CF_EOF
+if test \$cf_tables = yes ; then
+ tbl \$TMP >\$TMP.out
+ mv \$TMP.out \$TMP
+fi
+CF_EOF
+
+if test $with_curses_h != yes ; then
+cat >>$cf_edit_man <<CF_EOF
+ sed -e "/\#[ ]*include/s,curses.h,ncurses.h," < \$TMP >\$TMP.out
+ mv \$TMP.out \$TMP
+CF_EOF
+fi
+
+cat >>$cf_edit_man <<CF_EOF
+ if test \$form = format ; then
+ nroff -man \$TMP >\$TMP.out
+ mv \$TMP.out \$TMP
+ fi
+CF_EOF
+
+if test -n "$cf_compress" ; then
+cat >>$cf_edit_man <<CF_EOF
+ if test \$verb = installing ; then
+ if ( $cf_compress -f \$TMP )
+ then
+ mv \$TMP.$cf_so_strip \$TMP
+ fi
+ fi
+ target="\$target.$cf_so_strip"
+CF_EOF
+fi
+
+case "$MANPAGE_FORMAT" in #(vi
+*BSDI*)
+cat >>$cf_edit_man <<CF_EOF
+ if test \$form = format ; then
+ # BSDI installs only .0 suffixes in the cat directories
+ target="\`echo \$target|sed -e 's/\.[1-9]\+[a-z]*/.0/'\`"
+ fi
+CF_EOF
+ ;;
+esac
+
+cat >>$cf_edit_man <<CF_EOF
+ suffix=\`basename \$target | sed -e 's%^[^.]*%%'\`
+ if test \$verb = installing ; then
+ echo \$verb \$target
+ \$INSTALL_DATA \$TMP \$target
+ test -n "\$aliases" && (
+ cd \$cf_subdir\${section} && (
+ source=\`echo \$target |sed -e 's%^.*/\([^/][^/]*/[^/][^/]*$\)%\1%'\`
+ test -n "$cf_so_strip" && source=\`echo \$source |sed -e 's%\.$cf_so_strip\$%%'\`
+ target=\`basename \$target\`
+ for cf_alias in \$aliases
+ do
+ if test \$section = 1 ; then
+ cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
+ fi
+
+ if test "$MANPAGE_SYMLINKS" = yes ; then
+ if test -f \$cf_alias\${suffix} ; then
+ if ( cmp -s \$target \$cf_alias\${suffix} )
+ then
+ continue
+ fi
+ fi
+ echo .. \$verb alias \$cf_alias\${suffix}
+ rm -f \$cf_alias\${suffix}
+ $LN_S \$target \$cf_alias\${suffix}
+ elif test "\$target" != "\$cf_alias\${suffix}" ; then
+ echo ".so \$source" >\$TMP
+CF_EOF
+if test -n "$cf_compress" ; then
+cat >>$cf_edit_man <<CF_EOF
+ if test -n "$cf_so_strip" ; then
+ $cf_compress -f \$TMP
+ mv \$TMP.$cf_so_strip \$TMP
+ fi
+CF_EOF
+fi
+cat >>$cf_edit_man <<CF_EOF
+ echo .. \$verb alias \$cf_alias\${suffix}
+ rm -f \$cf_alias\${suffix}
+ \$INSTALL_DATA \$TMP \$cf_alias\${suffix}
+ fi
+ done
+ )
+ )
+ elif test \$verb = removing ; then
+ echo \$verb \$target
+ rm -f \$target
+ test -n "\$aliases" && (
+ cd \$cf_subdir\${section} && (
+ for cf_alias in \$aliases
+ do
+ if test \$section = 1 ; then
+ cf_alias=\`echo \$cf_alias|sed "\${transform}"\`
+ fi
+
+ echo .. \$verb alias \$cf_alias\${suffix}
+ rm -f \$cf_alias\${suffix}
+ done
+ )
+ )
+ else
+# echo ".hy 0"
+ cat \$TMP
fi
+ ;;
+esac
+done
+
+if test $cf_inboth = yes ; then
+if test \$form != format ; then
+ sh \$0 format \$verb \$mandir \$srcdir \$*
+fi
fi
- # with_overwrite=no
- NCURSES_CH_T=cchar_t
+exit 0
+CF_EOF
+chmod 755 $cf_edit_man
-for ac_func in putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc
-do
-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:6682: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
- cat >conftest.$ac_ext <<_ACEOF
-#line 6688 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below. */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error. */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
- builtin and then its argument prototype would still apply. */
-char $ac_func ();
-char (*f) ();
+###############################################################################
-int
-main ()
-{
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-f = $ac_func;
-#endif
+### Note that some functions (such as const) are normally disabled anyway.
+echo "$as_me:8141: checking if you want to build with function extensions" >&5
+echo $ECHO_N "checking if you want to build with function extensions... $ECHO_C" >&6
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6719: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:6722: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:6725: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6728: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- eval "$as_ac_var=yes"
+# Check whether --enable-ext-funcs or --disable-ext-funcs was given.
+if test "${enable_ext_funcs+set}" = set; then
+ enableval="$enable_ext_funcs"
+ with_ext_funcs=$enableval
else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-eval "$as_ac_var=no"
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
-fi
-echo "$as_me:6738: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-if test `eval echo '${'$as_ac_var'}'` = yes; then
- cat >>confdefs.h <<EOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+ with_ext_funcs=yes
+fi;
+echo "$as_me:8151: result: $with_ext_funcs" >&5
+echo "${ECHO_T}$with_ext_funcs" >&6
+if test "$with_ext_funcs" = yes ; then
+ NCURSES_EXT_FUNCS=1
+ cat >>confdefs.h <<\EOF
+#define HAVE_CURSES_VERSION 1
EOF
-fi
-done
-
- if test "$ac_cv_func_putwc" != yes ; then
+ cat >>confdefs.h <<\EOF
+#define HAVE_HAS_KEY 1
+EOF
-echo "$as_me:6750: checking for putwc in libutf8" >&5
-echo $ECHO_N "checking for putwc in libutf8... $ECHO_C" >&6
-if test "${cf_cv_libutf8+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+ cat >>confdefs.h <<\EOF
+#define HAVE_RESIZETERM 1
+EOF
- cf_save_LIBS="$LIBS"
- LIBS="-lutf8 $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-#line 6759 "configure"
-#include "confdefs.h"
+ cat >>confdefs.h <<\EOF
+#define HAVE_RESIZE_TERM 1
+EOF
-#include <libutf8.h>
-int
-main ()
-{
-putwc(0,0);
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:6772: \"$ac_link\"") >&5
- (eval $ac_link) 2>&5
- ac_status=$?
- echo "$as_me:6775: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:6778: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6781: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_libutf8=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_libutf8=no
-fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
- LIBS="$cf_save_LIBS"
+ cat >>confdefs.h <<\EOF
+#define HAVE_USE_DEFAULT_COLORS 1
+EOF
-fi
-echo "$as_me:6793: result: $cf_cv_libutf8" >&5
-echo "${ECHO_T}$cf_cv_libutf8" >&6
+ cat >>confdefs.h <<\EOF
+#define HAVE_WRESIZE 1
+EOF
-if test "$cf_cv_libutf8" = yes ; then
cat >>confdefs.h <<\EOF
-#define HAVE_LIBUTF8_H 1
+#define NCURSES_EXT_FUNCS 1
EOF
- LIBS="-lutf8 $LIBS"
+else
+ NCURSES_EXT_FUNCS=0
fi
- if test "$cf_cv_libutf8" = yes ; then
- NCURSES_LIBUTF8=1
- fi
- fi
+### use option --enable-const to turn on use of const beyond that in XSI.
+echo "$as_me:8188: checking for extended use of const keyword" >&5
+echo $ECHO_N "checking for extended use of const keyword... $ECHO_C" >&6
-# This is needed on Tru64 5.0 to declare mbstate_t
-echo "$as_me:6810: checking if we must include wchar.h to declare mbstate_t" >&5
-echo $ECHO_N "checking if we must include wchar.h to declare mbstate_t... $ECHO_C" >&6
-if test "${cf_cv_mbstate_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
+# Check whether --enable-const or --disable-const was given.
+if test "${enable_const+set}" = set; then
+ enableval="$enable_const"
+ with_ext_const=$enableval
else
+ with_ext_const=no
+fi;
+echo "$as_me:8198: result: $with_ext_const" >&5
+echo "${ECHO_T}$with_ext_const" >&6
+NCURSES_CONST='/*nothing*/'
+if test "$with_ext_const" = yes ; then
+ NCURSES_CONST=const
+fi
-cat >conftest.$ac_ext <<_ACEOF
-#line 6817 "configure"
-#include "confdefs.h"
-
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-mbstate_t state
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6835: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6838: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6841: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6844: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_mbstate_t=no
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 6851 "configure"
-#include "confdefs.h"
+echo "$as_me:8205: checking if you want \$NCURSES_NO_PADDING code" >&5
+echo $ECHO_N "checking if you want \$NCURSES_NO_PADDING code... $ECHO_C" >&6
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-mbstate_t value
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6870: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6873: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6876: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6879: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_mbstate_t=yes
+# Check whether --enable-no-padding or --disable-no-padding was given.
+if test "${enable_no_padding+set}" = set; then
+ enableval="$enable_no_padding"
+ with_no_padding=$enableval
else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_mbstate_t=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:6891: result: $cf_cv_mbstate_t" >&5
-echo "${ECHO_T}$cf_cv_mbstate_t" >&6
-
-if test "$cf_cv_mbstate_t" = yes ; then
- cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
+ with_no_padding=$with_ext_funcs
+fi;
+echo "$as_me:8215: result: $with_no_padding" >&5
+echo "${ECHO_T}$with_no_padding" >&6
+test "$with_no_padding" = yes && cat >>confdefs.h <<\EOF
+#define NCURSES_NO_PADDING 1
EOF
- NEED_WCHAR_H=1
-fi
+### use option --enable-sigwinch to turn on use of SIGWINCH logic
+echo "$as_me:8222: checking if you want SIGWINCH handler" >&5
+echo $ECHO_N "checking if you want SIGWINCH handler... $ECHO_C" >&6
-# if we do not find mbstate_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_mbstate_t" = unknown ; then
- NCURSES_MBSTATE_T=1
-fi
+# Check whether --enable-sigwinch or --disable-sigwinch was given.
+if test "${enable_sigwinch+set}" = set; then
+ enableval="$enable_sigwinch"
+ with_sigwinch=$enableval
+else
+ with_sigwinch=$with_ext_funcs
+fi;
+echo "$as_me:8232: result: $with_sigwinch" >&5
+echo "${ECHO_T}$with_sigwinch" >&6
+test "$with_sigwinch" = yes && cat >>confdefs.h <<\EOF
+#define USE_SIGWINCH 1
+EOF
-# This is needed on Tru64 5.0 to declare wchar_t
-echo "$as_me:6908: checking if we must include wchar.h to declare wchar_t" >&5
-echo $ECHO_N "checking if we must include wchar.h to declare wchar_t... $ECHO_C" >&6
-if test "${cf_cv_wchar_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
+### use option --enable-tcap-names to allow user to define new capabilities
+echo "$as_me:8239: checking if you want user-definable terminal capabilities like termcap" >&5
+echo $ECHO_N "checking if you want user-definable terminal capabilities like termcap... $ECHO_C" >&6
+
+# Check whether --enable-tcap-names or --disable-tcap-names was given.
+if test "${enable_tcap_names+set}" = set; then
+ enableval="$enable_tcap_names"
+ with_tcap_names=$enableval
else
+ with_tcap_names=$with_ext_funcs
+fi;
+echo "$as_me:8249: result: $with_tcap_names" >&5
+echo "${ECHO_T}$with_tcap_names" >&6
+NCURSES_XNAMES=0
+test "$with_tcap_names" = yes && NCURSES_XNAMES=1
-cat >conftest.$ac_ext <<_ACEOF
-#line 6915 "configure"
-#include "confdefs.h"
+###############################################################################
+# These options are relatively safe to experiment with.
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wchar_t state
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6933: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6936: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6939: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6942: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wchar_t=no
+echo "$as_me:8257: checking if you want all development code" >&5
+echo $ECHO_N "checking if you want all development code... $ECHO_C" >&6
+
+# Check whether --with-develop or --without-develop was given.
+if test "${with_develop+set}" = set; then
+ withval="$with_develop"
+ with_develop=$withval
else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 6949 "configure"
-#include "confdefs.h"
+ with_develop=no
+fi;
+echo "$as_me:8267: result: $with_develop" >&5
+echo "${ECHO_T}$with_develop" >&6
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wchar_t value
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:6968: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:6971: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:6974: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:6977: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wchar_t=yes
+### use option --enable-hard-tabs to turn on use of hard-tabs optimize
+echo "$as_me:8271: checking if you want hard-tabs code" >&5
+echo $ECHO_N "checking if you want hard-tabs code... $ECHO_C" >&6
+
+# Check whether --enable-hard-tabs or --disable-hard-tabs was given.
+if test "${enable_hard_tabs+set}" = set; then
+ enableval="$enable_hard_tabs"
+ with_hardtabs=$enableval
else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_wchar_t=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-echo "$as_me:6989: result: $cf_cv_wchar_t" >&5
-echo "${ECHO_T}$cf_cv_wchar_t" >&6
+ with_hardtabs=$with_develop
+fi;
+echo "$as_me:8281: result: $with_hardtabs" >&5
+echo "${ECHO_T}$with_hardtabs" >&6
+test "$with_hardtabs" = yes && cat >>confdefs.h <<\EOF
+#define USE_HARD_TABS 1
+EOF
-if test "$cf_cv_wchar_t" = yes ; then
- cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
+### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
+echo "$as_me:8288: checking if you want limited support for xmc" >&5
+echo $ECHO_N "checking if you want limited support for xmc... $ECHO_C" >&6
+
+# Check whether --enable-xmc-glitch or --disable-xmc-glitch was given.
+if test "${enable_xmc_glitch+set}" = set; then
+ enableval="$enable_xmc_glitch"
+ with_xmc_glitch=$enableval
+else
+ with_xmc_glitch=$with_develop
+fi;
+echo "$as_me:8298: result: $with_xmc_glitch" >&5
+echo "${ECHO_T}$with_xmc_glitch" >&6
+test "$with_xmc_glitch" = yes && cat >>confdefs.h <<\EOF
+#define USE_XMC_SUPPORT 1
EOF
- NEED_WCHAR_H=1
-fi
+###############################################################################
+# These are just experimental, probably should not be in a package:
-# if we do not find wchar_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wchar_t" = unknown ; then
- NCURSES_WCHAR_T=1
-fi
+echo "$as_me:8307: checking if you do not want to assume colors are white-on-black" >&5
+echo $ECHO_N "checking if you do not want to assume colors are white-on-black... $ECHO_C" >&6
-# if we find wchar_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wchar_t" != unknown ; then
- NCURSES_OK_WCHAR_T=1
-fi
+# Check whether --enable-assumed-color or --disable-assumed-color was given.
+if test "${enable_assumed_color+set}" = set; then
+ enableval="$enable_assumed_color"
+ with_assumed_color=$enableval
+else
+ with_assumed_color=yes
+fi;
+echo "$as_me:8317: result: $with_assumed_color" >&5
+echo "${ECHO_T}$with_assumed_color" >&6
+test "$with_assumed_color" = yes && cat >>confdefs.h <<\EOF
+#define USE_ASSUMED_COLOR 1
+EOF
-# This is needed on Tru64 5.0 to declare wint_t
-echo "$as_me:7011: checking if we must include wchar.h to declare wint_t" >&5
-echo $ECHO_N "checking if we must include wchar.h to declare wint_t... $ECHO_C" >&6
-if test "${cf_cv_wint_t+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
+### use option --enable-hashmap to turn on use of hashmap scrolling logic
+echo "$as_me:8324: checking if you want hashmap scrolling-optimization code" >&5
+echo $ECHO_N "checking if you want hashmap scrolling-optimization code... $ECHO_C" >&6
+
+# Check whether --enable-hashmap or --disable-hashmap was given.
+if test "${enable_hashmap+set}" = set; then
+ enableval="$enable_hashmap"
+ with_hashmap=$enableval
else
+ with_hashmap=yes
+fi;
+echo "$as_me:8334: result: $with_hashmap" >&5
+echo "${ECHO_T}$with_hashmap" >&6
+test "$with_hashmap" = yes && cat >>confdefs.h <<\EOF
+#define USE_HASHMAP 1
+EOF
-cat >conftest.$ac_ext <<_ACEOF
-#line 7018 "configure"
-#include "confdefs.h"
+### use option --enable-colorfgbg to turn on use of $COLORFGBG environment
+echo "$as_me:8341: checking if you want colorfgbg code" >&5
+echo $ECHO_N "checking if you want colorfgbg code... $ECHO_C" >&6
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wint_t state
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7036: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7039: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7042: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7045: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wint_t=no
+# Check whether --enable-colorfgbg or --disable-colorfgbg was given.
+if test "${enable_colorfgbg+set}" = set; then
+ enableval="$enable_colorfgbg"
+ with_colorfgbg=$enableval
else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cat >conftest.$ac_ext <<_ACEOF
-#line 7052 "configure"
-#include "confdefs.h"
+ with_colorfgbg=no
+fi;
+echo "$as_me:8351: result: $with_colorfgbg" >&5
+echo "${ECHO_T}$with_colorfgbg" >&6
+test "$with_colorfgbg" = yes && cat >>confdefs.h <<\EOF
+#define USE_COLORFGBG 1
+EOF
-#include <stdlib.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <wchar.h>
-#ifdef HAVE_LIBUTF8_H
-#include <libutf8.h>
-#endif
-int
-main ()
-{
-wint_t value
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7071: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:7074: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7077: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:7080: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_wint_t=yes
+### use option --enable-ext-colors to turn on use of colors beyond 16.
+echo "$as_me:8358: checking if you want to use experimental extended colors" >&5
+echo $ECHO_N "checking if you want to use experimental extended colors... $ECHO_C" >&6
+
+# Check whether --enable-ext-colors or --disable-ext-colors was given.
+if test "${enable_ext_colors+set}" = set; then
+ enableval="$enable_ext_colors"
+ with_ext_colors=$enableval
else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_wint_t=unknown
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+ with_ext_colors=no
+fi;
+echo "$as_me:8368: result: $with_ext_colors" >&5
+echo "${ECHO_T}$with_ext_colors" >&6
+NCURSES_EXT_COLORS=0
+if test "$with_ext_colors" = yes ; then
+ if test "$with_widec" != yes ; then
+ { echo "$as_me:8373: WARNING: This option applies only to wide-character library" >&5
+echo "$as_me: WARNING: This option applies only to wide-character library" >&2;}
+ else
+ # cannot be ABI 5 since it changes sizeof(cchar_t)
+
+if test "${with_abi_version+set}" != set; then
+ case $cf_cv_rel_version in
+ 5.*)
+ cf_cv_rel_version=6.0
+ cf_cv_abi_version=6
+ { echo "$as_me:8383: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ ;;
+ esac
fi
-echo "$as_me:7092: result: $cf_cv_wint_t" >&5
-echo "${ECHO_T}$cf_cv_wint_t" >&6
-if test "$cf_cv_wint_t" = yes ; then
+ fi
+ NCURSES_EXT_COLORS=1
cat >>confdefs.h <<\EOF
-#define NEED_WCHAR_H 1
+#define NCURSES_EXT_COLORS 1
EOF
- NEED_WCHAR_H=1
fi
-# if we do not find wint_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wint_t" = unknown ; then
- NCURSES_WINT_T=1
-fi
+### use option --enable-ext-mouse to modify coding to support 5-button mice
+echo "$as_me:8398: checking if you want to use experimental extended mouse encoding" >&5
+echo $ECHO_N "checking if you want to use experimental extended mouse encoding... $ECHO_C" >&6
-# if we find wint_t in either place, use substitution to provide a fallback.
-if test "$cf_cv_wint_t" != unknown ; then
- NCURSES_OK_WINT_T=1
+# Check whether --enable-ext-mouse or --disable-ext-mouse was given.
+if test "${enable_ext_mouse+set}" = set; then
+ enableval="$enable_ext_mouse"
+ with_ext_mouse=$enableval
+else
+ with_ext_mouse=no
+fi;
+echo "$as_me:8408: result: $with_ext_mouse" >&5
+echo "${ECHO_T}$with_ext_mouse" >&6
+NCURSES_MOUSE_VERSION=1
+if test "$with_ext_mouse" = yes ; then
+ NCURSES_MOUSE_VERSION=2
+
+if test "${with_abi_version+set}" != set; then
+ case $cf_cv_rel_version in
+ 5.*)
+ cf_cv_rel_version=6.0
+ cf_cv_abi_version=6
+ { echo "$as_me:8419: WARNING: Overriding ABI version to $cf_cv_abi_version" >&5
+echo "$as_me: WARNING: Overriding ABI version to $cf_cv_abi_version" >&2;}
+ ;;
+ esac
fi
fi
-echo "$as_me:7115: checking for terminal capabilities file" >&5
-echo $ECHO_N "checking for terminal capabilities file... $ECHO_C" >&6
+echo "$as_me:8427: checking if you want experimental safe-sprintf code" >&5
+echo $ECHO_N "checking if you want experimental safe-sprintf code... $ECHO_C" >&6
-# Check whether --with-caps or --without-caps was given.
-if test "${with_caps+set}" = set; then
- withval="$with_caps"
- TERMINFO_CAPS=Caps.$withval
+# Check whether --enable-safe-sprintf or --disable-safe-sprintf was given.
+if test "${enable_safe_sprintf+set}" = set; then
+ enableval="$enable_safe_sprintf"
+ with_safe_sprintf=$enableval
else
- TERMINFO_CAPS=Caps
+ with_safe_sprintf=no
fi;
-test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
-echo "$as_me:7126: result: $TERMINFO_CAPS" >&5
-echo "${ECHO_T}$TERMINFO_CAPS" >&6
+echo "$as_me:8437: result: $with_safe_sprintf" >&5
+echo "${ECHO_T}$with_safe_sprintf" >&6
+test "$with_safe_sprintf" = yes && cat >>confdefs.h <<\EOF
+#define USE_SAFE_SPRINTF 1
+EOF
+
+### use option --disable-scroll-hints to turn off use of scroll-hints scrolling logic
+# when hashmap is used scroll hints are useless
+if test "$with_hashmap" = no ; then
+echo "$as_me:8446: checking if you want to experiment without scrolling-hints code" >&5
+echo $ECHO_N "checking if you want to experiment without scrolling-hints code... $ECHO_C" >&6
+
+# Check whether --enable-scroll-hints or --disable-scroll-hints was given.
+if test "${enable_scroll_hints+set}" = set; then
+ enableval="$enable_scroll_hints"
+ with_scroll_hints=$enableval
+else
+ with_scroll_hints=yes
+fi;
+echo "$as_me:8456: result: $with_scroll_hints" >&5
+echo "${ECHO_T}$with_scroll_hints" >&6
+test "$with_scroll_hints" = yes && cat >>confdefs.h <<\EOF
+#define USE_SCROLL_HINTS 1
+EOF
+
+fi
###############################################################################
### use option --disable-echo to suppress full display compiling commands
-echo "$as_me:7132: checking if you want to display full commands during build" >&5
+echo "$as_me:8467: checking if you want to display full commands during build" >&5
echo $ECHO_N "checking if you want to display full commands during build... $ECHO_C" >&6
# Check whether --enable-echo or --disable-echo was given.
ECHO_LINK='@ echo linking $@ ... ;'
test -n "$LIBTOOL" && LIBTOOL="$LIBTOOL --silent"
fi
-echo "$as_me:7148: result: $with_echo" >&5
+echo "$as_me:8483: result: $with_echo" >&5
echo "${ECHO_T}$with_echo" >&6
### use option --enable-warnings to turn on all gcc warnings
-echo "$as_me:7152: checking if you want to see compiler warnings" >&5
+echo "$as_me:8487: checking if you want to see compiler warnings" >&5
echo $ECHO_N "checking if you want to see compiler warnings... $ECHO_C" >&6
# Check whether --enable-warnings or --disable-warnings was given.
enableval="$enable_warnings"
with_warnings=$enableval
fi;
-echo "$as_me:7160: result: $with_warnings" >&5
+echo "$as_me:8495: result: $with_warnings" >&5
echo "${ECHO_T}$with_warnings" >&6
if test -n "$with_warnings"; then
ADAFLAGS="$ADAFLAGS -gnatg"
-if test "$GCC" = yes
-then
- cat > conftest.$ac_ext <<EOF
-#line 7169 "configure"
+INTEL_COMPILER=no
+
+if test "$GCC" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+ echo "$as_me:8506: checking if this is really Intel C compiler" >&5
+echo $ECHO_N "checking if this is really Intel C compiler... $ECHO_C" >&6
+ cf_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -no-gcc"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 8511 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:8528: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:8531: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:8534: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:8537: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ INTEL_COMPILER=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CFLAGS="$cf_save_CFLAGS"
+ echo "$as_me:8548: result: $INTEL_COMPILER" >&5
+echo "${ECHO_T}$INTEL_COMPILER" >&6
+ ;;
+ esac
+fi
+
+cat > conftest.$ac_ext <<EOF
+#line 8555 "configure"
int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
EOF
- { echo "$as_me:7172: checking for $CC warning options..." >&5
+
+if test "$INTEL_COMPILER" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# remark #593: variable "curs_sb_left_arrow" was set but never used
+# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+# remark #869: parameter "tw" was never referenced
+# remark #981: operands are evaluated in unspecified order
+# warning #269: invalid format string conversion
+
+ { echo "$as_me:8573: checking for $CC warning options..." >&5
+echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CFLAGS="$CFLAGS"
+ EXTRA_CFLAGS="-Wall"
+ for cf_opt in \
+ wd1419 \
+ wd1682 \
+ wd1683 \
+ wd1684 \
+ wd193 \
+ wd279 \
+ wd593 \
+ wd810 \
+ wd869 \
+ wd981
+ do
+ CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
+ if { (eval echo "$as_me:8590: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:8593: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ test -n "$verbose" && echo "$as_me:8595: result: ... -$cf_opt" >&5
+echo "${ECHO_T}... -$cf_opt" >&6
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
+ fi
+ done
+ CFLAGS="$cf_save_CFLAGS"
+
+elif test "$GCC" = yes
+then
+ { echo "$as_me:8604: checking for $CC warning options..." >&5
echo "$as_me: checking for $CC warning options..." >&6;}
cf_save_CFLAGS="$CFLAGS"
EXTRA_CFLAGS="-W -Wall"
Wundef $cf_warn_CONST
do
CFLAGS="$cf_save_CFLAGS $EXTRA_CFLAGS -$cf_opt"
- if { (eval echo "$as_me:7192: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:8624: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7195: \$? = $ac_status" >&5
+ echo "$as_me:8627: \$? = $ac_status" >&5
(exit $ac_status); }; then
- test -n "$verbose" && echo "$as_me:7197: result: ... -$cf_opt" >&5
+ test -n "$verbose" && echo "$as_me:8629: result: ... -$cf_opt" >&5
echo "${ECHO_T}... -$cf_opt" >&6
case $cf_opt in #(vi
Wcast-qual) #(vi
EXTRA_CFLAGS="$EXTRA_CFLAGS -$cf_opt"
fi
done
- rm -f conftest*
CFLAGS="$cf_save_CFLAGS"
fi
+rm -f conftest*
+
+ if test "$cf_with_cxx" = yes ; then
+
+INTEL_CPLUSPLUS=no
+
+if test "$GCC" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+ echo "$as_me:8658: checking if this is really Intel C++ compiler" >&5
+echo $ECHO_N "checking if this is really Intel C++ compiler... $ECHO_C" >&6
+ cf_save_CFLAGS="$CXXFLAGS"
+ CXXFLAGS="$CXXFLAGS -no-gcc"
+ cat >conftest.$ac_ext <<_ACEOF
+#line 8663 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:8680: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:8683: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:8686: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:8689: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ INTEL_CPLUSPLUS=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+ CXXFLAGS="$cf_save_CFLAGS"
+ echo "$as_me:8700: result: $INTEL_CPLUSPLUS" >&5
+echo "${ECHO_T}$INTEL_CPLUSPLUS" >&6
+ ;;
+ esac
+fi
+
+ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+cat > conftest.$ac_ext <<EOF
+#line 8713 "configure"
+int main(int argc, char *argv[]) { return (argv[argc-1] == 0) ; }
+EOF
+
+if test "$INTEL_CPLUSPLUS" = yes
+then
+# The "-wdXXX" options suppress warnings:
+# remark #1419: external declaration in primary source file
+# remark #1682: implicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1683: explicit conversion of a 64-bit integral type to a smaller integral type (potential portability problem)
+# remark #1684: conversion from pointer to same-sized integral type (potential portability problem)
+# remark #193: zero used for undefined preprocessing identifier
+# remark #593: variable "curs_sb_left_arrow" was set but never used
+# remark #810: conversion from "int" to "Dimension={unsigned short}" may lose significant bits
+# remark #869: parameter "tw" was never referenced
+# remark #981: operands are evaluated in unspecified order
+# warning #269: invalid format string conversion
+
+ { echo "$as_me:8731: checking for $CC warning options..." >&5
+echo "$as_me: checking for $CC warning options..." >&6;}
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ EXTRA_CXXFLAGS="-Wall"
+ for cf_opt in \
+ wd1419 \
+ wd1682 \
+ wd1683 \
+ wd1684 \
+ wd193 \
+ wd279 \
+ wd593 \
+ wd810 \
+ wd869 \
+ wd981
+ do
+ CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -$cf_opt"
+ if { (eval echo "$as_me:8748: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:8751: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ test -n "$verbose" && echo "$as_me:8753: result: ... -$cf_opt" >&5
+echo "${ECHO_T}... -$cf_opt" >&6
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ fi
+ done
+ CXXFLAGS="$cf_save_CXXFLAGS"
+
+elif test "$GXX" = yes
+then
+ { echo "$as_me:8762: checking for $CXX warning options..." >&5
+echo "$as_me: checking for $CXX warning options..." >&6;}
+ cf_save_CXXFLAGS="$CXXFLAGS"
+ EXTRA_CXXFLAGS="-W -Wall"
+ cf_gxx_extra_warnings=""
+ test "$with_ext_const" = yes && cf_gxx_extra_warnings="Wwrite-strings"
+ case "$GCC_VERSION" in
+ [1-2].*)
+ ;;
+ *)
+ cf_gxx_extra_warnings="$cf_gxx_extra_warnings Weffc++"
+ ;;
+ esac
+ for cf_opt in \
+ Wabi \
+ fabi-version=0 \
+ Woverloaded-virtual \
+ Wsign-promo \
+ Wsynth \
+ Wold-style-cast \
+ Wcast-align \
+ Wcast-qual \
+ Wmissing-prototypes \
+ Wpointer-arith \
+ Wshadow \
+ Wstrict-prototypes \
+ Wundef $cf_gxx_extra_warnings Wno-unused
+ do
+ CXXFLAGS="$cf_save_CXXFLAGS $EXTRA_CXXFLAGS -Werror -$cf_opt"
+ if { (eval echo "$as_me:8791: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:8794: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ test -n "$verbose" && echo "$as_me:8796: result: ... -$cf_opt" >&5
+echo "${ECHO_T}... -$cf_opt" >&6
+ EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -$cf_opt"
+ else
+ test -n "$verbose" && echo "$as_me:8800: result: ... no -$cf_opt" >&5
+echo "${ECHO_T}... no -$cf_opt" >&6
+ fi
+ done
+ CXXFLAGS="$cf_save_CXXFLAGS"
+fi
+
+rm -f conftest*
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ fi
fi
if test "$GCC" = yes
EOF
if test "$GCC" = yes
then
- { echo "$as_me:7239: checking for $CC __attribute__ directives..." >&5
+ { echo "$as_me:8835: checking for $CC __attribute__ directives..." >&5
echo "$as_me: checking for $CC __attribute__ directives..." >&6;}
cat > conftest.$ac_ext <<EOF
-#line 7242 "configure"
+#line 8838 "configure"
#include "confdefs.h"
#include "conftest.h"
#include "conftest.i"
for cf_attribute in scanf printf unused noreturn
do
-CF_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cf_ATTRIBUTE=`echo "$cf_attribute" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
cf_directive="__attribute__(($cf_attribute))"
echo "checking for $CC $cf_directive" 1>&5
case $cf_attribute in
scanf|printf)
cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE 1
+#define GCC_$cf_ATTRIBUTE 1
EOF
;;
*)
cat >conftest.h <<EOF
-#define GCC_$CF_ATTRIBUTE $cf_directive
+#define GCC_$cf_ATTRIBUTE $cf_directive
EOF
;;
esac
- if { (eval echo "$as_me:7280: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:8876: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7283: \$? = $ac_status" >&5
+ echo "$as_me:8879: \$? = $ac_status" >&5
(exit $ac_status); }; then
- test -n "$verbose" && echo "$as_me:7285: result: ... $cf_attribute" >&5
+ test -n "$verbose" && echo "$as_me:8881: result: ... $cf_attribute" >&5
echo "${ECHO_T}... $cf_attribute" >&6
cat conftest.h >>confdefs.h
fi
fi
### use option --enable-assertions to turn on generation of assertion code
-echo "$as_me:7297: checking if you want to enable runtime assertions" >&5
+echo "$as_me:8893: checking if you want to enable runtime assertions" >&5
echo $ECHO_N "checking if you want to enable runtime assertions... $ECHO_C" >&6
# Check whether --enable-assertions or --disable-assertions was given.
else
with_assertions=no
fi;
-echo "$as_me:7307: result: $with_assertions" >&5
+echo "$as_me:8903: result: $with_assertions" >&5
echo "${ECHO_T}$with_assertions" >&6
if test -n "$GCC"
then
;;
esac
-echo "$as_me:7368: checking whether to add trace feature to all models" >&5
+echo "$as_me:8964: checking whether to add trace feature to all models" >&5
echo $ECHO_N "checking whether to add trace feature to all models... $ECHO_C" >&6
# Check whether --with-trace or --without-trace was given.
else
cf_with_trace=$cf_all_traces
fi;
-echo "$as_me:7378: result: $with_trace" >&5
-echo "${ECHO_T}$with_trace" >&6
+echo "$as_me:8974: result: $cf_with_trace" >&5
+echo "${ECHO_T}$cf_with_trace" >&6
if test "$cf_with_trace" = yes ; then
LIB_TRACING=all
ADA_TRACE=TRUE
+cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
+cf_new_extra_cppflags=
+
for cf_add_cflags in -DTRACE
do
+case $cf_fix_cppflags in
+no)
case $cf_add_cflags in #(vi
-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
case "$CPPFLAGS" in
*$cf_add_cflags) #(vi
;;
cf_new_cflags="$cf_new_cflags $cf_add_cflags"
;;
esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
done
if test -n "$cf_new_cflags" ; then
CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
fi
+if test -n "$cf_new_extra_cppflags" ; then
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
else
LIB_TRACING=DEBUG
ADA_TRACE=FALSE
fi
### Checks for libraries.
-echo "$as_me:7421: checking for gettimeofday" >&5
+echo "$as_me:9055: checking for gettimeofday" >&5
echo $ECHO_N "checking for gettimeofday... $ECHO_C" >&6
if test "${ac_cv_func_gettimeofday+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 7427 "configure"
+#line 9061 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gettimeofday (); below. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7458: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9092: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7461: \$? = $ac_status" >&5
+ echo "$as_me:9095: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:7464: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9098: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7467: \$? = $ac_status" >&5
+ echo "$as_me:9101: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_gettimeofday=yes
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:7477: result: $ac_cv_func_gettimeofday" >&5
+echo "$as_me:9111: result: $ac_cv_func_gettimeofday" >&5
echo "${ECHO_T}$ac_cv_func_gettimeofday" >&6
if test $ac_cv_func_gettimeofday = yes; then
cat >>confdefs.h <<\EOF
else
-echo "$as_me:7486: checking for gettimeofday in -lbsd" >&5
+echo "$as_me:9120: checking for gettimeofday in -lbsd" >&5
echo $ECHO_N "checking for gettimeofday in -lbsd... $ECHO_C" >&6
if test "${ac_cv_lib_bsd_gettimeofday+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lbsd $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 7494 "configure"
+#line 9128 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7513: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9147: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7516: \$? = $ac_status" >&5
+ echo "$as_me:9150: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:7519: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9153: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7522: \$? = $ac_status" >&5
+ echo "$as_me:9156: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_bsd_gettimeofday=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7533: result: $ac_cv_lib_bsd_gettimeofday" >&5
+echo "$as_me:9167: result: $ac_cv_lib_bsd_gettimeofday" >&5
echo "${ECHO_T}$ac_cv_lib_bsd_gettimeofday" >&6
if test $ac_cv_lib_bsd_gettimeofday = yes; then
cat >>confdefs.h <<\EOF
fi
-echo "$as_me:7545: checking if -lm needed for math functions" >&5
+echo "$as_me:9179: checking if -lm needed for math functions" >&5
echo $ECHO_N "checking if -lm needed for math functions... $ECHO_C" >&6
if test "${cf_cv_need_libm+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 7552 "configure"
+#line 9186 "configure"
#include "confdefs.h"
#include <stdio.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7567: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9201: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7570: \$? = $ac_status" >&5
+ echo "$as_me:9204: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:7573: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9207: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7576: \$? = $ac_status" >&5
+ echo "$as_me:9210: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_need_libm=no
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:7586: result: $cf_cv_need_libm" >&5
+echo "$as_me:9220: result: $cf_cv_need_libm" >&5
echo "${ECHO_T}$cf_cv_need_libm" >&6
if test "$cf_cv_need_libm" = yes
then
fi
### Checks for header files.
-echo "$as_me:7594: checking for ANSI C header files" >&5
+echo "$as_me:9228: checking for ANSI C header files" >&5
echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
if test "${ac_cv_header_stdc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 7600 "configure"
+#line 9234 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
#include <float.h>
_ACEOF
-if { (eval echo "$as_me:7608: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:9242: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:7614: \$? = $ac_status" >&5
+ echo "$as_me:9248: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat >conftest.$ac_ext <<_ACEOF
-#line 7636 "configure"
+#line 9270 "configure"
#include "confdefs.h"
#include <string.h>
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat >conftest.$ac_ext <<_ACEOF
-#line 7654 "configure"
+#line 9288 "configure"
#include "confdefs.h"
#include <stdlib.h>
:
else
cat >conftest.$ac_ext <<_ACEOF
-#line 7675 "configure"
+#line 9309 "configure"
#include "confdefs.h"
#include <ctype.h>
#if ((' ' & 0x0FF) == 0x020)
}
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:7701: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9335: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7704: \$? = $ac_status" >&5
+ echo "$as_me:9338: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:7706: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9340: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7709: \$? = $ac_status" >&5
+ echo "$as_me:9343: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
:
else
fi
fi
fi
-echo "$as_me:7722: result: $ac_cv_header_stdc" >&5
+echo "$as_me:9356: result: $ac_cv_header_stdc" >&5
echo "${ECHO_T}$ac_cv_header_stdc" >&6
if test $ac_cv_header_stdc = yes; then
ac_header_dirent=no
for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h; do
as_ac_Header=`echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-echo "$as_me:7735: checking for $ac_hdr that defines DIR" >&5
+echo "$as_me:9369: checking for $ac_hdr that defines DIR" >&5
echo $ECHO_N "checking for $ac_hdr that defines DIR... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 7741 "configure"
+#line 9375 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7756: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9390: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7759: \$? = $ac_status" >&5
+ echo "$as_me:9393: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7762: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9396: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7765: \$? = $ac_status" >&5
+ echo "$as_me:9399: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_Header=yes"
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:7775: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:9409: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<EOF
done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
- echo "$as_me:7788: checking for opendir in -ldir" >&5
+ echo "$as_me:9422: checking for opendir in -ldir" >&5
echo $ECHO_N "checking for opendir in -ldir... $ECHO_C" >&6
if test "${ac_cv_lib_dir_opendir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-ldir $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 7796 "configure"
+#line 9430 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7815: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9449: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7818: \$? = $ac_status" >&5
+ echo "$as_me:9452: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:7821: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9455: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7824: \$? = $ac_status" >&5
+ echo "$as_me:9458: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_dir_opendir=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7835: result: $ac_cv_lib_dir_opendir" >&5
+echo "$as_me:9469: result: $ac_cv_lib_dir_opendir" >&5
echo "${ECHO_T}$ac_cv_lib_dir_opendir" >&6
if test $ac_cv_lib_dir_opendir = yes; then
LIBS="$LIBS -ldir"
fi
else
- echo "$as_me:7842: checking for opendir in -lx" >&5
+ echo "$as_me:9476: checking for opendir in -lx" >&5
echo $ECHO_N "checking for opendir in -lx... $ECHO_C" >&6
if test "${ac_cv_lib_x_opendir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lx $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 7850 "configure"
+#line 9484 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7869: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9503: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7872: \$? = $ac_status" >&5
+ echo "$as_me:9506: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:7875: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9509: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7878: \$? = $ac_status" >&5
+ echo "$as_me:9512: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_x_opendir=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:7889: result: $ac_cv_lib_x_opendir" >&5
+echo "$as_me:9523: result: $ac_cv_lib_x_opendir" >&5
echo "${ECHO_T}$ac_cv_lib_x_opendir" >&6
if test $ac_cv_lib_x_opendir = yes; then
LIBS="$LIBS -lx"
fi
-echo "$as_me:7897: checking whether time.h and sys/time.h may both be included" >&5
+echo "$as_me:9531: checking whether time.h and sys/time.h may both be included" >&5
echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6
if test "${ac_cv_header_time+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 7903 "configure"
+#line 9537 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:7919: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9553: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:7922: \$? = $ac_status" >&5
+ echo "$as_me:9556: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:7925: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9559: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7928: \$? = $ac_status" >&5
+ echo "$as_me:9562: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_header_time=yes
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:7938: result: $ac_cv_header_time" >&5
+echo "$as_me:9572: result: $ac_cv_header_time" >&5
echo "${ECHO_T}$ac_cv_header_time" >&6
if test $ac_cv_header_time = yes; then
fi
-echo "$as_me:7948: checking for regular-expression headers" >&5
+echo "$as_me:9582: checking for regular-expression headers" >&5
echo $ECHO_N "checking for regular-expression headers... $ECHO_C" >&6
if test "${cf_cv_regex+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 7955 "configure"
+#line 9589 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <regex.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:7973: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9607: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:7976: \$? = $ac_status" >&5
+ echo "$as_me:9610: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:7979: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9613: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:7982: \$? = $ac_status" >&5
+ echo "$as_me:9616: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_regex="regex.h"
else
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 7990 "configure"
+#line 9624 "configure"
#include "confdefs.h"
#include <regexp.h>
int
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8005: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9639: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8008: \$? = $ac_status" >&5
+ echo "$as_me:9642: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:8011: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9645: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8014: \$? = $ac_status" >&5
+ echo "$as_me:9648: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_regex="regexp.h"
else
cf_save_LIBS="$LIBS"
LIBS="-lgen $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 8024 "configure"
+#line 9658 "configure"
#include "confdefs.h"
#include <regexpr.h>
int
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8039: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9673: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8042: \$? = $ac_status" >&5
+ echo "$as_me:9676: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:8045: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9679: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8048: \$? = $ac_status" >&5
+ echo "$as_me:9682: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_regex="regexpr.h"
else
fi
-echo "$as_me:8064: result: $cf_cv_regex" >&5
+echo "$as_me:9698: result: $cf_cv_regex" >&5
echo "${ECHO_T}$cf_cv_regex" >&6
case $cf_cv_regex in
regex.h) cat >>confdefs.h <<\EOF
for ac_header in \
fcntl.h \
getopt.h \
-libc.h \
limits.h \
locale.h \
poll.h \
sys/times.h \
ttyent.h \
unistd.h \
-wctype.h
+wctype.h \
+
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:8100: checking for $ac_header" >&5
+echo "$as_me:9734: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8106 "configure"
+#line 9740 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:8110: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:9744: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:8116: \$? = $ac_status" >&5
+ echo "$as_me:9750: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
fi
rm -f conftest.err conftest.$ac_ext
fi
-echo "$as_me:8135: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:9769: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<EOF
# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
if test "$ISC" = yes ; then
-echo "$as_me:8149: checking for main in -lcposix" >&5
+echo "$as_me:9783: checking for main in -lcposix" >&5
echo $ECHO_N "checking for main in -lcposix... $ECHO_C" >&6
if test "${ac_cv_lib_cposix_main+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-lcposix $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 8157 "configure"
+#line 9791 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8169: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9803: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8172: \$? = $ac_status" >&5
+ echo "$as_me:9806: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:8175: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9809: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8178: \$? = $ac_status" >&5
+ echo "$as_me:9812: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_cposix_main=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:8189: result: $ac_cv_lib_cposix_main" >&5
+echo "$as_me:9823: result: $ac_cv_lib_cposix_main" >&5
echo "${ECHO_T}$ac_cv_lib_cposix_main" >&6
if test $ac_cv_lib_cposix_main = yes; then
cat >>confdefs.h <<EOF
fi
- echo "$as_me:8200: checking for bzero in -linet" >&5
+ echo "$as_me:9834: checking for bzero in -linet" >&5
echo $ECHO_N "checking for bzero in -linet... $ECHO_C" >&6
if test "${ac_cv_lib_inet_bzero+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_check_lib_save_LIBS=$LIBS
LIBS="-linet $LIBS"
cat >conftest.$ac_ext <<_ACEOF
-#line 8208 "configure"
+#line 9842 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8227: \"$ac_link\"") >&5
+if { (eval echo "$as_me:9861: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8230: \$? = $ac_status" >&5
+ echo "$as_me:9864: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:8233: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9867: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8236: \$? = $ac_status" >&5
+ echo "$as_me:9870: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_lib_inet_bzero=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
-echo "$as_me:8247: result: $ac_cv_lib_inet_bzero" >&5
+echo "$as_me:9881: result: $ac_cv_lib_inet_bzero" >&5
echo "${ECHO_T}$ac_cv_lib_inet_bzero" >&6
if test $ac_cv_lib_inet_bzero = yes; then
LIBS="$LIBS -linet"
fi
fi
-echo "$as_me:8254: checking if sys/time.h works with sys/select.h" >&5
+echo "$as_me:9888: checking if sys/time.h works with sys/select.h" >&5
echo $ECHO_N "checking if sys/time.h works with sys/select.h... $ECHO_C" >&6
if test "${cf_cv_sys_time_select+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8261 "configure"
+#line 9895 "configure"
#include "confdefs.h"
#include <sys/types.h>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8281: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:9915: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8284: \$? = $ac_status" >&5
+ echo "$as_me:9918: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8287: \"$ac_try\"") >&5
+ { (eval echo "$as_me:9921: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8290: \$? = $ac_status" >&5
+ echo "$as_me:9924: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_sys_time_select=yes
else
fi
-echo "$as_me:8302: result: $cf_cv_sys_time_select" >&5
+echo "$as_me:9936: result: $cf_cv_sys_time_select" >&5
echo "${ECHO_T}$cf_cv_sys_time_select" >&6
test "$cf_cv_sys_time_select" = yes && cat >>confdefs.h <<\EOF
#define HAVE_SYS_TIME_SELECT 1
ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_c_compiler_gnu
-echo "$as_me:8315: checking for $CC option to accept ANSI C" >&5
+echo "$as_me:9949: checking for $CC option to accept ANSI C" >&5
echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
if test "${ac_cv_prog_cc_stdc+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_cv_prog_cc_stdc=no
ac_save_CC=$CC
cat >conftest.$ac_ext <<_ACEOF
-#line 8323 "configure"
+#line 9957 "configure"
#include "confdefs.h"
#include <stdarg.h>
#include <stdio.h>
do
CC="$ac_save_CC $ac_arg"
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8372: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10006: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8375: \$? = $ac_status" >&5
+ echo "$as_me:10009: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8378: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10012: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8381: \$? = $ac_status" >&5
+ echo "$as_me:10015: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_prog_cc_stdc=$ac_arg
break
case "x$ac_cv_prog_cc_stdc" in
x|xno)
- echo "$as_me:8398: result: none needed" >&5
+ echo "$as_me:10032: result: none needed" >&5
echo "${ECHO_T}none needed" >&6 ;;
*)
- echo "$as_me:8401: result: $ac_cv_prog_cc_stdc" >&5
+ echo "$as_me:10035: result: $ac_cv_prog_cc_stdc" >&5
echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
CC="$CC $ac_cv_prog_cc_stdc" ;;
esac
-echo "$as_me:8406: checking for an ANSI C-conforming const" >&5
+echo "$as_me:10040: checking for an ANSI C-conforming const" >&5
echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6
if test "${ac_cv_c_const+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8412 "configure"
+#line 10046 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8470: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10104: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8473: \$? = $ac_status" >&5
+ echo "$as_me:10107: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8476: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10110: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8479: \$? = $ac_status" >&5
+ echo "$as_me:10113: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_c_const=yes
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:8489: result: $ac_cv_c_const" >&5
+echo "$as_me:10123: result: $ac_cv_c_const" >&5
echo "${ECHO_T}$ac_cv_c_const" >&6
if test $ac_cv_c_const = no; then
fi
-echo "$as_me:8499: checking for inline" >&5
+echo "$as_me:10133: checking for inline" >&5
echo $ECHO_N "checking for inline... $ECHO_C" >&6
if test "${ac_cv_c_inline+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat >conftest.$ac_ext <<_ACEOF
-#line 8507 "configure"
+#line 10141 "configure"
#include "confdefs.h"
#ifndef __cplusplus
static $ac_kw int static_foo () {return 0; }
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8516: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10150: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8519: \$? = $ac_status" >&5
+ echo "$as_me:10153: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8522: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10156: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8525: \$? = $ac_status" >&5
+ echo "$as_me:10159: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_c_inline=$ac_kw; break
else
done
fi
-echo "$as_me:8536: result: $ac_cv_c_inline" >&5
+echo "$as_me:10170: result: $ac_cv_c_inline" >&5
echo "${ECHO_T}$ac_cv_c_inline" >&6
case $ac_cv_c_inline in
inline | yes) ;;
#define CC_HAS_INLINE_FUNCS 1
EOF
-echo "$as_me:8555: checking if unsigned literals are legal" >&5
-echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
-if test "${cf_cv_unsigned_literals+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- cat >conftest.$ac_ext <<_ACEOF
-#line 8562 "configure"
-#include "confdefs.h"
-
-int
-main ()
-{
-long x = 1L + 1UL + 1U + 1
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8574: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:8577: \$? = $ac_status" >&5
- (exit $ac_status); } &&
- { ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8580: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:8583: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- cf_cv_unsigned_literals=yes
-else
- echo "$as_me: failed program was:" >&5
-cat conftest.$ac_ext >&5
-cf_cv_unsigned_literals=no
-fi
-rm -f conftest.$ac_objext conftest.$ac_ext
-
-fi
+if test $NCURSES_CHTYPE = auto ; then
-echo "$as_me:8595: result: $cf_cv_unsigned_literals" >&5
-echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
-
-echo "$as_me:8598: checking for type of chtype" >&5
+echo "$as_me:10191: checking for type of chtype" >&5
echo $ECHO_N "checking for type of chtype... $ECHO_C" >&6
if test "${cf_cv_typeof_chtype+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
cf_cv_typeof_chtype=long
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8608 "configure"
+#line 10201 "configure"
#include "confdefs.h"
-#ifdef USE_WIDEC_SUPPORT
-#include <stddef.h> /* we want wchar_t */
-#define WANT_BITS 39
-#else
#define WANT_BITS 31
-#endif
#include <stdio.h>
int main()
{
FILE *fp = fopen("cf_test.out", "w");
if (fp != 0) {
char *result = "long";
-#ifdef USE_WIDEC_SUPPORT
- /*
- * If wchar_t is smaller than a long, it must be an int or a
- * short. We prefer not to use a short anyway.
- */
- if (sizeof(unsigned long) > sizeof(wchar_t))
- result = "int";
-#endif
if (sizeof(unsigned long) > sizeof(unsigned int)) {
int n;
- unsigned int x;
+ unsigned int x, y;
for (n = 0; n < WANT_BITS; n++) {
- unsigned int y = (x >> n);
+ x = (1 << n);
+ y = (x >> n);
if (y != 1 || x == 0) {
x = 0;
break;
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8655: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10236: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8658: \$? = $ac_status" >&5
+ echo "$as_me:10239: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:8660: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10241: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8663: \$? = $ac_status" >&5
+ echo "$as_me:10244: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_typeof_chtype=`cat cf_test.out`
else
fi
-echo "$as_me:8678: result: $cf_cv_typeof_chtype" >&5
+echo "$as_me:10259: result: $cf_cv_typeof_chtype" >&5
echo "${ECHO_T}$cf_cv_typeof_chtype" >&6
cat >>confdefs.h <<EOF
#define TYPEOF_CHTYPE $cf_cv_typeof_chtype
EOF
+else
+ cf_cv_typeof_chtype=$NCURSES_CHTYPE
+fi
+
+echo "$as_me:10270: checking if unsigned literals are legal" >&5
+echo $ECHO_N "checking if unsigned literals are legal... $ECHO_C" >&6
+if test "${cf_cv_unsigned_literals+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ cat >conftest.$ac_ext <<_ACEOF
+#line 10277 "configure"
+#include "confdefs.h"
+
+int
+main ()
+{
+long x = 1L + 1UL + 1U + 1
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:10289: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:10292: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:10295: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:10298: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_unsigned_literals=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_unsigned_literals=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+fi
+
+echo "$as_me:10310: result: $cf_cv_unsigned_literals" >&5
+echo "${ECHO_T}$cf_cv_unsigned_literals" >&6
+
cf_cv_1UL="1"
test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
+if test $NCURSES_MMASK_T = auto ; then
+ cf_cv_typeof_mmask_t=long
+else
+ cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
+fi
+
### Checks for external-data
-echo "$as_me:8691: checking if external errno is declared" >&5
+echo "$as_me:10325: checking if external errno is declared" >&5
echo $ECHO_N "checking if external errno is declared... $ECHO_C" >&6
if test "${cf_cv_dcl_errno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8698 "configure"
+#line 10332 "configure"
#include "confdefs.h"
#ifdef HAVE_STDLIB_H
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:8716: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10350: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8719: \$? = $ac_status" >&5
+ echo "$as_me:10353: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:8722: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10356: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8725: \$? = $ac_status" >&5
+ echo "$as_me:10359: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_dcl_errno=yes
else
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:8736: result: $cf_cv_dcl_errno" >&5
+echo "$as_me:10370: result: $cf_cv_dcl_errno" >&5
echo "${ECHO_T}$cf_cv_dcl_errno" >&6
if test "$cf_cv_dcl_errno" = no ; then
# It's possible (for near-UNIX clones) that the data doesn't exist
-echo "$as_me:8751: checking if external errno exists" >&5
+echo "$as_me:10385: checking if external errno exists" >&5
echo $ECHO_N "checking if external errno exists... $ECHO_C" >&6
if test "${cf_cv_have_errno+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8758 "configure"
+#line 10392 "configure"
#include "confdefs.h"
#undef errno
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8773: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10407: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8776: \$? = $ac_status" >&5
+ echo "$as_me:10410: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:8779: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10413: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8782: \$? = $ac_status" >&5
+ echo "$as_me:10416: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_have_errno=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:8793: result: $cf_cv_have_errno" >&5
+echo "$as_me:10427: result: $cf_cv_have_errno" >&5
echo "${ECHO_T}$cf_cv_have_errno" >&6
if test "$cf_cv_have_errno" = yes ; then
fi
-echo "$as_me:8806: checking if data-only library module links" >&5
+echo "$as_me:10440: checking if data-only library module links" >&5
echo $ECHO_N "checking if data-only library module links... $ECHO_C" >&6
if test "${cf_cv_link_dataonly+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
rm -f conftest.a
cat >conftest.$ac_ext <<EOF
-#line 8814 "configure"
+#line 10448 "configure"
int testdata[3] = { 123, 456, 789 };
EOF
- if { (eval echo "$as_me:8817: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:10451: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8820: \$? = $ac_status" >&5
+ echo "$as_me:10454: \$? = $ac_status" >&5
(exit $ac_status); } ; then
mv conftest.o data.o && \
( $AR $AR_OPTS conftest.a data.o ) 2>&5 1>/dev/null
fi
rm -f conftest.$ac_ext data.o
cat >conftest.$ac_ext <<EOF
-#line 8827 "configure"
+#line 10461 "configure"
int testfunc()
{
#if defined(NeXT)
#endif
}
EOF
- if { (eval echo "$as_me:8840: \"$ac_compile\"") >&5
+ if { (eval echo "$as_me:10474: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:8843: \$? = $ac_status" >&5
+ echo "$as_me:10477: \$? = $ac_status" >&5
(exit $ac_status); }; then
mv conftest.o func.o && \
( $AR $AR_OPTS conftest.a func.o ) 2>&5 1>/dev/null
cf_cv_link_dataonly=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8856 "configure"
+#line 10490 "configure"
#include "confdefs.h"
int main()
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:8867: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10501: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8870: \$? = $ac_status" >&5
+ echo "$as_me:10504: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:8872: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10506: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8875: \$? = $ac_status" >&5
+ echo "$as_me:10509: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_link_dataonly=yes
else
fi
-echo "$as_me:8890: result: $cf_cv_link_dataonly" >&5
+echo "$as_me:10524: result: $cf_cv_link_dataonly" >&5
echo "${ECHO_T}$cf_cv_link_dataonly" >&6
if test "$cf_cv_link_dataonly" = no ; then
geteuid \
getttynam \
issetugid \
-memccpy \
-nanosleep \
poll \
remove \
select \
do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:8927: checking for $ac_func" >&5
+echo "$as_me:10559: checking for $ac_func" >&5
echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
if eval "test \"\${$as_ac_var+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 8933 "configure"
+#line 10565 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func (); below. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:8964: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10596: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:8967: \$? = $ac_status" >&5
+ echo "$as_me:10599: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:8970: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10602: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:8973: \$? = $ac_status" >&5
+ echo "$as_me:10605: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
eval "$as_ac_var=yes"
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:8983: result: `eval echo '${'$as_ac_var'}'`" >&5
+echo "$as_me:10615: result: `eval echo '${'$as_ac_var'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
if test `eval echo '${'$as_ac_var'}'` = yes; then
cat >>confdefs.h <<EOF
if test "$with_getcap" = "yes" ; then
-echo "$as_me:8995: checking for terminal-capability database functions" >&5
+echo "$as_me:10627: checking for terminal-capability database functions" >&5
echo $ECHO_N "checking for terminal-capability database functions... $ECHO_C" >&6
if test "${cf_cv_cgetent+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9002 "configure"
+#line 10634 "configure"
#include "confdefs.h"
#include <stdlib.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9022: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10654: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9025: \$? = $ac_status" >&5
+ echo "$as_me:10657: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9028: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10660: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9031: \$? = $ac_status" >&5
+ echo "$as_me:10663: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_cgetent=yes
else
fi
-echo "$as_me:9043: result: $cf_cv_cgetent" >&5
+echo "$as_me:10675: result: $cf_cv_cgetent" >&5
echo "${ECHO_T}$cf_cv_cgetent" >&6
test "$cf_cv_cgetent" = yes && cat >>confdefs.h <<\EOF
#define HAVE_BSD_CGETENT 1
fi
-echo "$as_me:9051: checking for isascii" >&5
+echo "$as_me:10683: checking for isascii" >&5
echo $ECHO_N "checking for isascii... $ECHO_C" >&6
if test "${cf_cv_have_isascii+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9058 "configure"
+#line 10690 "configure"
#include "confdefs.h"
#include <ctype.h>
int
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9070: \"$ac_link\"") >&5
+if { (eval echo "$as_me:10702: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9073: \$? = $ac_status" >&5
+ echo "$as_me:10705: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9076: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10708: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9079: \$? = $ac_status" >&5
+ echo "$as_me:10711: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_have_isascii=yes
else
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:9090: result: $cf_cv_have_isascii" >&5
+echo "$as_me:10722: result: $cf_cv_have_isascii" >&5
echo "${ECHO_T}$cf_cv_have_isascii" >&6
test "$cf_cv_have_isascii" = yes && cat >>confdefs.h <<\EOF
#define HAVE_ISASCII 1
EOF
if test "$ac_cv_func_sigaction" = yes; then
-echo "$as_me:9097: checking whether sigaction needs _POSIX_SOURCE" >&5
+echo "$as_me:10729: checking whether sigaction needs _POSIX_SOURCE" >&5
echo $ECHO_N "checking whether sigaction needs _POSIX_SOURCE... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line 9100 "configure"
+#line 10732 "configure"
#include "confdefs.h"
#include <sys/types.h>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9114: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10746: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9117: \$? = $ac_status" >&5
+ echo "$as_me:10749: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9120: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10752: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9123: \$? = $ac_status" >&5
+ echo "$as_me:10755: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
sigact_bad=no
else
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 9131 "configure"
+#line 10763 "configure"
#include "confdefs.h"
#define _POSIX_SOURCE
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9146: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10778: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9149: \$? = $ac_status" >&5
+ echo "$as_me:10781: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9152: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10784: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9155: \$? = $ac_status" >&5
+ echo "$as_me:10787: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
sigact_bad=yes
cat >>confdefs.h <<\EOF
rm -f conftest.$ac_objext conftest.$ac_ext
fi
rm -f conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:9170: result: $sigact_bad" >&5
+echo "$as_me:10802: result: $sigact_bad" >&5
echo "${ECHO_T}$sigact_bad" >&6
fi
+echo "$as_me:10806: checking if nanosleep really works" >&5
+echo $ECHO_N "checking if nanosleep really works... $ECHO_C" >&6
+if test "${cf_cv_func_nanosleep+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if test "$cross_compiling" = yes; then
+ cf_cv_func_nanosleep=unknown
+else
+ cat >conftest.$ac_ext <<_ACEOF
+#line 10816 "configure"
+#include "confdefs.h"
+
+#include <stdio.h>
+#include <errno.h>
+#include <time.h>
+
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#endif
+
+int main() {
+ struct timespec ts1, ts2;
+ int code;
+ ts1.tv_sec = 0;
+ ts1.tv_nsec = 750000000;
+ ts2.tv_sec = 0;
+ ts2.tv_nsec = 0;
+ errno = 0;
+ code = nanosleep(&ts1, &ts2); /* on failure errno is ENOSYS. */
+ exit(code != 0);
+}
+
+_ACEOF
+rm -f conftest$ac_exeext
+if { (eval echo "$as_me:10841: \"$ac_link\"") >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ echo "$as_me:10844: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (eval echo "$as_me:10846: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:10849: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_func_nanosleep=yes
+else
+ echo "$as_me: program exited with status $ac_status" >&5
+echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_func_nanosleep=no
+fi
+rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+fi
+echo "$as_me:10861: result: $cf_cv_func_nanosleep" >&5
+echo "${ECHO_T}$cf_cv_func_nanosleep" >&6
+
+test "$cf_cv_func_nanosleep" = "yes" && cat >>confdefs.h <<\EOF
+#define HAVE_NANOSLEEP 1
+EOF
+
for ac_header in \
termio.h \
termios.h \
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:9181: checking for $ac_header" >&5
+echo "$as_me:10875: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9187 "configure"
+#line 10881 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:9191: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10885: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:9197: \$? = $ac_status" >&5
+ echo "$as_me:10891: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
fi
rm -f conftest.err conftest.$ac_ext
fi
-echo "$as_me:9216: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:10910: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<EOF
for ac_header in sys/termio.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:9231: checking for $ac_header" >&5
+echo "$as_me:10925: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9237 "configure"
+#line 10931 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:9241: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:10935: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:9247: \$? = $ac_status" >&5
+ echo "$as_me:10941: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_c_preproc_warn_flag
fi
rm -f conftest.err conftest.$ac_ext
fi
-echo "$as_me:9266: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:10960: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<EOF
*) termios_bad=maybe ;;
esac
if test "$termios_bad" = maybe ; then
- echo "$as_me:9284: checking whether termios.h needs _POSIX_SOURCE" >&5
+ echo "$as_me:10978: checking whether termios.h needs _POSIX_SOURCE" >&5
echo $ECHO_N "checking whether termios.h needs _POSIX_SOURCE... $ECHO_C" >&6
cat >conftest.$ac_ext <<_ACEOF
-#line 9287 "configure"
+#line 10981 "configure"
#include "confdefs.h"
#include <termios.h>
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9299: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:10993: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9302: \$? = $ac_status" >&5
+ echo "$as_me:10996: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9305: \"$ac_try\"") >&5
+ { (eval echo "$as_me:10999: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9308: \$? = $ac_status" >&5
+ echo "$as_me:11002: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
termios_bad=no
else
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 9316 "configure"
+#line 11010 "configure"
#include "confdefs.h"
#define _POSIX_SOURCE
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9330: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11024: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9333: \$? = $ac_status" >&5
+ echo "$as_me:11027: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9336: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11030: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9339: \$? = $ac_status" >&5
+ echo "$as_me:11033: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
termios_bad=unknown
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
- echo "$as_me:9354: result: $termios_bad" >&5
+ echo "$as_me:11048: result: $termios_bad" >&5
echo "${ECHO_T}$termios_bad" >&6
fi
fi
-echo "$as_me:9359: checking for tcgetattr" >&5
+echo "$as_me:11053: checking for tcgetattr" >&5
echo $ECHO_N "checking for tcgetattr... $ECHO_C" >&6
if test "${cf_cv_have_tcgetattr+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9366 "configure"
+#line 11060 "configure"
#include "confdefs.h"
#include <sys/types.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9394: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11088: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9397: \$? = $ac_status" >&5
+ echo "$as_me:11091: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9400: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11094: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9403: \$? = $ac_status" >&5
+ echo "$as_me:11097: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_have_tcgetattr=yes
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:9413: result: $cf_cv_have_tcgetattr" >&5
+echo "$as_me:11107: result: $cf_cv_have_tcgetattr" >&5
echo "${ECHO_T}$cf_cv_have_tcgetattr" >&6
test "$cf_cv_have_tcgetattr" = yes && cat >>confdefs.h <<\EOF
#define HAVE_TCGETATTR 1
EOF
-echo "$as_me:9419: checking for vsscanf function or workaround" >&5
+echo "$as_me:11113: checking for vsscanf function or workaround" >&5
echo $ECHO_N "checking for vsscanf function or workaround... $ECHO_C" >&6
if test "${cf_cv_func_vsscanf+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9426 "configure"
+#line 11120 "configure"
#include "confdefs.h"
#include <stdarg.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9442: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11136: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9445: \$? = $ac_status" >&5
+ echo "$as_me:11139: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9448: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11142: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9451: \$? = $ac_status" >&5
+ echo "$as_me:11145: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_func_vsscanf=vsscanf
else
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 9459 "configure"
+#line 11153 "configure"
#include "confdefs.h"
#include <stdarg.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9481: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11175: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9484: \$? = $ac_status" >&5
+ echo "$as_me:11178: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9487: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11181: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9490: \$? = $ac_status" >&5
+ echo "$as_me:11184: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_func_vsscanf=vfscanf
else
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 9498 "configure"
+#line 11192 "configure"
#include "confdefs.h"
#include <stdarg.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9520: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11214: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9523: \$? = $ac_status" >&5
+ echo "$as_me:11217: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9526: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11220: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9529: \$? = $ac_status" >&5
+ echo "$as_me:11223: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_func_vsscanf=_doscan
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:9544: result: $cf_cv_func_vsscanf" >&5
+echo "$as_me:11238: result: $cf_cv_func_vsscanf" >&5
echo "${ECHO_T}$cf_cv_func_vsscanf" >&6
case $cf_cv_func_vsscanf in #(vi
;;
esac
-echo "$as_me:9562: checking for working mkstemp" >&5
+echo "$as_me:11256: checking for working mkstemp" >&5
echo $ECHO_N "checking for working mkstemp... $ECHO_C" >&6
if test "${cf_cv_func_mkstemp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
rm -f conftest*
if test "$cross_compiling" = yes; then
- echo "$as_me:9570: checking for mkstemp" >&5
+ echo "$as_me:11264: checking for mkstemp" >&5
echo $ECHO_N "checking for mkstemp... $ECHO_C" >&6
if test "${ac_cv_func_mkstemp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9576 "configure"
+#line 11270 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char mkstemp (); below. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:9607: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11301: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9610: \$? = $ac_status" >&5
+ echo "$as_me:11304: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:9613: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11307: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9616: \$? = $ac_status" >&5
+ echo "$as_me:11310: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_mkstemp=yes
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:9626: result: $ac_cv_func_mkstemp" >&5
+echo "$as_me:11320: result: $ac_cv_func_mkstemp" >&5
echo "${ECHO_T}$ac_cv_func_mkstemp" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9631 "configure"
+#line 11325 "configure"
#include "confdefs.h"
#include <sys/types.h>
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:9669: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11363: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9672: \$? = $ac_status" >&5
+ echo "$as_me:11366: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:9674: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11368: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9677: \$? = $ac_status" >&5
+ echo "$as_me:11371: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_func_mkstemp=yes
fi
fi
-echo "$as_me:9692: result: $cf_cv_func_mkstemp" >&5
+echo "$as_me:11386: result: $cf_cv_func_mkstemp" >&5
echo "${ECHO_T}$cf_cv_func_mkstemp" >&6
if test "$cf_cv_func_mkstemp" = yes ; then
cat >>confdefs.h <<\EOF
fi
if test "$cross_compiling" = yes ; then
- { echo "$as_me:9709: WARNING: cross compiling: assume setvbuf params not reversed" >&5
+ { echo "$as_me:11403: WARNING: cross compiling: assume setvbuf params not reversed" >&5
echo "$as_me: WARNING: cross compiling: assume setvbuf params not reversed" >&2;}
else
- echo "$as_me:9712: checking whether setvbuf arguments are reversed" >&5
+ echo "$as_me:11406: checking whether setvbuf arguments are reversed" >&5
echo $ECHO_N "checking whether setvbuf arguments are reversed... $ECHO_C" >&6
if test "${ac_cv_func_setvbuf_reversed+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
if test "$cross_compiling" = yes; then
- { { echo "$as_me:9718: error: cannot run test program while cross compiling" >&5
+ { { echo "$as_me:11412: error: cannot run test program while cross compiling" >&5
echo "$as_me: error: cannot run test program while cross compiling" >&2;}
{ (exit 1); exit 1; }; }
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9723 "configure"
+#line 11417 "configure"
#include "confdefs.h"
#include <stdio.h>
/* If setvbuf has the reversed format, exit 0. */
}
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:9740: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11434: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:9743: \$? = $ac_status" >&5
+ echo "$as_me:11437: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:9745: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11439: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9748: \$? = $ac_status" >&5
+ echo "$as_me:11442: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_setvbuf_reversed=yes
else
fi
rm -f core core.* *.core
fi
-echo "$as_me:9761: result: $ac_cv_func_setvbuf_reversed" >&5
+echo "$as_me:11455: result: $ac_cv_func_setvbuf_reversed" >&5
echo "${ECHO_T}$ac_cv_func_setvbuf_reversed" >&6
if test $ac_cv_func_setvbuf_reversed = yes; then
fi
fi
-echo "$as_me:9772: checking return type of signal handlers" >&5
+echo "$as_me:11466: checking return type of signal handlers" >&5
echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6
if test "${ac_cv_type_signal+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9778 "configure"
+#line 11472 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9800: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11494: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9803: \$? = $ac_status" >&5
+ echo "$as_me:11497: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9806: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11500: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9809: \$? = $ac_status" >&5
+ echo "$as_me:11503: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_type_signal=void
else
fi
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:9819: result: $ac_cv_type_signal" >&5
+echo "$as_me:11513: result: $ac_cv_type_signal" >&5
echo "${ECHO_T}$ac_cv_type_signal" >&6
cat >>confdefs.h <<EOF
#define RETSIGTYPE $ac_cv_type_signal
EOF
-echo "$as_me:9826: checking for type sigaction_t" >&5
+echo "$as_me:11520: checking for type sigaction_t" >&5
echo $ECHO_N "checking for type sigaction_t... $ECHO_C" >&6
if test "${cf_cv_type_sigaction+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9833 "configure"
+#line 11527 "configure"
#include "confdefs.h"
#include <signal.h>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9846: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11540: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9849: \$? = $ac_status" >&5
+ echo "$as_me:11543: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9852: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11546: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9855: \$? = $ac_status" >&5
+ echo "$as_me:11549: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_type_sigaction=yes
else
rm -f conftest.$ac_objext conftest.$ac_ext
fi
-echo "$as_me:9866: result: $cf_cv_type_sigaction" >&5
+echo "$as_me:11560: result: $cf_cv_type_sigaction" >&5
echo "${ECHO_T}$cf_cv_type_sigaction" >&6
test "$cf_cv_type_sigaction" = yes && cat >>confdefs.h <<\EOF
#define HAVE_TYPE_SIGACTION 1
EOF
-echo "$as_me:9872: checking declaration of size-change" >&5
+echo "$as_me:11566: checking declaration of size-change" >&5
echo $ECHO_N "checking declaration of size-change... $ECHO_C" >&6
if test "${cf_cv_sizechange+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
CPPFLAGS="$cf_save_CPPFLAGS"
test -n "$cf_opts" && CPPFLAGS="$CPPFLAGS -D$cf_opts"
cat >conftest.$ac_ext <<_ACEOF
-#line 9887 "configure"
+#line 11581 "configure"
#include "confdefs.h"
#include <sys/types.h>
#ifdef HAVE_TERMIOS_H
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:9931: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11625: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:9934: \$? = $ac_status" >&5
+ echo "$as_me:11628: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:9937: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11631: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:9940: \$? = $ac_status" >&5
+ echo "$as_me:11634: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_sizechange=yes
else
done
fi
-echo "$as_me:9959: result: $cf_cv_sizechange" >&5
+echo "$as_me:11653: result: $cf_cv_sizechange" >&5
echo "${ECHO_T}$cf_cv_sizechange" >&6
if test "$cf_cv_sizechange" != no ; then
cat >>confdefs.h <<\EOF
esac
fi
-echo "$as_me:9976: checking for memmove" >&5
+echo "$as_me:11670: checking for memmove" >&5
echo $ECHO_N "checking for memmove... $ECHO_C" >&6
if test "${ac_cv_func_memmove+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 9982 "configure"
+#line 11676 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char memmove (); below. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10013: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11707: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10016: \$? = $ac_status" >&5
+ echo "$as_me:11710: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10019: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11713: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10022: \$? = $ac_status" >&5
+ echo "$as_me:11716: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_memmove=yes
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:10032: result: $ac_cv_func_memmove" >&5
+echo "$as_me:11726: result: $ac_cv_func_memmove" >&5
echo "${ECHO_T}$ac_cv_func_memmove" >&6
if test $ac_cv_func_memmove = yes; then
:
else
-echo "$as_me:10038: checking for bcopy" >&5
+echo "$as_me:11732: checking for bcopy" >&5
echo $ECHO_N "checking for bcopy... $ECHO_C" >&6
if test "${ac_cv_func_bcopy+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10044 "configure"
+#line 11738 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char bcopy (); below. */
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10075: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11769: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10078: \$? = $ac_status" >&5
+ echo "$as_me:11772: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10081: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11775: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10084: \$? = $ac_status" >&5
+ echo "$as_me:11778: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
ac_cv_func_bcopy=yes
else
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
fi
-echo "$as_me:10094: result: $ac_cv_func_bcopy" >&5
+echo "$as_me:11788: result: $ac_cv_func_bcopy" >&5
echo "${ECHO_T}$ac_cv_func_bcopy" >&6
if test $ac_cv_func_bcopy = yes; then
- echo "$as_me:10098: checking if bcopy does overlapping moves" >&5
+ echo "$as_me:11792: checking if bcopy does overlapping moves" >&5
echo $ECHO_N "checking if bcopy does overlapping moves... $ECHO_C" >&6
if test "${cf_cv_good_bcopy+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
cf_cv_good_bcopy=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10108 "configure"
+#line 11802 "configure"
#include "confdefs.h"
int main() {
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10122: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11816: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10125: \$? = $ac_status" >&5
+ echo "$as_me:11819: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:10127: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11821: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10130: \$? = $ac_status" >&5
+ echo "$as_me:11824: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_good_bcopy=yes
else
fi
fi
-echo "$as_me:10143: result: $cf_cv_good_bcopy" >&5
+echo "$as_me:11837: result: $cf_cv_good_bcopy" >&5
echo "${ECHO_T}$cf_cv_good_bcopy" >&6
else
fi
-echo "$as_me:10164: checking if poll really works" >&5
+echo "$as_me:11858: checking if poll really works" >&5
echo $ECHO_N "checking if poll really works... $ECHO_C" >&6
if test "${cf_cv_working_poll+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
cf_cv_working_poll=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10174 "configure"
+#line 11868 "configure"
#include "confdefs.h"
#include <stdio.h>
}
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10195: \"$ac_link\"") >&5
+if { (eval echo "$as_me:11889: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10198: \$? = $ac_status" >&5
+ echo "$as_me:11892: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:10200: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11894: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10203: \$? = $ac_status" >&5
+ echo "$as_me:11897: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_working_poll=yes
else
rm -f core core.* *.core conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
fi
-echo "$as_me:10215: result: $cf_cv_working_poll" >&5
+echo "$as_me:11909: result: $cf_cv_working_poll" >&5
echo "${ECHO_T}$cf_cv_working_poll" >&6
test "$cf_cv_working_poll" = "yes" && cat >>confdefs.h <<\EOF
#define HAVE_WORKING_POLL 1
# Just in case, check if the C compiler has a bool type.
-echo "$as_me:10228: checking if we should include stdbool.h" >&5
+echo "$as_me:11922: checking if we should include stdbool.h" >&5
echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
if test "${cf_cv_header_stdbool_h+set}" = set; then
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10236 "configure"
+#line 11930 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10248: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11942: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10251: \$? = $ac_status" >&5
+ echo "$as_me:11945: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:10254: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11948: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10257: \$? = $ac_status" >&5
+ echo "$as_me:11951: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_header_stdbool_h=0
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 10264 "configure"
+#line 11958 "configure"
#include "confdefs.h"
#ifndef __BEOS__
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10280: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:11974: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10283: \$? = $ac_status" >&5
+ echo "$as_me:11977: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:10286: \"$ac_try\"") >&5
+ { (eval echo "$as_me:11980: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10289: \$? = $ac_status" >&5
+ echo "$as_me:11983: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_header_stdbool_h=1
else
fi
if test "$cf_cv_header_stdbool_h" = 1
-then echo "$as_me:10303: result: yes" >&5
+then echo "$as_me:11997: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:10305: result: no" >&5
+else echo "$as_me:11999: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:10309: checking for builtin bool type" >&5
+echo "$as_me:12003: checking for builtin bool type" >&5
echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
if test "${cf_cv_cc_bool_type+set}" = set; then
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10317 "configure"
+#line 12011 "configure"
#include "confdefs.h"
#include <stdio.h>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10332: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12026: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10335: \$? = $ac_status" >&5
+ echo "$as_me:12029: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:10338: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12032: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10341: \$? = $ac_status" >&5
+ echo "$as_me:12035: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_cc_bool_type=1
else
fi
if test "$cf_cv_cc_bool_type" = 1
-then echo "$as_me:10354: result: yes" >&5
+then echo "$as_me:12048: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:10356: result: no" >&5
+else echo "$as_me:12050: result: no" >&5
echo "${ECHO_T}no" >&6
fi
cf_stdcpp_libname=stdc++
;;
esac
-echo "$as_me:10377: checking for library $cf_stdcpp_libname" >&5
+echo "$as_me:12071: checking for library $cf_stdcpp_libname" >&5
echo $ECHO_N "checking for library $cf_stdcpp_libname... $ECHO_C" >&6
if test "${cf_cv_libstdcpp+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
cf_save="$LIBS"
LIBS="$LIBS -l$cf_stdcpp_libname"
cat >conftest.$ac_ext <<_ACEOF
-#line 10386 "configure"
+#line 12080 "configure"
#include "confdefs.h"
#include <strstream.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10402: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12096: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10405: \$? = $ac_status" >&5
+ echo "$as_me:12099: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10408: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12102: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10411: \$? = $ac_status" >&5
+ echo "$as_me:12105: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_libstdcpp=yes
else
LIBS="$cf_save"
fi
-echo "$as_me:10423: result: $cf_cv_libstdcpp" >&5
+echo "$as_me:12117: result: $cf_cv_libstdcpp" >&5
echo "${ECHO_T}$cf_cv_libstdcpp" >&6
test "$cf_cv_libstdcpp" = yes && CXXLIBS="$CXXLIBS -l$cf_stdcpp_libname"
+fi
+
+ echo "$as_me:12122: checking whether $CXX understands -c and -o together" >&5
+echo $ECHO_N "checking whether $CXX understands -c and -o together... $ECHO_C" >&6
+if test "${cf_cv_prog_CXX_c_o+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat > conftest.$ac_ext <<CF_EOF
+#include <stdio.h>
+int main()
+{
+ return 0;
+}
+CF_EOF
+# We do the test twice because some compilers refuse to overwrite an
+# existing .o file with -o, though they will create one.
+ac_try='$CXX -c conftest.$ac_ext -o conftest2.$ac_objext >&5'
+if { (eval echo "$as_me:12138: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:12141: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ test -f conftest2.$ac_objext && { (eval echo "$as_me:12143: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:12146: \$? = $ac_status" >&5
+ (exit $ac_status); };
+then
+ eval cf_cv_prog_CXX_c_o=yes
+else
+ eval cf_cv_prog_CXX_c_o=no
+fi
+rm -f conftest*
+
+fi
+if test $cf_cv_prog_CXX_c_o = yes; then
+ echo "$as_me:12157: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+else
+ echo "$as_me:12160: result: no" >&5
+echo "${ECHO_T}no" >&6
fi
case $GXX_VERSION in
;;
esac
if test "$GXX" = yes; then
- echo "$as_me:10444: checking for lib$cf_gpp_libname" >&5
+ echo "$as_me:12180: checking for lib$cf_gpp_libname" >&5
echo $ECHO_N "checking for lib$cf_gpp_libname... $ECHO_C" >&6
cf_save="$LIBS"
LIBS="$LIBS -l$cf_gpp_libname"
cat >conftest.$ac_ext <<_ACEOF
-#line 10449 "configure"
+#line 12185 "configure"
#include "confdefs.h"
#include <$cf_gpp_libname/builtin.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10463: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12199: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10466: \$? = $ac_status" >&5
+ echo "$as_me:12202: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10469: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12205: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10472: \$? = $ac_status" >&5
+ echo "$as_me:12208: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cxx_library=yes
CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 10491 "configure"
+#line 12227 "configure"
#include "confdefs.h"
#include <builtin.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:10505: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12241: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10508: \$? = $ac_status" >&5
+ echo "$as_me:12244: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:10511: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12247: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10514: \$? = $ac_status" >&5
+ echo "$as_me:12250: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cxx_library=yes
CXXLIBS="$CXXLIBS -l$cf_gpp_libname"
fi
rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
LIBS="$cf_save"
- echo "$as_me:10531: result: $cf_cxx_library" >&5
+ echo "$as_me:12267: result: $cf_cxx_library" >&5
echo "${ECHO_T}$cf_cxx_library" >&6
fi
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-echo "$as_me:10546: checking how to run the C++ preprocessor" >&5
+echo "$as_me:12282: checking how to run the C++ preprocessor" >&5
echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6
if test -z "$CXXCPP"; then
if test "${ac_cv_prog_CXXCPP+set}" = set; then
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line 10563 "configure"
+#line 12299 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:10568: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12304: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:10574: \$? = $ac_status" >&5
+ echo "$as_me:12310: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line 10597 "configure"
+#line 12333 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:10601: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12337: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:10607: \$? = $ac_status" >&5
+ echo "$as_me:12343: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
else
ac_cv_prog_CXXCPP=$CXXCPP
fi
-echo "$as_me:10644: result: $CXXCPP" >&5
+echo "$as_me:12380: result: $CXXCPP" >&5
echo "${ECHO_T}$CXXCPP" >&6
ac_preproc_ok=false
for ac_cxx_preproc_warn_flag in '' yes
# On the NeXT, cc -E runs the code through the compiler's parser,
# not just through cpp. "Syntax error" is here to catch this case.
cat >conftest.$ac_ext <<_ACEOF
-#line 10654 "configure"
+#line 12390 "configure"
#include "confdefs.h"
#include <assert.h>
Syntax error
_ACEOF
-if { (eval echo "$as_me:10659: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12395: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:10665: \$? = $ac_status" >&5
+ echo "$as_me:12401: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
# OK, works on sane cases. Now check whether non-existent headers
# can be detected and how.
cat >conftest.$ac_ext <<_ACEOF
-#line 10688 "configure"
+#line 12424 "configure"
#include "confdefs.h"
#include <ac_nonexistent.h>
_ACEOF
-if { (eval echo "$as_me:10692: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12428: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:10698: \$? = $ac_status" >&5
+ echo "$as_me:12434: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
if $ac_preproc_ok; then
:
else
- { { echo "$as_me:10726: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
+ { { echo "$as_me:12462: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&5
echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check" >&2;}
{ (exit 1); exit 1; }; }
fi
for ac_header in typeinfo
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:10740: checking for $ac_header" >&5
+echo "$as_me:12476: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10746 "configure"
+#line 12482 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:10750: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12486: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:10756: \$? = $ac_status" >&5
+ echo "$as_me:12492: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
fi
rm -f conftest.err conftest.$ac_ext
fi
-echo "$as_me:10775: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:12511: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<EOF
fi
done
-echo "$as_me:10785: checking if we should include stdbool.h" >&5
+echo "$as_me:12521: checking if we should include stdbool.h" >&5
echo $ECHO_N "checking if we should include stdbool.h... $ECHO_C" >&6
if test "${cf_cv_header_stdbool_h+set}" = set; then
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10793 "configure"
+#line 12529 "configure"
#include "confdefs.h"
int
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10805: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12541: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10808: \$? = $ac_status" >&5
+ echo "$as_me:12544: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:10811: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12547: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10814: \$? = $ac_status" >&5
+ echo "$as_me:12550: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_header_stdbool_h=0
else
echo "$as_me: failed program was:" >&5
cat conftest.$ac_ext >&5
cat >conftest.$ac_ext <<_ACEOF
-#line 10821 "configure"
+#line 12557 "configure"
#include "confdefs.h"
#ifndef __BEOS__
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10837: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12573: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10840: \$? = $ac_status" >&5
+ echo "$as_me:12576: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:10843: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12579: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10846: \$? = $ac_status" >&5
+ echo "$as_me:12582: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_header_stdbool_h=1
else
fi
if test "$cf_cv_header_stdbool_h" = 1
-then echo "$as_me:10860: result: yes" >&5
+then echo "$as_me:12596: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:10862: result: no" >&5
+else echo "$as_me:12598: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:10866: checking for builtin bool type" >&5
+echo "$as_me:12602: checking for builtin bool type" >&5
echo $ECHO_N "checking for builtin bool type... $ECHO_C" >&6
if test "${cf_cv_builtin_bool+set}" = set; then
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10874 "configure"
+#line 12610 "configure"
#include "confdefs.h"
#include <stdio.h>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:10889: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12625: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:10892: \$? = $ac_status" >&5
+ echo "$as_me:12628: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:10895: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12631: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10898: \$? = $ac_status" >&5
+ echo "$as_me:12634: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_builtin_bool=1
else
fi
if test "$cf_cv_builtin_bool" = 1
-then echo "$as_me:10911: result: yes" >&5
+then echo "$as_me:12647: result: yes" >&5
echo "${ECHO_T}yes" >&6
-else echo "$as_me:10913: result: no" >&5
+else echo "$as_me:12649: result: no" >&5
echo "${ECHO_T}no" >&6
fi
-echo "$as_me:10917: checking for size of bool" >&5
+echo "$as_me:12653: checking for size of bool" >&5
echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
if test "${cf_cv_type_of_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
cf_cv_type_of_bool=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line 10928 "configure"
+#line 12664 "configure"
#include "confdefs.h"
#include <stdlib.h>
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:10970: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12706: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:10973: \$? = $ac_status" >&5
+ echo "$as_me:12709: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:10975: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12711: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:10978: \$? = $ac_status" >&5
+ echo "$as_me:12714: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_type_of_bool=`cat cf_test.out`
if test -z "$cf_cv_type_of_bool"; then
fi
rm -f cf_test.out
-echo "$as_me:10996: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:12732: result: $cf_cv_type_of_bool" >&5
echo "${ECHO_T}$cf_cv_type_of_bool" >&6
if test "$cf_cv_type_of_bool" = unknown ; then
case .$NCURSES_BOOL in #(vi
.auto|.) NCURSES_BOOL=unsigned;;
esac
- { echo "$as_me:11002: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ { echo "$as_me:12738: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
cf_cv_type_of_bool=$NCURSES_BOOL
fi
-echo "$as_me:11007: checking for special defines needed for etip.h" >&5
+echo "$as_me:12743: checking for special defines needed for etip.h" >&5
echo $ECHO_N "checking for special defines needed for etip.h... $ECHO_C" >&6
cf_save_CXXFLAGS="$CXXFLAGS"
cf_result="none"
test -n "$cf_math" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_math}"
test -n "$cf_excp" && CXXFLAGS="$CXXFLAGS -DETIP_NEEDS_${cf_excp}"
cat >conftest.$ac_ext <<_ACEOF
-#line 11019 "configure"
+#line 12755 "configure"
#include "confdefs.h"
#include <etip.h.in>
}
_ACEOF
rm -f conftest.$ac_objext
-if { (eval echo "$as_me:11033: \"$ac_compile\"") >&5
+if { (eval echo "$as_me:12769: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
- echo "$as_me:11036: \$? = $ac_status" >&5
+ echo "$as_me:12772: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest.$ac_objext'
- { (eval echo "$as_me:11039: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12775: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11042: \$? = $ac_status" >&5
+ echo "$as_me:12778: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
test -n "$cf_math" && cat >>confdefs.h <<EOF
rm -f conftest.$ac_objext conftest.$ac_ext
done
done
-echo "$as_me:11063: result: $cf_result" >&5
+echo "$as_me:12799: result: $cf_result" >&5
echo "${ECHO_T}$cf_result" >&6
CXXFLAGS="$cf_save_CXXFLAGS"
if test -n "$CXX"; then
-echo "$as_me:11068: checking if $CXX accepts parameter initialization" >&5
+echo "$as_me:12804: checking if $CXX accepts parameter initialization" >&5
echo $ECHO_N "checking if $CXX accepts parameter initialization... $ECHO_C" >&6
if test "${cf_cv_cpp_param_init+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
cf_cv_cpp_param_init=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line 11084 "configure"
+#line 12820 "configure"
#include "confdefs.h"
class TEST {
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11103: \"$ac_link\"") >&5
+if { (eval echo "$as_me:12839: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11106: \$? = $ac_status" >&5
+ echo "$as_me:12842: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:11108: \"$ac_try\"") >&5
+ { (eval echo "$as_me:12844: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11111: \$? = $ac_status" >&5
+ echo "$as_me:12847: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_cpp_param_init=yes
else
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
fi
-echo "$as_me:11129: result: $cf_cv_cpp_param_init" >&5
+echo "$as_me:12865: result: $cf_cv_cpp_param_init" >&5
echo "${ECHO_T}$cf_cv_cpp_param_init" >&6
fi
test "$cf_cv_cpp_param_init" = yes && cat >>confdefs.h <<\EOF
if test -n "$CXX"; then
+echo "$as_me:12874: checking if $CXX accepts static_cast" >&5
+echo $ECHO_N "checking if $CXX accepts static_cast... $ECHO_C" >&6
+if test "${cf_cv_cpp_static_cast+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+ cat >conftest.$ac_ext <<_ACEOF
+#line 12887 "configure"
+#include "confdefs.h"
+
+class NCursesPanel
+{
+public:
+ NCursesPanel(int nlines,
+ int ncols,
+ int begin_y = 0,
+ int begin_x = 0)
+ {
+ }
+
+ ~NCursesPanel();
+};
+
+template<class T> class NCursesUserPanel : public NCursesPanel
+{
+public:
+ NCursesUserPanel (int nlines,
+ int ncols,
+ int begin_y = 0,
+ int begin_x = 0,
+ const T* p_UserData = static_cast<T*>(0))
+ : NCursesPanel (nlines, ncols, begin_y, begin_x)
+ {
+ };
+ NCursesUserPanel(const T* p_UserData = static_cast<T*>(0)) : NCursesPanel()
+ {
+ };
+
+ virtual ~NCursesUserPanel() {};
+};
+
+int
+main ()
+{
+
+ const char* p_UserData = static_cast<char*>(0)
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:12931: \"$ac_compile\"") >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ echo "$as_me:12934: \$? = $ac_status" >&5
+ (exit $ac_status); } &&
+ { ac_try='test -s conftest.$ac_objext'
+ { (eval echo "$as_me:12937: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:12940: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ cf_cv_cpp_static_cast=yes
+else
+ echo "$as_me: failed program was:" >&5
+cat conftest.$ac_ext >&5
+cf_cv_cpp_static_cast=no
+fi
+rm -f conftest.$ac_objext conftest.$ac_ext
+
+ ac_ext=cc
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+
+fi
+echo "$as_me:12957: result: $cf_cv_cpp_static_cast" >&5
+echo "${ECHO_T}$cf_cv_cpp_static_cast" >&6
+
+fi
+
+test "$cf_cv_cpp_static_cast" = yes && cat >>confdefs.h <<\EOF
+#define CPP_HAS_STATIC_CAST 1
+EOF
+
+if test -n "$CXX"; then
+
ac_ext=cc
ac_cpp='$CXXCPP $CPPFLAGS'
ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
for ac_header in strstream.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:11147: checking for $ac_header" >&5
+echo "$as_me:12977: checking for $ac_header" >&5
echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
if eval "test \"\${$as_ac_Header+set}\" = set"; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
cat >conftest.$ac_ext <<_ACEOF
-#line 11153 "configure"
+#line 12983 "configure"
#include "confdefs.h"
#include <$ac_header>
_ACEOF
-if { (eval echo "$as_me:11157: \"$ac_cpp conftest.$ac_ext\"") >&5
+if { (eval echo "$as_me:12987: \"$ac_cpp conftest.$ac_ext\"") >&5
(eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
ac_status=$?
egrep -v '^ *\+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
- echo "$as_me:11163: \$? = $ac_status" >&5
+ echo "$as_me:12993: \$? = $ac_status" >&5
(exit $ac_status); } >/dev/null; then
if test -s conftest.err; then
ac_cpp_err=$ac_cxx_preproc_warn_flag
fi
rm -f conftest.err conftest.$ac_ext
fi
-echo "$as_me:11182: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "$as_me:13012: result: `eval echo '${'$as_ac_Header'}'`" >&5
echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
if test `eval echo '${'$as_ac_Header'}'` = yes; then
cat >>confdefs.h <<EOF
fi
done
-echo "$as_me:11192: checking if $CXX supports vscan function" >&5
+echo "$as_me:13022: checking if $CXX supports vscan function" >&5
echo $ECHO_N "checking if $CXX supports vscan function... $ECHO_C" >&6
if test "${cf_cv_cpp_vscan_func+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
strstream_cast) cf_vscan_defs=USE_STRSTREAM_VSCAN_CAST ;;
esac
cat >conftest.$ac_ext <<_ACEOF
-#line 11206 "configure"
+#line 13036 "configure"
#include "confdefs.h"
#include <stdio.h>
}
_ACEOF
rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:11251: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13081: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11254: \$? = $ac_status" >&5
+ echo "$as_me:13084: \$? = $ac_status" >&5
(exit $ac_status); } &&
{ ac_try='test -s conftest$ac_exeext'
- { (eval echo "$as_me:11257: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13087: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11260: \$? = $ac_status" >&5
+ echo "$as_me:13090: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_cpp_vscan_func=$cf_vscan_func; break
else
done
fi
-echo "$as_me:11273: result: $cf_cv_cpp_vscan_func" >&5
+echo "$as_me:13103: result: $cf_cv_cpp_vscan_func" >&5
echo "${ECHO_T}$cf_cv_cpp_vscan_func" >&6
ac_ext=cc
else
if test "$cf_cv_header_stdbool_h" = 1 ; then
-echo "$as_me:11355: checking for size of bool" >&5
+echo "$as_me:13185: checking for size of bool" >&5
echo $ECHO_N "checking for size of bool... $ECHO_C" >&6
if test "${cf_cv_type_of_bool+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
cf_cv_type_of_bool=unknown
else
cat >conftest.$ac_ext <<_ACEOF
-#line 11366 "configure"
+#line 13196 "configure"
#include "confdefs.h"
#include <stdlib.h>
_ACEOF
rm -f conftest$ac_exeext
-if { (eval echo "$as_me:11408: \"$ac_link\"") >&5
+if { (eval echo "$as_me:13238: \"$ac_link\"") >&5
(eval $ac_link) 2>&5
ac_status=$?
- echo "$as_me:11411: \$? = $ac_status" >&5
+ echo "$as_me:13241: \$? = $ac_status" >&5
(exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (eval echo "$as_me:11413: \"$ac_try\"") >&5
+ { (eval echo "$as_me:13243: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
- echo "$as_me:11416: \$? = $ac_status" >&5
+ echo "$as_me:13246: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
cf_cv_type_of_bool=`cat cf_test.out`
if test -z "$cf_cv_type_of_bool"; then
fi
rm -f cf_test.out
-echo "$as_me:11434: result: $cf_cv_type_of_bool" >&5
+echo "$as_me:13264: result: $cf_cv_type_of_bool" >&5
echo "${ECHO_T}$cf_cv_type_of_bool" >&6
if test "$cf_cv_type_of_bool" = unknown ; then
case .$NCURSES_BOOL in #(vi
.auto|.) NCURSES_BOOL=unsigned;;
esac
- { echo "$as_me:11440: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
+ { echo "$as_me:13270: WARNING: Assuming $NCURSES_BOOL for type of bool" >&5
echo "$as_me: WARNING: Assuming $NCURSES_BOOL for type of bool" >&2;}
cf_cv_type_of_bool=$NCURSES_BOOL
fi
else
- echo "$as_me:11446: checking for fallback type of bool" >&5
+ echo "$as_me:13276: checking for fallback type of bool" >&5
echo $ECHO_N "checking for fallback type of bool... $ECHO_C" >&6
case "$host_cpu" in #(vi
i?86) cf_cv_type_of_bool=char ;; #(vi
*) cf_cv_type_of_bool=int ;;
esac
- echo "$as_me:11452: result: $cf_cv_type_of_bool" >&5
+ echo "$as_me:13282: result: $cf_cv_type_of_bool" >&5
echo "${ECHO_T}$cf_cv_type_of_bool" >&6
fi
fi
cf_ada_make=gnatmake
# Extract the first word of "$cf_ada_make", so it can be a program name with args.
set dummy $cf_ada_make; ac_word=$2
-echo "$as_me:11481: checking for $ac_word" >&5
+echo "$as_me:13311: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_gnat_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_gnat_exists="yes"
-echo "$as_me:11496: found $ac_dir/$ac_word" >&5
+echo "$as_me:13326: found $ac_dir/$ac_word" >&5
break
done
fi
gnat_exists=$ac_cv_prog_gnat_exists
if test -n "$gnat_exists"; then
- echo "$as_me:11505: result: $gnat_exists" >&5
+ echo "$as_me:13335: result: $gnat_exists" >&5
echo "${ECHO_T}$gnat_exists" >&6
else
- echo "$as_me:11508: result: no" >&5
+ echo "$as_me:13338: result: no" >&5
echo "${ECHO_T}no" >&6
fi
cf_ada_make=
else
-echo "$as_me:11516: checking for gnat version" >&5
+echo "$as_me:13346: checking for gnat version" >&5
echo $ECHO_N "checking for gnat version... $ECHO_C" >&6
cf_gnat_version=`${cf_ada_make-gnatmake} -v 2>&1 | grep '[0-9].[0-9][0-9]*' |\
sed -e '2,$d' -e 's/[^0-9 \.]//g' -e 's/^[ ]*//' -e 's/ .*//'`
-echo "$as_me:11520: result: $cf_gnat_version" >&5
+echo "$as_me:13350: result: $cf_gnat_version" >&5
echo "${ECHO_T}$cf_gnat_version" >&6
case $cf_gnat_version in
# Extract the first word of "m4", so it can be a program name with args.
set dummy m4; ac_word=$2
-echo "$as_me:11543: checking for $ac_word" >&5
+echo "$as_me:13373: checking for $ac_word" >&5
echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
if test "${ac_cv_prog_M4_exists+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
test -z "$ac_dir" && ac_dir=.
$as_executable_p "$ac_dir/$ac_word" || continue
ac_cv_prog_M4_exists="yes"
-echo "$as_me:11558: found $ac_dir/$ac_word" >&5
+echo "$as_me:13388: found $ac_dir/$ac_word" >&5
break
done
fi
M4_exists=$ac_cv_prog_M4_exists
if test -n "$M4_exists"; then
- echo "$as_me:11567: result: $M4_exists" >&5
+ echo "$as_me:13397: result: $M4_exists" >&5
echo "${ECHO_T}$M4_exists" >&6
else
- echo "$as_me:11570: result: no" >&5
+ echo "$as_me:13400: result: no" >&5
echo "${ECHO_T}no" >&6
fi
echo Ada95 binding required program m4 not found. Ada95 binding disabled.
fi
if test "$cf_cv_prog_gnat_correct" = yes; then
- echo "$as_me:11579: checking if GNAT works" >&5
+ echo "$as_me:13409: checking if GNAT works" >&5
echo $ECHO_N "checking if GNAT works... $ECHO_C" >&6
rm -f conftest*
GNAT.OS_Lib.OS_Exit (0);
end conftest;
CF_EOF
-if ( $cf_ada_make conftest 1>&5 2>&1 ) ; then
+if ( $cf_ada_make $ADAFLAGS conftest 1>&5 2>&1 ) ; then
if ( ./conftest 1>&5 2>&1 ) ; then
cf_cv_prog_gnat_correct=yes
else
fi
rm -f conftest*
- echo "$as_me:11607: result: $cf_cv_prog_gnat_correct" >&5
+ echo "$as_me:13437: result: $cf_cv_prog_gnat_correct" >&5
echo "${ECHO_T}$cf_cv_prog_gnat_correct" >&6
fi
fi
if test "$cf_cv_prog_gnat_correct" = yes; then
ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
+ echo "$as_me:13444: checking if GNAT pragma Unreferenced works" >&5
+echo $ECHO_N "checking if GNAT pragma Unreferenced works... $ECHO_C" >&6
+
+rm -f conftest*
+cat >>conftest.ads <<CF_EOF
+procedure conftest;
+CF_EOF
+cat >>conftest.adb <<CF_EOF
+with Text_IO;
+with GNAT.OS_Lib;
+procedure conftest is
+ test : Integer;
+ pragma Unreferenced (test);
+begin
+ test := 1;
+ Text_IO.Put ("Hello World");
+ Text_IO.New_Line;
+ GNAT.OS_Lib.OS_Exit (0);
+end conftest;
+CF_EOF
+if ( $cf_ada_make $ADAFLAGS conftest 1>&5 2>&1 ) ; then
+ cf_cv_pragma_unreferenced=yes
+else
+ cf_cv_pragma_unreferenced=no
+fi
+rm -f conftest*
+
+ echo "$as_me:13471: result: $cf_cv_pragma_unreferenced" >&5
+echo "${ECHO_T}$cf_cv_pragma_unreferenced" >&6
+
+ # if the pragma is supported, use it (needed in the Trace code).
+ if test $cf_cv_pragma_unreferenced = yes ; then
+ PRAGMA_UNREF=TRUE
+ else
+ PRAGMA_UNREF=FALSE
+ fi
+
# Check whether --with-ada-compiler or --without-ada-compiler was given.
if test "${with_ada_compiler+set}" = set; then
withval="$with_ada_compiler"
withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
;;
*)
- { { echo "$as_me:11650: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:13517: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
withval=`echo $withval | sed -e s%NONE%$ac_default_prefix%`
;;
*)
- { { echo "$as_me:11684: error: expected a pathname, not \"$withval\"" >&5
+ { { echo "$as_me:13551: error: expected a pathname, not \"$withval\"" >&5
echo "$as_me: error: expected a pathname, not \"$withval\"" >&2;}
{ (exit 1); exit 1; }; }
;;
### Construct the library-subsets, if any, from this set of keywords:
### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
-echo "$as_me:11697: checking for library subsets" >&5
+echo "$as_me:13564: checking for library subsets" >&5
echo $ECHO_N "checking for library subsets... $ECHO_C" >&6
-if test "$with_termlib" = yes ; then
+if test "$with_termlib" != no ; then
LIB_SUBSETS="termlib"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
LIB_SUBSETS="${LIB_SUBSETS} "
LIB_SUBSETS="${LIB_SUBSETS}base"
test "$with_widec" = yes && LIB_SUBSETS="${LIB_SUBSETS}+widechar"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_funcs"
-echo "$as_me:11710: result: $LIB_SUBSETS" >&5
+echo "$as_me:13577: result: $LIB_SUBSETS" >&5
echo "${ECHO_T}$LIB_SUBSETS" >&6
### Construct the list of include-directories to be generated
fi
### Build up pieces for makefile rules
-echo "$as_me:11748: checking default library suffix" >&5
+echo "$as_me:13615: checking default library suffix" >&5
echo $ECHO_N "checking default library suffix... $ECHO_C" >&6
case $DFT_LWR_MODEL in
shared) DFT_ARG_SUFFIX='' ;;
esac
test -n "$LIB_SUFFIX" && DFT_ARG_SUFFIX="${LIB_SUFFIX}${DFT_ARG_SUFFIX}"
-echo "$as_me:11759: result: $DFT_ARG_SUFFIX" >&5
+echo "$as_me:13626: result: $DFT_ARG_SUFFIX" >&5
echo "${ECHO_T}$DFT_ARG_SUFFIX" >&6
-echo "$as_me:11762: checking default library-dependency suffix" >&5
+echo "$as_me:13629: checking default library-dependency suffix" >&5
echo $ECHO_N "checking default library-dependency suffix... $ECHO_C" >&6
case $DFT_LWR_MODEL in
;;
esac
fi
-echo "$as_me:11791: result: $DFT_DEP_SUFFIX" >&5
+echo "$as_me:13658: result: $DFT_DEP_SUFFIX" >&5
echo "${ECHO_T}$DFT_DEP_SUFFIX" >&6
-echo "$as_me:11794: checking default object directory" >&5
+echo "$as_me:13661: checking default object directory" >&5
echo $ECHO_N "checking default object directory... $ECHO_C" >&6
case $DFT_LWR_MODEL in
DFT_OBJ_SUBDIR='obj_s' ;;
esac
esac
-echo "$as_me:11810: result: $DFT_OBJ_SUBDIR" >&5
+echo "$as_me:13677: result: $DFT_OBJ_SUBDIR" >&5
echo "${ECHO_T}$DFT_OBJ_SUBDIR" >&6
# libtool thinks it can make c++ shared libraries (perhaps only g++)
if test "$cf_with_cxx" = yes ; then
-echo "$as_me:11815: checking c++ library-dependency suffix" >&5
+echo "$as_me:13682: checking c++ library-dependency suffix" >&5
echo $ECHO_N "checking c++ library-dependency suffix... $ECHO_C" >&6
if test "$with_libtool" != "no"; then
CXX_LIB_SUFFIX=$DFT_DEP_SUFFIX
esac
test -n "$LIB_SUFFIX" && CXX_LIB_SUFFIX="${LIB_SUFFIX}${CXX_LIB_SUFFIX}"
fi
-echo "$as_me:11841: result: $CXX_LIB_SUFFIX" >&5
+echo "$as_me:13708: result: $CXX_LIB_SUFFIX" >&5
echo "${ECHO_T}$CXX_LIB_SUFFIX" >&6
fi
+### Set up low-level terminfo dependencies for makefiles.
TINFO_LIST="$SHLIB_LIST"
-if test "$with_libtool" = no ; then
- test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
+if test "$with_termlib" != no ; then
+
+ if test "$with_termlib" != yes ; then
+ TINFO_NAME=$with_termlib
+ TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TINFO_LIB_SUFFIX="${with_termlib}"
+ else
+ TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
+ TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
+ TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
+ fi
+
+ TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+ TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+ if test "$DFT_LWR_MODEL" = "libtool"; then
+ TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
+ TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+ else
+ TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+ TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+ TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+ SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ fi
+else
+ TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
fi
-echo "$as_me:11851: checking where we will install curses.h" >&5
+# needed for Ada95
+TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
+
+echo "$as_me:13747: checking where we will install curses.h" >&5
echo $ECHO_N "checking where we will install curses.h... $ECHO_C" >&6
test "$with_overwrite" = no && \
test "x$includedir" = 'x${prefix}/include' && \
includedir='$(prefix)/include/ncurses'${LIB_SUFFIX}
-echo "$as_me:11856: result: $includedir" >&5
+echo "$as_me:13752: result: $includedir" >&5
echo "${ECHO_T}$includedir" >&6
### Resolve a conflict between normal and wide-curses by forcing applications
if test "$with_overwrite" != no ; then
if test "$NCURSES_LIBUTF8" = 1 ; then
NCURSES_LIBUTF8='defined(HAVE_LIBUTF8_H)'
- { echo "$as_me:11864: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
+ { echo "$as_me:13760: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&5
echo "$as_me: WARNING: Wide-character applications must define HAVE_LIBUTF8_H to include curses.h" >&2;}
fi
fi
-### Set up low-level terminfo dependencies for makefiles. Note that we
-### could override this.
-if test "$with_termlib" = yes ; then
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
- fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
### predefined stuff for the test programs
cat >>confdefs.h <<\EOF
#define HAVE_SLK_COLOR 1
### Construct the list of subdirectories for which we'll customize makefiles
### with the appropriate compile-rules.
-echo "$as_me:11890: checking for src modules" >&5
+echo "$as_me:13773: checking for src modules" >&5
echo $ECHO_N "checking for src modules... $ECHO_C" >&6
# dependencies and linker-arguments for test-programs
TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEPS"
+TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${LIB_NAME}${DFT_DEP_SUFFIX} $TEST_DEP2"
if test "$DFT_LWR_MODEL" = "libtool"; then
TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
else
TEST_ARGS="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARGS"
+ TEST_ARG2="-l${LIB_NAME}${DFT_ARG_SUFFIX} $TEST_ARG2"
fi
-# dependencies and linker-arguments for utility-programs
-test "$with_termlib" != yes && PROG_ARGS="$TEST_ARGS"
-
cf_cv_src_modules=
for cf_dir in $modules_to_build
do
EOF
TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEPS"
+ TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${cf_dir}${DFT_DEP_SUFFIX} $TEST_DEP2"
if test "$DFT_LWR_MODEL" = "libtool"; then
TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
else
TEST_ARGS="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARGS"
+ TEST_ARG2="-l${cf_dir}${DFT_ARG_SUFFIX} $TEST_ARG2"
fi
fi
fi
done
-echo "$as_me:11950: result: $cf_cv_src_modules" >&5
+echo "$as_me:13836: result: $cf_cv_src_modules" >&5
echo "${ECHO_T}$cf_cv_src_modules" >&6
-TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
-PROG_ARGS="-L${LIB_DIR} $PROG_ARGS"
+TEST_ARGS="-L${LIB_DIR} $TEST_ARGS"
+TEST_ARG2="-L${LIB_2ND} $TEST_ARG2"
SRC_SUBDIRS="man include"
for cf_dir in $cf_cv_src_modules
### Now that we're done running tests, add the compiler-warnings, if any
+cf_fix_cppflags=no
cf_new_cflags=
cf_new_cppflags=
+cf_new_extra_cppflags=
+
for cf_add_cflags in $EXTRA_CFLAGS
do
+case $cf_fix_cppflags in
+no)
case $cf_add_cflags in #(vi
-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
case "$CPPFLAGS" in
*$cf_add_cflags) #(vi
;;
cf_new_cflags="$cf_new_cflags $cf_add_cflags"
;;
esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
done
if test -n "$cf_new_cflags" ; then
CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
fi
+if test -n "$cf_new_extra_cppflags" ; then
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
################################################################################
test "$use_database" = yes && SUB_MAKEFILES="$SUB_MAKEFILES misc/run_tic.sh:misc/run_tic.in"
ac_config_files="$ac_config_files include/MKterm.h.awk include/curses.head:include/curses.h.in include/termcap.h include/unctrl.h $SUB_MAKEFILES Makefile"
: ${CONFIG_STATUS=./config.status}
ac_clean_files_save=$ac_clean_files
ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:12137: creating $CONFIG_STATUS" >&5
+{ echo "$as_me:14061: creating $CONFIG_STATUS" >&5
echo "$as_me: creating $CONFIG_STATUS" >&6;}
cat >$CONFIG_STATUS <<_ACEOF
#! $SHELL
echo "$ac_cs_version"; exit 0 ;;
--he | --h)
# Conflict between --help and --header
- { { echo "$as_me:12313: error: ambiguous option: $1
+ { { echo "$as_me:14237: error: ambiguous option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: ambiguous option: $1
Try \`$0 --help' for more information." >&2;}
ac_need_defaults=false;;
# This is an error.
- -*) { { echo "$as_me:12332: error: unrecognized option: $1
+ -*) { { echo "$as_me:14256: error: unrecognized option: $1
Try \`$0 --help' for more information." >&5
echo "$as_me: error: unrecognized option: $1
Try \`$0 --help' for more information." >&2;}
AWK="$AWK"
CF_LIST_MODELS="$cf_list_models"
+DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
DFT_LWR_MODEL="$DFT_LWR_MODEL"
LDCONFIG="$LDCONFIG"
LIB_NAME="$LIB_NAME"
NCURSES_OSPEED="$NCURSES_OSPEED"
SRC_SUBDIRS="$SRC_SUBDIRS"
TERMINFO="$TERMINFO"
+TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
+TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
TINFO_NAME="$TINFO_NAME"
WITH_CURSES_H="$with_curses_h"
WITH_ECHO="$with_echo"
WITH_OVERWRITE="$with_overwrite"
cf_cv_abi_version="$cf_cv_abi_version"
cf_cv_do_symlinks="$cf_cv_do_symlinks"
+cf_cv_enable_lp64="$cf_cv_enable_lp64"
+cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
+cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
cf_cv_rel_version="$cf_cv_rel_version"
cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
cf_cv_shlib_version="$cf_cv_shlib_version"
"Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"default" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
"include/ncurses_cfg.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/ncurses_cfg.h:include/ncurses_cfg.hin" ;;
- *) { { echo "$as_me:12412: error: invalid argument: $ac_config_target" >&5
+ *) { { echo "$as_me:14342: error: invalid argument: $ac_config_target" >&5
echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
{ (exit 1); exit 1; }; };;
esac
s,@EXEEXT@,$EXEEXT,;t t
s,@OBJEXT@,$OBJEXT,;t t
s,@CPP@,$CPP,;t t
+s,@EXTRA_CPPFLAGS@,$EXTRA_CPPFLAGS,;t t
s,@PROG_EXT@,$PROG_EXT,;t t
s,@LDCONFIG@,$LDCONFIG,;t t
s,@CXX@,$CXX,;t t
s,@cf_cv_makeflags@,$cf_cv_makeflags,;t t
s,@DESTDIR@,$DESTDIR,;t t
s,@BUILD_CC@,$BUILD_CC,;t t
+s,@BUILD_CPP@,$BUILD_CPP,;t t
s,@BUILD_CFLAGS@,$BUILD_CFLAGS,;t t
s,@BUILD_CPPFLAGS@,$BUILD_CPPFLAGS,;t t
s,@BUILD_LDFLAGS@,$BUILD_LDFLAGS,;t t
s,@BUILD_LIBS@,$BUILD_LIBS,;t t
s,@BUILD_EXEEXT@,$BUILD_EXEEXT,;t t
+s,@BUILD_OBJEXT@,$BUILD_OBJEXT,;t t
s,@cf_list_models@,$cf_list_models,;t t
s,@LIBTOOL@,$LIBTOOL,;t t
s,@LIBTOOL_CXX@,$LIBTOOL_CXX,;t t
s,@TERMINFO_SRC@,$TERMINFO_SRC,;t t
s,@PATHSEP@,$PATHSEP,;t t
s,@FALLBACK_LIST@,$FALLBACK_LIST,;t t
+s,@WHICH_XTERM@,$WHICH_XTERM,;t t
s,@TERMINFO_DIRS@,$TERMINFO_DIRS,;t t
s,@TERMINFO@,$TERMINFO,;t t
s,@MAKE_TERMINFO@,$MAKE_TERMINFO,;t t
s,@TERMPATH@,$TERMPATH,;t t
s,@BROKEN_LINKER@,$BROKEN_LINKER,;t t
-s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t
-s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
-s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
-s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
-s,@NCURSES_CONST@,$NCURSES_CONST,;t t
-s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
s,@NCURSES_CH_T@,$NCURSES_CH_T,;t t
s,@NCURSES_LIBUTF8@,$NCURSES_LIBUTF8,;t t
s,@NEED_WCHAR_H@,$NEED_WCHAR_H,;t t
s,@NCURSES_WINT_T@,$NCURSES_WINT_T,;t t
s,@NCURSES_OK_WCHAR_T@,$NCURSES_OK_WCHAR_T,;t t
s,@NCURSES_OK_WINT_T@,$NCURSES_OK_WINT_T,;t t
+s,@cf_cv_enable_lp64@,$cf_cv_enable_lp64,;t t
+s,@NCURSES_BOOL@,$NCURSES_BOOL,;t t
s,@TERMINFO_CAPS@,$TERMINFO_CAPS,;t t
+s,@NCURSES_OSPEED@,$NCURSES_OSPEED,;t t
+s,@MANPAGE_RENAMES@,$MANPAGE_RENAMES,;t t
+s,@NCURSES_EXT_FUNCS@,$NCURSES_EXT_FUNCS,;t t
+s,@NCURSES_CONST@,$NCURSES_CONST,;t t
+s,@NCURSES_XNAMES@,$NCURSES_XNAMES,;t t
+s,@NCURSES_EXT_COLORS@,$NCURSES_EXT_COLORS,;t t
+s,@NCURSES_MOUSE_VERSION@,$NCURSES_MOUSE_VERSION,;t t
s,@ECHO_LINK@,$ECHO_LINK,;t t
s,@EXTRA_CFLAGS@,$EXTRA_CFLAGS,;t t
+s,@EXTRA_CXXFLAGS@,$EXTRA_CXXFLAGS,;t t
s,@ADA_TRACE@,$ADA_TRACE,;t t
s,@MATH_LIB@,$MATH_LIB,;t t
s,@cf_cv_typeof_chtype@,$cf_cv_typeof_chtype,;t t
s,@cf_cv_1UL@,$cf_cv_1UL,;t t
+s,@cf_cv_typeof_mmask_t@,$cf_cv_typeof_mmask_t,;t t
s,@HAVE_VSSCANF@,$HAVE_VSSCANF,;t t
s,@CXXCPP@,$CXXCPP,;t t
s,@CXXLDFLAGS@,$CXXLDFLAGS,;t t
s,@ADAFLAGS@,$ADAFLAGS,;t t
s,@cf_compile_generics@,$cf_compile_generics,;t t
s,@cf_generic_objects@,$cf_generic_objects,;t t
+s,@PRAGMA_UNREF@,$PRAGMA_UNREF,;t t
s,@ADA_INCLUDE@,$ADA_INCLUDE,;t t
s,@ADA_OBJECTS@,$ADA_OBJECTS,;t t
s,@ACPPFLAGS@,$ACPPFLAGS,;t t
s,@DFT_DEP_SUFFIX@,$DFT_DEP_SUFFIX,;t t
s,@DFT_OBJ_SUBDIR@,$DFT_OBJ_SUBDIR,;t t
s,@CXX_LIB_SUFFIX@,$CXX_LIB_SUFFIX,;t t
-s,@EXTRA_LIBS@,$EXTRA_LIBS,;t t
+s,@TINFO_ARG_SUFFIX@,$TINFO_ARG_SUFFIX,;t t
+s,@TINFO_DEP_SUFFIX@,$TINFO_DEP_SUFFIX,;t t
+s,@TINFO_LIB_SUFFIX@,$TINFO_LIB_SUFFIX,;t t
+s,@TINFO_ARGS@,$TINFO_ARGS,;t t
+s,@TINFO_ARGS2@,$TINFO_ARGS2,;t t
s,@TINFO_LIST@,$TINFO_LIST,;t t
s,@SHLIB_LIST@,$SHLIB_LIST,;t t
-s,@TEST_DEPS@,$TEST_DEPS,;t t
s,@TEST_ARGS@,$TEST_ARGS,;t t
-s,@PROG_ARGS@,$PROG_ARGS,;t t
+s,@TEST_DEPS@,$TEST_DEPS,;t t
+s,@TEST_ARG2@,$TEST_ARG2,;t t
+s,@TEST_DEP2@,$TEST_DEP2,;t t
s,@ADA_SUBDIRS@,$ADA_SUBDIRS,;t t
s,@DIRS_TO_MAKE@,$DIRS_TO_MAKE,;t t
CEOF
esac
if test x"$ac_file" != x-; then
- { echo "$as_me:12755: creating $ac_file" >&5
+ { echo "$as_me:14700: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
rm -f "$ac_file"
fi
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:12773: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:14718: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
echo $srcdir/$f
else
# /dev/null tree
- { { echo "$as_me:12786: error: cannot find input file: $f" >&5
+ { { echo "$as_me:14731: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
* ) ac_file_in=$ac_file.in ;;
esac
- test x"$ac_file" != x- && { echo "$as_me:12852: creating $ac_file" >&5
+ test x"$ac_file" != x- && { echo "$as_me:14797: creating $ac_file" >&5
echo "$as_me: creating $ac_file" >&6;}
# First look for the input files in the build tree, otherwise in the
-) echo $tmp/stdin ;;
[\\/$]*)
# Absolute (can't be DOS-style, as IFS=:)
- test -f "$f" || { { echo "$as_me:12863: error: cannot find input file: $f" >&5
+ test -f "$f" || { { echo "$as_me:14808: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
echo $f;;
echo $srcdir/$f
else
# /dev/null tree
- { { echo "$as_me:12876: error: cannot find input file: $f" >&5
+ { { echo "$as_me:14821: error: cannot find input file: $f" >&5
echo "$as_me: error: cannot find input file: $f" >&2;}
{ (exit 1); exit 1; }; }
fi;;
rm -f $tmp/in
if test x"$ac_file" != x-; then
if cmp -s $ac_file $tmp/config.h 2>/dev/null; then
- { echo "$as_me:12934: $ac_file is unchanged" >&5
+ { echo "$as_me:14879: $ac_file is unchanged" >&5
echo "$as_me: $ac_file is unchanged" >&6;}
else
ac_dir=`$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
case "$cf_cv_shlib_version" in #(vi
rel) #(vi
case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(REL_VERSION)'"$cf_suffix" ;; #(vi
+ darwin*)
+ case .${LIB_SUFFIX} in
+ .w*)
+ cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+ cf_suffix=w'.$(REL_VERSION)'"$cf_suffix"
+ ;;
+ *)
+ cf_suffix='.$(REL_VERSION)'"$cf_suffix"
+ ;;
+ esac
+ ;; #(vi
*) cf_suffix="$cf_suffix"'.$(REL_VERSION)' ;;
esac
;;
abi)
case "$cf_cv_system_name" in #(vi
- darwin*) cf_suffix='.$(ABI_VERSION)'"$cf_suffix" ;; #(vi
+ darwin*)
+ case .${LIB_SUFFIX} in
+ .w*)
+ cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+ cf_suffix=w'.$(ABI_VERSION)'"$cf_suffix"
+ ;;
+ *)
+ cf_suffix='.$(ABI_VERSION)'"$cf_suffix"
+ ;;
+ esac
+ ;; #(vi
*) cf_suffix="$cf_suffix"'.$(ABI_VERSION)' ;;
esac
;;
cf_subsets="$LIB_SUBSETS"
cf_termlib=`echo "$cf_subsets" |sed -e 's/ .*$//'`
if test "$cf_termlib" != "$cf_subsets" ; then
- cf_item=`echo $LIBS_TO_MAKE |sed -e s%$LIB_NAME%$TINFO_NAME%g`
+ cf_item=`echo $LIBS_TO_MAKE |sed -e s%${LIB_NAME}${LIB_SUFFIX}%${TINFO_LIB_SUFFIX}%g`
LIBS_TO_MAKE="$cf_item $LIBS_TO_MAKE"
fi
else
do
echo "Appending rules for ${cf_item} model (${cf_dir}: ${cf_subset})"
-CF_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
+cf_ITEM=`echo "$cf_item" | sed y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%`
case $cf_item in
libtool) cf_suffix='.la' ;;
esac
esac
+ # Test for case where we build libtinfo with a different name.
+ cf_libname=$cf_dir
+ if test $cf_dir = ncurses ; then
+ case $cf_subset in
+ *base*)
+ ;;
+ termlib*)
+ cf_libname=$TINFO_LIB_SUFFIX
+ if test -n "${DFT_ARG_SUFFIX}" ; then
+ # undo $LIB_SUFFIX add-on in CF_LIB_SUFFIX
+ cf_suffix=`echo $cf_suffix |sed -e "s%^${LIB_SUFFIX}%%"`
+ fi
+ ;;
+ esac
+ fi
+
# These dependencies really are for development, not
# builds, but they are useful in porting, too.
cf_depend="../include/ncurses_cfg.h"
cf_depend="$cf_depend $cf_reldir/curses.priv.h"
fi
+ cf_dir_suffix=
+ old_cf_suffix="$cf_suffix"
+ if test "$cf_cv_shlib_version_infix" = yes ; then
+ if test -n "$LIB_SUFFIX" ; then
+ case $LIB_SUFFIX in
+ w*)
+ cf_libname=`echo $cf_libname | sed 's/w$//'`
+ cf_suffix=`echo $cf_suffix | sed 's/^w//'`
+ cf_dir_suffix=w
+ ;;
+ esac
+ fi
+ fi
+
$AWK -f $srcdir/mk-1st.awk \
- name=$cf_dir \
+ name=${cf_libname}${cf_dir_suffix} \
traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
+ MODEL=$cf_ITEM \
model=$cf_subdir \
prefix=$cf_prefix \
suffix=$cf_suffix \
depend="$cf_depend" \
host="$host" \
$srcdir/$cf_dir/modules >>$cf_dir/Makefile
+
+ cf_suffix="$old_cf_suffix"
+
for cf_subdir2 in $cf_subdirs lib
do
test $cf_subdir = $cf_subdir2 && break
$AWK -f $srcdir/mk-2nd.awk \
name=$cf_dir \
traces=$LIB_TRACING \
- MODEL=$CF_ITEM \
+ MODEL=$cf_ITEM \
model=$cf_subdir \
subset=$cf_subset \
srcdir=$srcdir \
echo=$WITH_ECHO \
+ crenames=$cf_cv_prog_CC_c_o \
+ cxxrenames=$cf_cv_prog_CXX_c_o \
$srcdir/$cf_dir/modules >>$cf_dir/Makefile
cf_subdirs="$cf_subdirs $cf_subdir"
done
dnl***************************************************************************
-dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+dnl Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
dnl copy of this software and associated documentation files (the *
dnl
dnl Author: Thomas E. Dickey 1995-on
dnl
-dnl $Id: configure.in,v 1.312 2004/01/24 19:29:13 tom Exp $
+dnl $Id: configure.in,v 1.351 2005/09/17 22:41:48 tom Exp $
dnl Process this file with autoconf to produce a configure script.
dnl
dnl See http://invisible-island.net/autoconf/ for additional information.
dnl
dnl ---------------------------------------------------------------------------
AC_PREREQ(2.13.20020210)
-AC_REVISION($Revision: 1.312 $)
+AC_REVISION($Revision: 1.351 $)
AC_INIT(ncurses/base/lib_initscr.c)
AC_CONFIG_HEADER(include/ncurses_cfg.h:include/ncurses_cfg.hin)
AC_PROG_CPP
AC_PROG_GCC_TRADITIONAL
+CF_PROG_CC_C_O(CC)
AC_ISC_POSIX
CF_ANSI_CC_REQD
CF_PROG_EXT
# 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.
-: ${BUILD_CC:='$(CC)'}
-: ${BUILD_CFLAGS:='$(CFLAGS)'}
-: ${BUILD_CPPFLAGS:='$(CPPFLAGS)'}
-: ${BUILD_LDFLAGS:='$(LDFLAGS)'}
-: ${BUILD_LIBS:='$(LIBS)'}
-: ${BUILD_EXEEXT:='$x'}
-if test "$cross_compiling" = yes ; then
- AC_ARG_WITH(build-cc,
- [ --with-build-cc=XXX the build C compiler ($BUILD_CC)],
- [BUILD_CC="$withval"],
- [AC_CHECK_PROGS(BUILD_CC, $CC gcc cc)])
- AC_ARG_WITH(build-cflags,
- [ --with-build-cflags=XXX the build C compiler-flags],
- [BUILD_CFLAGS="$withval"])
- AC_ARG_WITH(build-cppflags,
- [ --with-build-cppflags=XXX the build C preprocessor-flags],
- [BUILD_CPPFLAGS="$withval"])
- AC_ARG_WITH(build-ldflags,
- [ --with-build-ldflags=XXX the build linker-flags],
- [BUILD_LDFLAGS="$withval"])
- AC_ARG_WITH(build-libs,
- [ --with-build-libs=XXX the build libraries],
- [BUILD_LIBS="$withval"])
- BUILD_EXEEXT=
-fi
-AC_SUBST(BUILD_CC)
-AC_SUBST(BUILD_CFLAGS)
-AC_SUBST(BUILD_CPPFLAGS)
-AC_SUBST(BUILD_LDFLAGS)
-AC_SUBST(BUILD_LIBS)
-AC_SUBST(BUILD_EXEEXT)
+CF_BUILD_CC
###############################################################################
CF_HELP_MESSAGE(Options to Specify the Libraries Built/Used:)
AC_SUBST(LIB_NAME)
LIB_DIR=../lib
+LIB_2ND=../../lib
+
CF_LIB_PREFIX(cf_prefix)
LIB_PREFIX=$cf_prefix
AC_SUBST(LIB_PREFIX)
CF_WITH_DMALLOC
SHLIB_LIST=""
-AC_MSG_CHECKING(if you want to link with the gpm mouse library)
-AC_ARG_WITH(gpm,
- [ --with-gpm use Alessandro Rubini's GPM library],
- [with_gpm=$withval],
- [with_gpm=no])
-AC_MSG_RESULT($with_gpm)
+CF_WITH_GPM
if test "$with_gpm" = yes ; then
- AC_CHECK_LIB(gpm,Gpm_Open,[
- EXTRA_LIBS="-lgpm -lncurses $EXTRA_LIBS"
- SHLIB_LIST="-lgpm $SHLIB_LIST"
- AC_DEFINE(HAVE_LIBGPM)
- AC_CHECK_HEADERS(gpm.h)
- ],AC_MSG_WARN(Cannot link with gpm library - read the FAQ))
+ CF_FUNC_DLSYM
+ CF_LIB_SONAME([#include <gpm.h>],[if (Gpm_Open(0,0)) Gpm_Close();],gpm)
+ test "$cf_cv_gpm_soname" != "unknown" && AC_DEFINE_UNQUOTED(LIBGPM_SONAME,"$cf_cv_gpm_soname")
+ SHLIB_LIST="-ldl $SHLIB_LIST"
+ AC_DEFINE(HAVE_LIBGPM)
+ AC_CHECK_LIB(gpm,Gpm_Wgetch,[
+ AC_MSG_WARN(GPM library is already linked with curses - read the FAQ)
+ ])
fi
CF_WITH_SYSMOUSE
FALLBACK_LIST=`echo "$with_fallback" | sed -e 's/,/ /g'`
AC_SUBST(FALLBACK_LIST)
+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
+no) with_xterm_new=xterm-old;;
+*) with_xterm_new=xterm-new;;
+esac
+AC_MSG_RESULT($with_xterm_new)
+WHICH_XTERM=$with_xterm_new
+AC_SUBST(WHICH_XTERM)
+
MAKE_TERMINFO=
if test "$use_database" = no ; then
TERMINFO="${datadir}/terminfo"
[ --disable-home-terminfo drop ~/.terminfo from terminfo search-path],
[with_home_terminfo=$enableval],
[with_home_terminfo=yes])
+AC_MSG_RESULT($with_home_terminfo)
test "$with_home_terminfo" = "yes" && AC_DEFINE(USE_HOME_TERMINFO)
+AC_MSG_CHECKING(if you want to use restrict environment when running as root)
+AC_ARG_ENABLE(root-environ,
+ [ --disable-root-environ limit environment when running as root],
+ [with_root_environ=$enableval],
+ [with_root_environ=yes])
+AC_MSG_RESULT($with_root_environ)
+test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
+
### Use option --enable-symlinks to make tic use symlinks, not hard links
### to reduce storage requirements for the terminfo database.
CF_LINK_FUNCS
fi
AC_SUBST(BROKEN_LINKER)
+### use option --enable-widec to turn on use of wide-character support
+NCURSES_CH_T=chtype
+NCURSES_LIBUTF8=0
+
+NEED_WCHAR_H=0
+NCURSES_MBSTATE_T=0
+NCURSES_WCHAR_T=0
+NCURSES_WINT_T=0
+
+# Check to define _XOPEN_SOURCE "automatically"
+CF_XOPEN_SOURCE
+
+# Checks for CODESET support.
+AM_LANGINFO_CODESET
+
+# use these variables to work around a defect in gcc's fixincludes.
+NCURSES_OK_WCHAR_T=
+NCURSES_OK_WINT_T=
+
+AC_MSG_CHECKING(if you want wide-character code)
+AC_ARG_ENABLE(widec,
+ [ --enable-widec compile with wide-char/UTF-8 code],
+ [with_widec=$enableval],
+ [with_widec=no])
+AC_MSG_RESULT($with_widec)
+if test "$with_widec" = yes ; then
+ LIB_SUFFIX="w${LIB_SUFFIX}"
+ AC_DEFINE(USE_WIDEC_SUPPORT)
+ CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
+ # with_overwrite=no
+ NCURSES_CH_T=cchar_t
+ AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
+ if test "$ac_cv_func_putwc" != yes ; then
+ CF_LIBUTF8
+ if test "$cf_cv_libutf8" = yes ; then
+ NCURSES_LIBUTF8=1
+ fi
+ fi
+ CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T)
+ CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
+ CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
+
+ if test "$NCURSES_MBSTATE_T" != 0; then
+ AC_DEFINE(NEED_MBSTATE_T_DEF)
+ fi
+fi
+AC_SUBST(NCURSES_CH_T)
+AC_SUBST(NCURSES_LIBUTF8)
+
+AC_SUBST(NEED_WCHAR_H)
+AC_SUBST(NCURSES_MBSTATE_T)
+AC_SUBST(NCURSES_WCHAR_T)
+AC_SUBST(NCURSES_WINT_T)
+
+AC_SUBST(NCURSES_OK_WCHAR_T)
+AC_SUBST(NCURSES_OK_WINT_T)
+
+### use option --disable-lp64 to allow long chtype
+case $cf_cv_abi_version in
+[[345]]*)
+ default_with_lp64=no
+ ;;
+*)
+ default_with_lp64=yes
+ ;;
+esac
+
+AC_MSG_CHECKING(whether to enable _LP64 definition in curses.h)
+AC_ARG_ENABLE(lp64,
+ [ --disable-lp64 allow chtype to be long (ignore _LP64)],
+ [with_lp64=$enableval],
+ [with_lp64=$default_with_lp64])
+AC_MSG_RESULT($with_lp64)
+
+if test "$with_lp64" = yes ; then
+ cf_cv_enable_lp64=1
+else
+ cf_cv_enable_lp64=0
+fi
+AC_SUBST(cf_cv_enable_lp64)
+
+CF_LARGEFILE
+
### use option --with-bool to override bool's type
AC_MSG_CHECKING(for type of bool)
AC_ARG_WITH(bool,
AC_MSG_RESULT($NCURSES_BOOL)
AC_SUBST(NCURSES_BOOL)
+AC_MSG_CHECKING(for alternate terminal capabilities file)
+AC_ARG_WITH(caps,
+ [ --with-caps=alt compile with alternate Caps file],
+ [TERMINFO_CAPS=Caps.$withval],
+ [TERMINFO_CAPS=Caps])
+test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
+AC_MSG_RESULT($TERMINFO_CAPS)
+AC_SUBST(TERMINFO_CAPS)
+
+### use option --with-chtype to override chtype's type
+AC_MSG_CHECKING(for type of chtype)
+AC_ARG_WITH(chtype,
+ [ --with-chtype=TYPE override type of chtype],
+ [NCURSES_CHTYPE="$withval"],
+ [NCURSES_CHTYPE=auto])
+AC_MSG_RESULT($NCURSES_CHTYPE)
+
### use option --with-ospeed to override ospeed's type
AC_MSG_CHECKING(for type of ospeed)
AC_ARG_WITH(ospeed,
AC_MSG_RESULT($NCURSES_OSPEED)
AC_SUBST(NCURSES_OSPEED)
+### use option --with-mmask-t to override mmask_t's type
+AC_MSG_CHECKING(for type of mmask_t)
+AC_ARG_WITH(mmask-t,
+ [ --with-mmask-t=TYPE override type of mmask_t],
+ [NCURSES_MMASK_T="$withval"],
+ [NCURSES_MMASK_T=auto])
+AC_MSG_RESULT($NCURSES_MMASK_T)
+
### use option --enable-bsdpad to have tputs process BSD-style prefix padding
AC_MSG_CHECKING(if tputs should process BSD-style prefix padding)
AC_ARG_ENABLE(bsdpad,
AC_MSG_RESULT($with_hardtabs)
test "$with_hardtabs" = yes && AC_DEFINE(USE_HARD_TABS)
-AC_MSG_CHECKING(if you want to use restrict environment when running as root)
-AC_ARG_ENABLE(root-environ,
- [ --disable-root-environ limit environment when running as root],
- [with_root_environ=$enableval],
- [with_root_environ=yes])
-AC_MSG_RESULT($with_root_environ)
-test "$with_root_environ" = yes && AC_DEFINE(USE_ROOT_ENVIRON)
-
### use option --enable-xmc-glitch to turn on use of magic-cookie optimize
AC_MSG_CHECKING(if you want limited support for xmc)
AC_ARG_ENABLE(xmc-glitch,
AC_MSG_RESULT($with_colorfgbg)
test "$with_colorfgbg" = yes && AC_DEFINE(USE_COLORFGBG)
+### use option --enable-ext-colors to turn on use of colors beyond 16.
+AC_MSG_CHECKING(if you want to use experimental extended colors)
+AC_ARG_ENABLE(ext-colors,
+ [ --enable-ext-colors compile for experimental 256-color support],
+ [with_ext_colors=$enableval],
+ [with_ext_colors=no])
+AC_MSG_RESULT($with_ext_colors)
+NCURSES_EXT_COLORS=0
+if test "$with_ext_colors" = yes ; then
+ if test "$with_widec" != yes ; then
+ AC_MSG_WARN(This option applies only to wide-character library)
+ else
+ # cannot be ABI 5 since it changes sizeof(cchar_t)
+ CF_NCURSES_ABI_6
+ fi
+ NCURSES_EXT_COLORS=1
+ AC_DEFINE(NCURSES_EXT_COLORS)
+fi
+AC_SUBST(NCURSES_EXT_COLORS)
+
+### use option --enable-ext-mouse to modify coding to support 5-button mice
+AC_MSG_CHECKING(if you want to use experimental extended mouse encoding)
+AC_ARG_ENABLE(ext-mouse,
+ [ --enable-ext-mouse compile for experimental mouse-encoding],
+ [with_ext_mouse=$enableval],
+ [with_ext_mouse=no])
+AC_MSG_RESULT($with_ext_mouse)
+NCURSES_MOUSE_VERSION=1
+if test "$with_ext_mouse" = yes ; then
+ NCURSES_MOUSE_VERSION=2
+ CF_NCURSES_ABI_6
+fi
+AC_SUBST(NCURSES_MOUSE_VERSION)
+
AC_MSG_CHECKING(if you want experimental safe-sprintf code)
AC_ARG_ENABLE(safe-sprintf,
[ --enable-safe-sprintf compile with experimental safe-sprintf code],
test "$with_scroll_hints" = yes && AC_DEFINE(USE_SCROLL_HINTS)
fi
-### use option --enable-widec to turn on use of wide-character support
-NCURSES_CH_T=chtype
-NCURSES_LIBUTF8=0
-
-NEED_WCHAR_H=0
-NCURSES_MBSTATE_T=0
-NCURSES_WCHAR_T=0
-NCURSES_WINT_T=0
-
-# Check to define _XOPEN_SOURCE "automatically"
-CF_XOPEN_SOURCE
-
-# use these variables to work around a defect in gcc's fixincludes.
-NCURSES_OK_WCHAR_T=
-NCURSES_OK_WINT_T=
-
-AC_MSG_CHECKING(if you want experimental wide-character code)
-AC_ARG_ENABLE(widec,
- [ --enable-widec compile with experimental wide-char/UTF-8 code],
- [with_widec=$enableval],
- [with_widec=no])
-AC_MSG_RESULT($with_widec)
-if test "$with_widec" = yes ; then
- LIB_SUFFIX="w${LIB_SUFFIX}"
- AC_DEFINE(USE_WIDEC_SUPPORT)
- CF_PREDEFINE(_XOPEN_SOURCE,500)
- CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
- # with_overwrite=no
- NCURSES_CH_T=cchar_t
- AC_CHECK_FUNCS(putwc btowc wctob mbtowc wctomb mblen mbrlen mbrtowc)
- if test "$ac_cv_func_putwc" != yes ; then
- CF_LIBUTF8
- if test "$cf_cv_libutf8" = yes ; then
- NCURSES_LIBUTF8=1
- fi
- fi
- CF_WCHAR_TYPE(mbstate_t, NCURSES_MBSTATE_T)
- CF_WCHAR_TYPE(wchar_t, NCURSES_WCHAR_T, NCURSES_OK_WCHAR_T)
- CF_WCHAR_TYPE(wint_t, NCURSES_WINT_T, NCURSES_OK_WINT_T)
-fi
-AC_SUBST(NCURSES_CH_T)
-AC_SUBST(NCURSES_LIBUTF8)
-
-AC_SUBST(NEED_WCHAR_H)
-AC_SUBST(NCURSES_MBSTATE_T)
-AC_SUBST(NCURSES_WCHAR_T)
-AC_SUBST(NCURSES_WINT_T)
-
-AC_SUBST(NCURSES_OK_WCHAR_T)
-AC_SUBST(NCURSES_OK_WINT_T)
-
-AC_MSG_CHECKING(for terminal capabilities file)
-AC_ARG_WITH(caps,
- [ --with-caps=alt compile with experimental alternate Caps file],
- [TERMINFO_CAPS=Caps.$withval],
- [TERMINFO_CAPS=Caps])
-test -f ${srcdir}/include/${TERMINFO_CAPS} || TERMINFO_CAPS=Caps
-AC_MSG_RESULT($TERMINFO_CAPS)
-AC_SUBST(TERMINFO_CAPS)
-
###############################################################################
CF_HELP_MESSAGE(Testing/development Options:)
if test -n "$with_warnings"; then
ADAFLAGS="$ADAFLAGS -gnatg"
CF_GCC_WARNINGS
+ if test "$cf_with_cxx" = yes ; then
+ CF_GXX_WARNINGS(Wno-unused)
+ fi
fi
CF_GCC_ATTRIBUTES
[ --with-trace test: add trace() function to all models of ncurses],
[cf_with_trace=$withval],
[cf_with_trace=$cf_all_traces])
-AC_MSG_RESULT($with_trace)
+AC_MSG_RESULT($cf_with_trace)
if test "$cf_with_trace" = yes ; then
LIB_TRACING=all
AC_CHECK_HEADERS( \
fcntl.h \
getopt.h \
-libc.h \
limits.h \
locale.h \
poll.h \
sys/times.h \
ttyent.h \
unistd.h \
-wctype.h )
+wctype.h \
+)
# check for ISC (this may also define _POSIX_SOURCE)
# Note: even non-Posix ISC needs <sys/bsdtypes.h> to declare fd_set
AC_C_INLINE
test "$ac_cv_c_inline" != no && AC_DEFINE(CC_HAS_INLINE_FUNCS)
-CF_TYPEOF_CHTYPE
+if test $NCURSES_CHTYPE = auto ; then
+ CF_TYPEOF_CHTYPE
+else
+ cf_cv_typeof_chtype=$NCURSES_CHTYPE
+fi
+AC_SUBST(cf_cv_typeof_chtype)
+
+CF_UNSIGNED_LITERALS
+cf_cv_1UL="1"
+test "$cf_cv_unsigned_literals" = yes && cf_cv_1UL="${cf_cv_1UL}U"
+test "$cf_cv_typeof_chtype" = long && cf_cv_1UL="${cf_cv_1UL}L"
+AC_SUBST(cf_cv_1UL)
+
+if test $NCURSES_MMASK_T = auto ; then
+ cf_cv_typeof_mmask_t=long
+else
+ cf_cv_typeof_mmask_t=$NCURSES_MMASK_T
+fi
+AC_SUBST(cf_cv_typeof_mmask_t)
### Checks for external-data
CF_ERRNO
geteuid \
getttynam \
issetugid \
-memccpy \
-nanosleep \
poll \
remove \
select \
CF_ISASCII
CF_STRUCT_SIGACTION
+CF_FUNC_NANOSLEEP
CF_FUNC_TERMIOS
CF_FUNC_VSSCANF
CF_MKSTEMP
if test -n "$CXX" ; then
AC_LANG_CPLUSPLUS
CF_STDCPP_LIBRARY
+ CF_PROG_CC_C_O(CXX)
case $GXX_VERSION in
1*|2.[0-6]*)
CF_BOOL_SIZE
CF_ETIP_DEFINES
CF_CPP_PARAM_INIT
+ CF_CPP_STATIC_CAST
CF_CPP_VSCAN_FUNC
CXX_AR='$(AR)'
if test "$cf_cv_prog_gnat_correct" = yes; then
ADAFLAGS="-O3 -gnatpn $ADAFLAGS"
+ AC_MSG_CHECKING(if GNAT pragma Unreferenced works)
+ CF_GNAT_TRY_LINK([procedure conftest;],
+[with Text_IO;
+with GNAT.OS_Lib;
+procedure conftest is
+ test : Integer;
+ pragma Unreferenced (test);
+begin
+ test := 1;
+ Text_IO.Put ("Hello World");
+ Text_IO.New_Line;
+ GNAT.OS_Lib.OS_Exit (0);
+end conftest;],[cf_cv_pragma_unreferenced=yes],[cf_cv_pragma_unreferenced=no])
+ AC_MSG_RESULT($cf_cv_pragma_unreferenced)
+
+ # if the pragma is supported, use it (needed in the Trace code).
+ if test $cf_cv_pragma_unreferenced = yes ; then
+ PRAGMA_UNREF=TRUE
+ else
+ PRAGMA_UNREF=FALSE
+ fi
+
AC_ARG_WITH(ada-compiler,
[ --with-ada-compiler=CMD specify Ada95 compiler command (default gnatmake)],
[cf_ada_compiler=$withval],
AC_SUBST(ADAFLAGS)
AC_SUBST(cf_compile_generics)
AC_SUBST(cf_generic_objects)
+ AC_SUBST(PRAGMA_UNREF)
CF_WITH_PATH(ada-include,
[ --with-ada-include=DIR Ada includes are in DIR],
### Construct the library-subsets, if any, from this set of keywords:
### none, base, ext_funcs, ext_tinfo, termlib, widechar (see CF_LIB_RULES).
AC_MSG_CHECKING(for library subsets)
-if test "$with_termlib" = yes ; then
+if test "$with_termlib" != no ; then
LIB_SUBSETS="termlib"
test "$with_ext_funcs" = yes && LIB_SUBSETS="${LIB_SUBSETS}+ext_tinfo"
LIB_SUBSETS="${LIB_SUBSETS} "
AC_SUBST(CXX_LIB_SUFFIX)
fi
+### Set up low-level terminfo dependencies for makefiles.
TINFO_LIST="$SHLIB_LIST"
-if test "$with_libtool" = no ; then
- test "$with_termlib" = yes && SHLIB_LIST="$SHLIB_LIST -ltinfo${LIB_SUFFIX}"
+if test "$with_termlib" != no ; then
+
+ if test "$with_termlib" != yes ; then
+ TINFO_NAME=$with_termlib
+ TINFO_ARG_SUFFIX="${with_termlib}`echo ${DFT_ARG_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TINFO_DEP_SUFFIX="${with_termlib}`echo ${DFT_DEP_SUFFIX}|sed -e "s/^${LIB_SUFFIX}//"`"
+ TINFO_LIB_SUFFIX="${with_termlib}"
+ else
+ TINFO_ARG_SUFFIX="${TINFO_NAME}${DFT_ARG_SUFFIX}"
+ TINFO_DEP_SUFFIX="${TINFO_NAME}${DFT_DEP_SUFFIX}"
+ TINFO_LIB_SUFFIX="${TINFO_NAME}${LIB_SUFFIX}"
+ fi
+
+ TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+ TEST_DEP2="${LIB_2ND}/${LIB_PREFIX}${TINFO_DEP_SUFFIX}"
+ if test "$DFT_LWR_MODEL" = "libtool"; then
+ TEST_ARGS="${TEST_DEPS}"
+ TEST_ARG2="${TEST_DEP2}"
+ TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+ else
+ TEST_ARGS="-l${TINFO_ARG_SUFFIX}"
+ TEST_ARG2="-l${TINFO_ARG_SUFFIX}"
+ TINFO_ARGS="-L${LIB_DIR} $TEST_ARGS"
+ SHLIB_LIST="$SHLIB_LIST -l${TINFO_LIB_SUFFIX}"
+ fi
+else
+ TINFO_ARGS="-L${LIB_DIR} -l${LIB_NAME}${DFT_ARG_SUFFIX}"
fi
+AC_SUBST(TINFO_ARG_SUFFIX)
+AC_SUBST(TINFO_DEP_SUFFIX)
+AC_SUBST(TINFO_LIB_SUFFIX)
+AC_SUBST(TINFO_ARGS)
+
+# needed for Ada95
+TINFO_ARGS2=`echo "$TINFO_ARGS" | sed -e 's,-L\.\./,-L../../,'`
+AC_SUBST(TINFO_ARGS2)
AC_MSG_CHECKING(where we will install curses.h)
test "$with_overwrite" = no && \
fi
fi
-AC_SUBST(EXTRA_LIBS)
AC_SUBST(TINFO_LIST)
AC_SUBST(SHLIB_LIST)
-### Set up low-level terminfo dependencies for makefiles. Note that we
-### could override this.
-if test "$with_termlib" = yes ; then
- TEST_DEPS="${LIB_DIR}/${LIB_PREFIX}${TINFO_NAME}${DFT_DEP_SUFFIX}"
- if test "$DFT_LWR_MODEL" = "libtool"; then
- TEST_ARGS="${TEST_DEPS}"
- else
- TEST_ARGS="-l${TINFO_NAME}${DFT_ARG_SUFFIX}"
- fi
-fi
-PROG_DEPS="$TEST_DEPS"
-PROG_ARGS="$TEST_ARGS"
-
### predefined stuff for the test programs
AC_DEFINE(HAVE_SLK_COLOR)
AWK="$AWK"
CF_LIST_MODELS="$cf_list_models"
+DFT_ARG_SUFFIX="$DFT_ARG_SUFFIX"
DFT_LWR_MODEL="$DFT_LWR_MODEL"
LDCONFIG="$LDCONFIG"
LIB_NAME="$LIB_NAME"
NCURSES_OSPEED="$NCURSES_OSPEED"
SRC_SUBDIRS="$SRC_SUBDIRS"
TERMINFO="$TERMINFO"
+TINFO_ARG_SUFFIX="$TINFO_ARG_SUFFIX"
+TINFO_LIB_SUFFIX="$TINFO_LIB_SUFFIX"
TINFO_NAME="$TINFO_NAME"
WITH_CURSES_H="$with_curses_h"
WITH_ECHO="$with_echo"
WITH_OVERWRITE="$with_overwrite"
cf_cv_abi_version="$cf_cv_abi_version"
cf_cv_do_symlinks="$cf_cv_do_symlinks"
+cf_cv_enable_lp64="$cf_cv_enable_lp64"
+cf_cv_prog_CC_c_o=$cf_cv_prog_CC_c_o
+cf_cv_prog_CXX_c_o=$cf_cv_prog_CXX_c_o
cf_cv_rel_version="$cf_cv_rel_version"
cf_cv_rm_so_locs="$cf_cv_rm_so_locs"
cf_cv_shlib_version="$cf_cv_shlib_version"
-# $Id: dist.mk,v 1.402 2004/02/08 20:56:43 tom Exp $
+# $Id: dist.mk,v 1.498 2005/10/09 14:41:57 tom Exp $
# Makefile for creating ncurses distributions.
#
# This only needs to be used directly as a makefile by developers, but
# These define the major/minor/patch versions of ncurses.
NCURSES_MAJOR = 5
-NCURSES_MINOR = 4
-NCURSES_PATCH = 20040208
+NCURSES_MINOR = 5
+NCURSES_PATCH = 20051010
# We don't append the patch to the version, since this only applies to releases
VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR)
+# The most recent html files were generated with lynx 2.8.5, configured with
+# --without-manpage-renames
+# on Debian/testing.
DUMP = lynx -dump
DUMP2 = $(DUMP) -nolist
(cd ..; tar cvf ncurses-$(VERSION).tar `sed <ncurses-$(VERSION)/MANIFEST 's/^./ncurses-$(VERSION)/'`; gzip ncurses-$(VERSION).tar)
distclean:
- rm -f $(ALL) subst.tmp subst.sed MANIFEST.tmp
+ rm -f $(ALL) subst.tmp subst.sed
# Don't mess with announce.html.in unless you have lynx available!
doc/html/announce.html: announce.html.in
doc/hackguide.doc: doc/html/hackguide.html
$(DUMP2) doc/html/hackguide.html > $@
-MANPROG = tbl | nroff -man
+# This is the original command:
+# MANPROG = tbl | nroff -man
+#
+# This happens to work for groff 1.18.1 on Debian. At some point groff's
+# maintainer changed the line-length (we do not want/need that here).
+#
+# The distributed html files are formatted using
+# configure --without-manpage-renames
+MANPROG = tbl | nroff -mandoc -rLL=65n -rLT=71n -Tascii
-manhtml: MANIFEST
+manhtml:
@rm -f doc/html/man/*.html
@mkdir -p doc/html/man
@rm -f subst.tmp ;
-e 's/>/\>/g' \
>> doc/html/man/$$g ;\
echo '-->' >> doc/html/man/$$g ;\
- man/edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \
+ ./edit_man.sh normal editing /usr/man man $$f | $(MANPROG) | tr '\255' '-' | $(MAN2HTML) -title "$$T" | \
sed -f subst.sed |\
sed -e 's/"curses.3x.html"/"ncurses.3x.html"/g' \
>> doc/html/man/$$g ;\
done
@rm -f subst.sed
- @sed -e "\%./doc/html/man/%d" < MANIFEST > MANIFEST.tmp
- @find ./doc/html/man -type f -print >> MANIFEST.tmp
- @chmod u+w MANIFEST
- @misc/csort -u < MANIFEST.tmp > MANIFEST
- @rm -f MANIFEST.tmp
#
# Please note that this target can only be properly built if the build of the
# Ada95 subdir has been done. The reason is, that the gnathtml tool uses the
# .ali files generated by the Ada95 compiler during the build process. These
# .ali files contain cross referencing information required by gnathtml.
-adahtml: MANIFEST
+adahtml:
if [ ! -z "$(GNATHTML)" ]; then \
(cd ./Ada95/gen ; make html) ;\
- sed -e "\%./doc/html/ada/%d" < MANIFEST > MANIFEST.tmp ;\
- find ./doc/html/ada -type f -print >> MANIFEST.tmp ;\
- misc/csort -u < MANIFEST.tmp > MANIFEST ;\
- rm -f MANIFEST.tmp ;\
fi
-# Prepare distribution for version control
-vcprepare:
- find . -type d -exec mkdir {}/RCS \;
-
-# Write-lock almost all files not under version control.
-ADA_EXCEPTIONS=$(shell eval 'a="\\\\\|";for x in Ada95/gen/terminal*.m4; do echo -n $${a}Ada95/ada_include/`basename $${x} .m4`; done')
-EXCEPTIONS = 'announce.html$\\|ANNOUNCE\\|misc/.*\\.doc\\|man/terminfo.5\\|lib_gen.c'$(ADA_EXCEPTIONS)
-writelock:
- for x in `grep -v $(EXCEPTIONS) MANIFEST`; do if [ ! -f `dirname $$x`/RCS/`basename $$x`,v ]; then chmod a-w $${x}; fi; done
-
# This only works on a clean source tree, of course.
MANIFEST:
-rm -f $@
-
A Hacker's Guide to NCURSES
Contents
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta name="generator" content=
+"HTML Tidy for Linux/x86 (vers 1st December 2004), see www.w3.org">
+<title>NCURSES Programming HOWTO</title>
+<meta name="GENERATOR" content=
+"Modular DocBook HTML Stylesheet Version 1.7">
+</head>
+<body class="ARTICLE" bgcolor="#FFFFFF" text="#000000" link=
+"#0000FF" vlink="#840084" alink="#0000FF">
+<div class="ARTICLE">
+<div class="TITLEPAGE">
+<h1 class="TITLE"><a name="AEN2" id="AEN2">NCURSES Programming
+HOWTO</a></h1>
+<h3 class="AUTHOR"><a name="AEN4" id="AEN4">Pradeep Padala</a></h3>
+<div class="AFFILIATION">
+<div class="ADDRESS">
+<p class="ADDRESS"><code class="EMAIL"><<a href=
+"mailto:ppadala@gmail.com">ppadala@gmail.com</a>></code></p>
+</div>
+</div>
+<p class="PUBDATE">v1.9, 2005-06-20<br></p>
+<div class="REVHISTORY">
+<table width="100%" border="0">
+<tr>
+<th align="left" valign="top" colspan="3"><b>Revision
+History</b></th>
+</tr>
+<tr>
+<td align="left">Revision 1.9</td>
+<td align="left">2005-06-20</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">The license has been changed to the
+MIT-style license used by NCURSES. Note that the programs are also
+re-licensed under this.</td>
+</tr>
+<tr>
+<td align="left">Revision 1.8</td>
+<td align="left">2005-06-17</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Lots of updates. Added references and
+perl examples. Changes to examples. Many grammatical and stylistic
+changes to the content. Changes to NCURSES history.</td>
+</tr>
+<tr>
+<td align="left">Revision 1.7.1</td>
+<td align="left">2002-06-25</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Added a README file for building and
+instructions for building from source.</td>
+</tr>
+<tr>
+<td align="left">Revision 1.7</td>
+<td align="left">2002-06-25</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Added "Other formats" section and made
+a lot of fancy changes to the programs. Inlining of programs is
+gone.</td>
+</tr>
+<tr>
+<td align="left">Revision 1.6.1</td>
+<td align="left">2002-02-24</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Removed the old Changelog section,
+cleaned the makefiles</td>
+</tr>
+<tr>
+<td align="left">Revision 1.6</td>
+<td align="left">2002-02-16</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Corrected a lot of spelling mistakes,
+added ACS variables section</td>
+</tr>
+<tr>
+<td align="left">Revision 1.5</td>
+<td align="left">2002-01-05</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Changed structure to present proper
+TOC</td>
+</tr>
+<tr>
+<td align="left">Revision 1.3.1</td>
+<td align="left">2001-07-26</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Corrected maintainers paragraph,
+Corrected stable release number</td>
+</tr>
+<tr>
+<td align="left">Revision 1.3</td>
+<td align="left">2001-07-24</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Added copyright notices to main
+document (LDP license) and programs (GPL), Corrected
+printw_example.</td>
+</tr>
+<tr>
+<td align="left">Revision 1.2</td>
+<td align="left">2001-06-05</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Incorporated ravi's changes. Mainly to
+introduction, menu, form, justforfun sections</td>
+</tr>
+<tr>
+<td align="left">Revision 1.1</td>
+<td align="left">2001-05-22</td>
+<td align="left">Revised by: ppadala</td>
+</tr>
+<tr>
+<td align="left" colspan="3">Added "a word about window" section,
+Added scanw_example.</td>
+</tr>
+</table>
+</div>
+<div>
+<div class="ABSTRACT"><a name="AEN67" id="AEN67"></a>
+<p><em>This document is intended to be an "All in One" guide for
+programming with ncurses and its sister libraries. We graduate from
+a simple "Hello World" program to more complex form manipulation.
+No prior experience in ncurses is assumed. Send comments to
+<a href="mailto:ppadala@gmail.com" target="_top">this
+address</a></em></p>
+</div>
+</div>
+<hr></div>
+<div class="TOC">
+<dl>
+<dt><b>Table of Contents</b></dt>
+<dt>1. <a href="#INTRO">Introduction</a></dt>
+<dd>
+<dl>
+<dt>1.1. <a href="#WHATIS">What is NCURSES?</a></dt>
+<dt>1.2. <a href="#WHATCANWEDO">What we can do with
+NCURSES</a></dt>
+<dt>1.3. <a href="#WHERETOGETIT">Where to get it</a></dt>
+<dt>1.4. <a href="#PURPOSE">Purpose/Scope of the document</a></dt>
+<dt>1.5. <a href="#ABOUTPROGRAMS">About the Programs</a></dt>
+<dt>1.6. <a href="#OTHERFORMATS">Other Formats of the
+document</a></dt>
+<dt>1.7. <a href="#CREDITS">Credits</a></dt>
+<dt>1.8. <a href="#WISHLIST">Wish List</a></dt>
+<dt>1.9. <a href="#COPYRIGHT">Copyright</a></dt>
+</dl>
+</dd>
+<dt>2. <a href="#HELLOWORLD">Hello World !!!</a></dt>
+<dd>
+<dl>
+<dt>2.1. <a href="#COMPILECURSES">Compiling With the NCURSES
+Library</a></dt>
+<dt>2.2. <a href="#DISSECTION">Dissection</a></dt>
+</dl>
+</dd>
+<dt>3. <a href="#GORY">The Gory Details</a></dt>
+<dt>4. <a href="#INIT">Initialization</a></dt>
+<dd>
+<dl>
+<dt>4.1. <a href="#ABOUTINIT">Initialization functions</a></dt>
+<dt>4.2. <a href="#RAWCBREAK">raw() and cbreak()</a></dt>
+<dt>4.3. <a href="#ECHONOECHO">echo() and noecho()</a></dt>
+<dt>4.4. <a href="#KEYPAD">keypad()</a></dt>
+<dt>4.5. <a href="#HALFDELAY">halfdelay()</a></dt>
+<dt>4.6. <a href="#MISCINIT">Miscellaneous Initialization
+functions</a></dt>
+<dt>4.7. <a href="#INITEX">An Example</a></dt>
+</dl>
+</dd>
+<dt>5. <a href="#AWORDWINDOWS">A Word about Windows</a></dt>
+<dt>6. <a href="#PRINTW">Output functions</a></dt>
+<dd>
+<dl>
+<dt>6.1. <a href="#ADDCHCLASS">addch() class of functions</a></dt>
+<dt>6.2. <a href="#AEN298">mvaddch(), waddch() and
+mvwaddch()</a></dt>
+<dt>6.3. <a href="#PRINTWCLASS">printw() class of
+functions</a></dt>
+<dt>6.4. <a href="#ADDSTRCLASS">addstr() class of
+functions</a></dt>
+<dt>6.5. <a href="#ACAUTION">A word of caution</a></dt>
+</dl>
+</dd>
+<dt>7. <a href="#SCANW">Input functions</a></dt>
+<dd>
+<dl>
+<dt>7.1. <a href="#GETCHCLASS">getch() class of functions</a></dt>
+<dt>7.2. <a href="#SCANWCLASS">scanw() class of functions</a></dt>
+<dt>7.3. <a href="#GETSTRCLASS">getstr() class of
+functions</a></dt>
+<dt>7.4. <a href="#GETSTREX">Some examples</a></dt>
+</dl>
+</dd>
+<dt>8. <a href="#ATTRIB">Attributes</a></dt>
+<dd>
+<dl>
+<dt>8.1. <a href="#ATTRIBDETAILS">The details</a></dt>
+<dt>8.2. <a href="#ATTRONVSATTRSET">attron() vs attrset()</a></dt>
+<dt>8.3. <a href="#ATTR_GET">attr_get()</a></dt>
+<dt>8.4. <a href="#ATTR_FUNCS">attr_ functions</a></dt>
+<dt>8.5. <a href="#WATTRFUNCS">wattr functions</a></dt>
+<dt>8.6. <a href="#CHGAT">chgat() functions</a></dt>
+</dl>
+</dd>
+<dt>9. <a href="#WINDOWS">Windows</a></dt>
+<dd>
+<dl>
+<dt>9.1. <a href="#WINDOWBASICS">The basics</a></dt>
+<dt>9.2. <a href="#LETBEWINDOW">Let there be a Window !!!</a></dt>
+<dt>9.3. <a href="#BORDEREXEXPL">Explanation</a></dt>
+<dt>9.4. <a href="#OTHERSTUFF">The other stuff in the
+example</a></dt>
+<dt>9.5. <a href="#OTHERBORDERFUNCS">Other Border
+functions</a></dt>
+</dl>
+</dd>
+<dt>10. <a href="#COLOR">Colors</a></dt>
+<dd>
+<dl>
+<dt>10.1. <a href="#COLORBASICS">The basics</a></dt>
+<dt>10.2. <a href="#CHANGECOLORDEFS">Changing Color
+Definitions</a></dt>
+<dt>10.3. <a href="#COLORCONTENT">Color Content</a></dt>
+</dl>
+</dd>
+<dt>11. <a href="#KEYS">Interfacing with the key board</a></dt>
+<dd>
+<dl>
+<dt>11.1. <a href="#KEYSBASICS">The Basics</a></dt>
+<dt>11.2. <a href="#SIMPLEKEYEX">A Simple Key Usage
+example</a></dt>
+</dl>
+</dd>
+<dt>12. <a href="#MOUSE">Interfacing with the mouse</a></dt>
+<dd>
+<dl>
+<dt>12.1. <a href="#MOUSEBASICS">The Basics</a></dt>
+<dt>12.2. <a href="#GETTINGEVENTS">Getting the events</a></dt>
+<dt>12.3. <a href="#MOUSETOGETHER">Putting it all Together</a></dt>
+<dt>12.4. <a href="#MISCMOUSEFUNCS">Miscellaneous
+Functions</a></dt>
+</dl>
+</dd>
+<dt>13. <a href="#SCREEN">Screen Manipulation</a></dt>
+<dd>
+<dl>
+<dt>13.1. <a href="#GETYX">getyx() functions</a></dt>
+<dt>13.2. <a href="#SCREENDUMP">Screen Dumping</a></dt>
+<dt>13.3. <a href="#WINDOWDUMP">Window Dumping</a></dt>
+</dl>
+</dd>
+<dt>14. <a href="#MISC">Miscellaneous features</a></dt>
+<dd>
+<dl>
+<dt>14.1. <a href="#CURSSET">curs_set()</a></dt>
+<dt>14.2. <a href="#TEMPLEAVE">Temporarily Leaving Curses
+mode</a></dt>
+<dt>14.3. <a href="#ACSVARS">ACS_ variables</a></dt>
+</dl>
+</dd>
+<dt>15. <a href="#OTHERLIB">Other libraries</a></dt>
+<dt>16. <a href="#PANELS">Panel Library</a></dt>
+<dd>
+<dl>
+<dt>16.1. <a href="#PANELBASICS">The Basics</a></dt>
+<dt>16.2. <a href="#COMPILEPANELS">Compiling With the Panels
+Library</a></dt>
+<dt>16.3. <a href="#PANELBROWSING">Panel Window Browsing</a></dt>
+<dt>16.4. <a href="#USERPTRUSING">Using User Pointers</a></dt>
+<dt>16.5. <a href="#PANELMOVERESIZE">Moving and Resizing
+Panels</a></dt>
+<dt>16.6. <a href="#PANELSHOWHIDE">Hiding and Showing
+Panels</a></dt>
+<dt>16.7. <a href="#PANELABOVE">panel_above() and panel_below()
+Functions</a></dt>
+</dl>
+</dd>
+<dt>17. <a href="#MENUS">Menus Library</a></dt>
+<dd>
+<dl>
+<dt>17.1. <a href="#MENUBASICS">The Basics</a></dt>
+<dt>17.2. <a href="#COMPILEMENUS">Compiling With the Menu
+Library</a></dt>
+<dt>17.3. <a href="#MENUDRIVER">Menu Driver: The work horse of the
+menu system</a></dt>
+<dt>17.4. <a href="#MENUWINDOWS">Menu Windows</a></dt>
+<dt>17.5. <a href="#SCROLLMENUS">Scrolling Menus</a></dt>
+<dt>17.6. <a href="#MULTICOLUMN">Multi Columnar Menus</a></dt>
+<dt>17.7. <a href="#MULTIVALUEMENUS">Multi Valued Menus</a></dt>
+<dt>17.8. <a href="#MENUOPT">Menu Options</a></dt>
+<dt>17.9. <a href="#MENUUSERPTR">The useful User Pointer</a></dt>
+</dl>
+</dd>
+<dt>18. <a href="#FORMS">Forms Library</a></dt>
+<dd>
+<dl>
+<dt>18.1. <a href="#FORMBASICS">The Basics</a></dt>
+<dt>18.2. <a href="#COMPILEFORMS">Compiling With the Forms
+Library</a></dt>
+<dt>18.3. <a href="#PLAYFIELDS">Playing with Fields</a></dt>
+<dt>18.4. <a href="#FORMWINDOWS">Form Windows</a></dt>
+<dt>18.5. <a href="#FILEDVALIDATE">Field Validation</a></dt>
+<dt>18.6. <a href="#FORMDRIVER">Form Driver: The work horse of the
+forms system</a></dt>
+</dl>
+</dd>
+<dt>19. <a href="#TOOLS">Tools and Widget Libraries</a></dt>
+<dd>
+<dl>
+<dt>19.1. <a href="#CDK">CDK (Curses Development Kit)</a></dt>
+<dt>19.2. <a href="#DIALOG">The dialog</a></dt>
+<dt>19.3. <a href="#PERLCURSES">Perl Curses Modules CURSES::FORM
+and CURSES::WIDGETS</a></dt>
+</dl>
+</dd>
+<dt>20. <a href="#JUSTFORFUN">Just For Fun !!!</a></dt>
+<dd>
+<dl>
+<dt>20.1. <a href="#GAMEOFLIFE">The Game of Life</a></dt>
+<dt>20.2. <a href="#MAGIC">Magic Square</a></dt>
+<dt>20.3. <a href="#HANOI">Towers of Hanoi</a></dt>
+<dt>20.4. <a href="#QUEENS">Queens Puzzle</a></dt>
+<dt>20.5. <a href="#SHUFFLE">Shuffle</a></dt>
+<dt>20.6. <a href="#TT">Typing Tutor</a></dt>
+</dl>
+</dd>
+<dt>21. <a href="#REF">References</a></dt>
+</dl>
+</div>
+<div class="SECT1">
+<h2 class="SECT1"><a name="INTRO" id="INTRO">1.
+Introduction</a></h2>
+<p>In the olden days of teletype terminals, terminals were away
+from computers and were connected to them through serial cables.
+The terminals could be configured by sending a series of bytes. All
+the capabilities (such as moving the cursor to a new location,
+erasing part of the screen, scrolling the screen, changing modes
+etc.) of terminals could be accessed through these series of bytes.
+These control seeuqnces are usually called escape sequences,
+because they start with an escape(0x1B) character. Even today, with
+proper emulation, we can send escape sequences to the emulator and
+achieve the same effect on a terminal window.</p>
+<p>Suppose you wanted to print a line in color. Try typing this on
+your console.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000">echo "^[[0;31;40mIn Color"</font>
+</pre></td>
+</tr>
+</table>
+<p>The first character is an escape character, which looks like two
+characters ^ and [. To be able to print it, you have to press
+CTRL+V and then the ESC key. All the others are normal printable
+characters. You should be able to see the string "In Color" in red.
+It stays that way and to revert back to the original mode type
+this.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000">echo "^[[0;37;40m"</font>
+</pre></td>
+</tr>
+</table>
+<p>Now, what do these magic characters mean? Difficult to
+comprehend? They might even be different for different terminals.
+So the designers of UNIX invented a mechanism named <var class=
+"LITERAL">termcap</var>. It is a file that lists all the
+capabilities of a particular terminal, along with the escape
+sequences needed to achieve a particular effect. In the later
+years, this was replaced by <var class="LITERAL">terminfo</var>.
+Without delving too much into details, this mechanism allows
+application programs to query the terminfo database and obtain the
+control characters to be sent to a terminal or terminal
+emulator.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="WHATIS" id="WHATIS">1.1. What is
+NCURSES?</a></h3>
+<p>You might be wondering, what the import of all this technical
+gibberish is. In the above scenario, every application program is
+supposed to query the terminfo and perform the necessary stuff
+(sending control characters etc.). It soon became difficult to
+manage this complexity and this gave birth to 'CURSES'. Curses is a
+pun on the name "cursor optimization". The Curses library forms a
+wrapper over working with raw terminal codes, and provides highly
+flexible and efficient API (Application Programming Interface). It
+provides functions to move the cursor, create windows, produce
+colors, play with mouse etc. The application programs need not
+worry about the underlying terminal capabilities.</p>
+<p>So what is NCURSES? NCURSES is a clone of the original System V
+Release 4.0 (SVr4) curses. It is a freely distributable library,
+fully compatible with older version of curses. In short, it is a
+library of functions that manages an application's display on
+character-cell terminals. In the remainder of the document, the
+terms curses and ncurses are used interchangeably.</p>
+<p>A detailed history of NCURSES can be found in the NEWS file from
+the source distribution. The current package is maintained by
+<a href="mailto:dickey@his.com" target="_top">Thomas Dickey</a>.
+You can contact the maintainers at <a href=
+"mailto:bug-ncurses@gnu.org" target=
+"_top">bug-ncurses@gnu.org</a>.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="WHATCANWEDO" id="WHATCANWEDO">1.2. What
+we can do with NCURSES</a></h3>
+<p>NCURSES not only creates a wrapper over terminal capabilities,
+but also gives a robust framework to create nice looking UI (User
+Interface)s in text mode. It provides functions to create windows
+etc. Its sister libraries panel, menu and form provide an extension
+to the basic curses library. These libraries usually come along
+with curses. One can create applications that contain multiple
+windows, menus, panels and forms. Windows can be managed
+independently, can provide 'scrollability' and even can be
+hidden.</p>
+<p>Menus provide the user with an easy command selection option.
+Forms allow the creation of easy-to-use data entry and display
+windows. Panels extend the capabilities of ncurses to deal with
+overlapping and stacked windows.</p>
+<p>These are just some of the basic things we can do with ncurses.
+As we move along, We will see all the capabilities of these
+libraries.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="WHERETOGETIT" id="WHERETOGETIT">1.3.
+Where to get it</a></h3>
+<p>All right, now that you know what you can do with ncurses, you
+must be rearing to get started. NCURSES is usually shipped with
+your installation. In case you don't have the library or want to
+compile it on your own, read on.</p>
+<p><em>Compiling the package</em></p>
+<p>NCURSES can be obtained from <a href=
+"ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz" target=
+"_top">ftp://ftp.gnu.org/pub/gnu/ncurses/ncurses.tar.gz</a> or any
+of the ftp sites mentioned in <a href=
+"http://www.gnu.org/order/ftp.html" target=
+"_top">http://www.gnu.org/order/ftp.html</a>.</p>
+<p>Read the README and INSTALL files for details on to how to
+install it. It usually involves the following operations.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> tar zxvf ncurses<version>.tar.gz # unzip and untar the archive
+ cd ncurses<version> # cd to the directory
+ ./configure # configure the build according to your
+ # environment
+ make # make it
+ su root # become root
+ make install # install it</font>
+</pre></td>
+</tr>
+</table>
+<p><em>Using the RPM</em></p>
+<p>NCURSES RPM can be found and downloaded from <a href=
+"http://rpmfind.net" target="_top">http://rpmfind.net</a> . The RPM
+can be installed with the following command after becoming
+root.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> rpm -i <downloaded rpm></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PURPOSE" id="PURPOSE">1.4. Purpose/Scope
+of the document</a></h3>
+<p>This document is intended to be a "All in One" guide for
+programming with ncurses and its sister libraries. We graduate from
+a simple "Hello World" program to more complex form manipulation.
+No prior experience in ncurses is assumed. The writing is informal,
+but a lot of detail is provided for each of the examples.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ABOUTPROGRAMS" id="ABOUTPROGRAMS">1.5.
+About the Programs</a></h3>
+<p>All the programs in the document are available in zipped form
+<a href=
+"http://www.tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs.tar.gz"
+target="_top">here</a>. Unzip and untar it. The directory structure
+looks like this.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000">ncurses
+ |
+ |----> JustForFun -- just for fun programs
+ |----> basics -- basic programs
+ |----> demo -- output files go into this directory after make
+ | |
+ | |----> exe -- exe files of all example programs
+ |----> forms -- programs related to form library
+ |----> menus -- programs related to menus library
+ |----> panels -- programs related to panels library
+ |----> perl -- perl equivalents of the examples (contributed
+ | by Anuradha Ratnaweera)
+ |----> Makefile -- the top level Makefile
+ |----> README -- the top level README file. contains instructions
+ |----> COPYING -- copyright notice</font>
+</pre></td>
+</tr>
+</table>
+<p>The individual directories contain the following files.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000">Description of files in each directory
+--------------------------------------
+JustForFun
+ |
+ |----> hanoi.c -- The Towers of Hanoi Solver
+ |----> life.c -- The Game of Life demo
+ |----> magic.c -- An Odd Order Magic Square builder
+ |----> queens.c -- The famous N-Queens Solver
+ |----> shuffle.c -- A fun game, if you have time to kill
+ |----> tt.c -- A very trivial typing tutor
+
+ basics
+ |
+ |----> acs_vars.c -- ACS_ variables example
+ |----> hello_world.c -- Simple "Hello World" Program
+ |----> init_func_example.c -- Initialization functions example
+ |----> key_code.c -- Shows the scan code of the key pressed
+ |----> mouse_menu.c -- A menu accessible by mouse
+ |----> other_border.c -- Shows usage of other border functions apa
+ | -- rt from box()
+ |----> printw_example.c -- A very simple printw() example
+ |----> scanw_example.c -- A very simple getstr() example
+ |----> simple_attr.c -- A program that can print a c file with
+ | -- comments in attribute
+ |----> simple_color.c -- A simple example demonstrating colors
+ |----> simple_key.c -- A menu accessible with keyboard UP, DOWN
+ | -- arrows
+ |----> temp_leave.c -- Demonstrates temporarily leaving curses mode
+ |----> win_border.c -- Shows Creation of windows and borders
+ |----> with_chgat.c -- chgat() usage example
+
+ forms
+ |
+ |----> form_attrib.c -- Usage of field attributes
+ |----> form_options.c -- Usage of field options
+ |----> form_simple.c -- A simple form example
+ |----> form_win.c -- Demo of windows associated with forms
+
+ menus
+ |
+ |----> menu_attrib.c -- Usage of menu attributes
+ |----> menu_item_data.c -- Usage of item_name() etc.. functions
+ |----> menu_multi_column.c -- Creates multi columnar menus
+ |----> menu_scroll.c -- Demonstrates scrolling capability of menus
+ |----> menu_simple.c -- A simple menu accessed by arrow keys
+ |----> menu_toggle.c -- Creates multi valued menus and explains
+ | -- REQ_TOGGLE_ITEM
+ |----> menu_userptr.c -- Usage of user pointer
+ |----> menu_win.c -- Demo of windows associated with menus
+
+ panels
+ |
+ |----> panel_browse.c -- Panel browsing through tab. Usage of user
+ | -- pointer
+ |----> panel_hide.c -- Hiding and Un hiding of panels
+ |----> panel_resize.c -- Moving and resizing of panels
+ |----> panel_simple.c -- A simple panel example
+
+ perl
+ |----> 01-10.pl -- Perl equivalents of first ten example programs</font>
+</pre></td>
+</tr>
+</table>
+<p>There is a top level Makefile included in the main directory. It
+builds all the files and puts the ready-to-use exes in demo/exe
+directory. You can also do selective make by going into the
+corresponding directory. Each directory contains a README file
+explaining the purpose of each c file in the directory.</p>
+<p>For every example, I have included path name for the file
+relative to the examples directory.</p>
+<p>If you prefer browsing individual programs, point your browser
+to <a href=
+"http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/"
+target=
+"_top">http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ncurses_programs/</a></p>
+<p>All the programs are released under the same license that is
+used by ncurses (MIT-style). This gives you the ability to do
+pretty much anything other than claiming them as yours. Feel free
+to use them in your programs as appropriate.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="OTHERFORMATS" id="OTHERFORMATS">1.6.
+Other Formats of the document</a></h3>
+<p>This howto is also availabe in various other formats on the
+tldp.org site. Here are the links to other formats of this
+document.</p>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="LISTFORMATS" id="LISTFORMATS">1.6.1.
+Readily available formats from tldp.org</a></h4>
+<ul>
+<li>
+<p><a href=
+"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/pdf/NCURSES-Programming-HOWTO.pdf"
+target="_top">Acrobat PDF Format</a></p>
+</li>
+<li>
+<p><a href=
+"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/ps/NCURSES-Programming-HOWTO.ps.gz"
+target="_top">PostScript Format</a></p>
+</li>
+<li>
+<p><a href=
+"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html/NCURSES-Programming-HOWTO-html.tar.gz"
+target="_top">In Multiple HTML pages</a></p>
+</li>
+<li>
+<p><a href=
+"http://www.ibiblio.org/pub/Linux/docs/HOWTO/other-formats/html_single/NCURSES-Programming-HOWTO.html"
+target="_top">In One big HTML format</a></p>
+</li>
+</ul>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="BUILDSOURCE" id="BUILDSOURCE">1.6.2.
+Building from source</a></h4>
+<p>If above links are broken or if you want to experiment with sgml
+read on.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> Get both the source and the tar,gzipped programs, available at
+ http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
+ NCURSES-HOWTO/NCURSES-Programming-HOWTO.sgml
+ http://cvsview.tldp.org/index.cgi/LDP/howto/docbook/
+ NCURSES-HOWTO/ncurses_programs.tar.gz
+
+ Unzip ncurses_programs.tar.gz with
+ tar zxvf ncurses_programs.tar.gz
+
+ Use jade to create various formats. For example if you just want to create
+ the multiple html files, you would use
+ jade -t sgml -i html -d <path to docbook html stylesheet>
+ NCURSES-Programming-HOWTO.sgml
+ to get pdf, first create a single html file of the HOWTO with
+ jade -t sgml -i html -d <path to docbook html stylesheet> -V nochunks
+ NCURSES-Programming-HOWTO.sgml > NCURSES-ONE-BIG-FILE.html
+ then use htmldoc to get pdf file with
+ htmldoc --size universal -t pdf --firstpage p1 -f <output file name.pdf>
+ NCURSES-ONE-BIG-FILE.html
+ for ps, you would use
+ htmldoc --size universal -t ps --firstpage p1 -f <output file name.ps>
+ NCURSES-ONE-BIG-FILE.html</font>
+</pre></td>
+</tr>
+</table>
+<p>See <a href="http://www.tldp.org/LDP/LDP-Author-Guide/" target=
+"_top">LDP Author guide</a> for more details. If all else failes,
+mail me at <a href="ppadala@gmail.com" target=
+"_top">ppadala@gmail.com</a></p>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="CREDITS" id="CREDITS">1.7.
+Credits</a></h3>
+<p>I thank <a href="mailto:sharath_1@usa.net" target=
+"_top">Sharath</a> and Emre Akbas for helping me with few sections.
+The introduction was initially written by sharath. I rewrote it
+with few excerpts taken from his initial work. Emre helped in
+writing printw and scanw sections.</p>
+<p>Perl equivalents of the example programs are contributed by
+<a href="mailto:Aratnaweera@virtusa.com" target="_top">Anuradha
+Ratnaweera</a>.</p>
+<p>Then comes <a href="mailto:parimi@ece.arizona.edu" target=
+"_top">Ravi Parimi</a>, my dearest friend, who has been on this
+project before even one line was written. He constantly bombarded
+me with suggestions and patiently reviewed the whole text. He also
+checked each program on Linux and Solaris.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="WISHLIST" id="WISHLIST">1.8. Wish
+List</a></h3>
+<p>This is the wish list, in the order of priority. If you have a
+wish or you want to work on completing the wish, mail <a href=
+"mailto:ppadala@gmail.com" target="_top">me</a>.</p>
+<ul>
+<li>
+<p>Add examples to last parts of forms section.</p>
+</li>
+<li>
+<p>Prepare a Demo showing all the programs and allow the user to
+browse through description of each program. Let the user compile
+and see the program in action. A dialog based interface is
+preferred.</p>
+</li>
+<li>
+<p>Add debug info. _tracef, _tracemouse stuff.</p>
+</li>
+<li>
+<p>Accessing termcap, terminfo using functions provided by ncurses
+package.</p>
+</li>
+<li>
+<p>Working on two terminals simultaneously.</p>
+</li>
+<li>
+<p>Add more stuff to miscellaneous section.</p>
+</li>
+</ul>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="COPYRIGHT" id="COPYRIGHT">1.9.
+Copyright</a></h3>
+<p>Copyright © 2001 by Pradeep Padala.</p>
+<p>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:</p>
+<p>The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.</p>
+<p>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.</p>
+<p>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.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="HELLOWORLD" id="HELLOWORLD">2. Hello
+World !!!</a></h2>
+<p>Welcome to the world of curses. Before we plunge into the
+library and look into its various features, let's write a simple
+program and say hello to the world.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="COMPILECURSES" id="COMPILECURSES">2.1.
+Compiling With the NCURSES Library</a></h3>
+<p>To use ncurses library functions, you have to include ncurses.h
+in your programs. To link the program with ncurses the flag
+-lncurses should be added.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> #include <ncurses.h>
+ .
+ .
+ .
+
+ compile and link: gcc <program file> -lncurses</font>
+</pre></td>
+</tr>
+</table>
+<div class="EXAMPLE"><a name="BHW" id="BHW"></a>
+<p><b>Example 1. The Hello World !!! Program</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+int main()
+{
+ initscr(); /* Start curses mode */
+ printw("Hello World !!!"); /* Print Hello World */
+ refresh(); /* Print it on to the real screen */
+ getch(); /* Wait for user input */
+ endwin(); /* End curses mode */
+
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="DISSECTION" id="DISSECTION">2.2.
+Dissection</a></h3>
+<p>The above program prints "Hello World !!!" to the screen and
+exits. This program shows how to initialize curses and do screen
+manipulation and end curses mode. Let's dissect it line by
+line.</p>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="ABOUT-INITSCR" id="ABOUT-INITSCR">2.2.1.
+About initscr()</a></h4>
+<p>The function initscr() initializes the terminal in curses mode.
+In some implementations, it clears the screen and presents a blank
+screen. To do any screen manipulation using curses package this has
+to be called first. This function initializes the curses system and
+allocates memory for our present window (called <var class=
+"LITERAL">stdscr</var>) and some other data-structures. Under
+extreme cases this function might fail due to insufficient memory
+to allocate memory for curses library's data structures.</p>
+<p>After this is done, we can do a variety of initializations to
+customize our curses settings. These details will be explained
+<a href="#INIT">later</a> .</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="MYST-REFRESH" id="MYST-REFRESH">2.2.2.
+The mysterious refresh()</a></h4>
+<p>The next line printw prints the string "Hello World !!!" on to
+the screen. This function is analogous to normal printf in all
+respects except that it prints the data on a window called stdscr
+at the current (y,x) co-ordinates. Since our present co-ordinates
+are at 0,0 the string is printed at the left hand corner of the
+window.</p>
+<p>This brings us to that mysterious refresh(). Well, when we
+called printw the data is actually written to an imaginary window,
+which is not updated on the screen yet. The job of printw is to
+update a few flags and data structures and write the data to a
+buffer corresponding to stdscr. In order to show it on the screen,
+we need to call refresh() and tell the curses system to dump the
+contents on the screen.</p>
+<p>The philosophy behind all this is to allow the programmer to do
+multiple updates on the imaginary screen or windows and do a
+refresh once all his screen update is done. refresh() checks the
+window and updates only the portion which has been changed. This
+improves performance and offers greater flexibility too. But, it is
+sometimes frustrating to beginners. A common mistake committed by
+beginners is to forget to call refresh() after they did some update
+through printw() class of functions. I still forget to add it
+sometimes :-)</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="ABOUT-ENDWIN" id="ABOUT-ENDWIN">2.2.3.
+About endwin()</a></h4>
+<p>And finally don't forget to end the curses mode. Otherwise your
+terminal might behave strangely after the program quits. endwin()
+frees the memory taken by curses sub-system and its data structures
+and puts the terminal in normal mode. This function must be called
+after you are done with the curses mode.</p>
+</div>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="GORY" id="GORY">3. The Gory
+Details</a></h2>
+<p>Now that we have seen how to write a simple curses program let's
+get into the details. There are many functions that help customize
+what you see on screen and many features which can be put to full
+use.</p>
+<p>Here we go...</p>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="INIT" id="INIT">4.
+Initialization</a></h2>
+<p>We now know that to initialize curses system the function
+initscr() has to be called. There are functions which can be called
+after this initialization to customize our curses session. We may
+ask the curses system to set the terminal in raw mode or initialize
+color or initialize the mouse etc.. Let's discuss some of the
+functions that are normally called immediately after initscr();</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ABOUTINIT" id="ABOUTINIT">4.1.
+Initialization functions</a></h3>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="RAWCBREAK" id="RAWCBREAK">4.2. raw() and
+cbreak()</a></h3>
+<p>Normally the terminal driver buffers the characters a user types
+until a new line or carriage return is encountered. But most
+programs require that the characters be available as soon as the
+user types them. The above two functions are used to disable line
+buffering. The difference between these two functions is in the way
+control characters like suspend (CTRL-Z), interrupt and quit
+(CTRL-C) are passed to the program. In the raw() mode these
+characters are directly passed to the program without generating a
+signal. In the <var class="LITERAL">cbreak()</var> mode these
+control characters are interpreted as any other character by the
+terminal driver. I personally prefer to use raw() as I can exercise
+greater control over what the user does.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ECHONOECHO" id="ECHONOECHO">4.3. echo()
+and noecho()</a></h3>
+<p>These functions control the echoing of characters typed by the
+user to the terminal. <var class="LITERAL">noecho()</var> switches
+off echoing. The reason you might want to do this is to gain more
+control over echoing or to suppress unnecessary echoing while
+taking input from the user through the getch() etc. functions. Most
+of the interactive programs call <var class=
+"LITERAL">noecho()</var> at initialization and do the echoing of
+characters in a controlled manner. It gives the programmer the
+flexibility of echoing characters at any place in the window
+without updating current (y,x) co-ordinates.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="KEYPAD" id="KEYPAD">4.4.
+keypad()</a></h3>
+<p>This is my favorite initialization function. It enables the
+reading of function keys like F1, F2, arrow keys etc. Almost every
+interactive program enables this, as arrow keys are a major part of
+any User Interface. Do <var class="LITERAL">keypad(stdscr,
+TRUE)</var> to enable this feature for the regular screen (stdscr).
+You will learn more about key management in later sections of this
+document.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="HALFDELAY" id="HALFDELAY">4.5.
+halfdelay()</a></h3>
+<p>This function, though not used very often, is a useful one at
+times. halfdelay()is called to enable the half-delay mode, which is
+similar to the cbreak() mode in that characters typed are
+immediately available to program. However, it waits for 'X' tenths
+of a second for input and then returns ERR, if no input is
+available. 'X' is the timeout value passed to the function
+halfdelay(). This function is useful when you want to ask the user
+for input, and if he doesn't respond with in certain time, we can
+do some thing else. One possible example is a timeout at the
+password prompt.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MISCINIT" id="MISCINIT">4.6.
+Miscellaneous Initialization functions</a></h3>
+<p>There are few more functions which are called at initialization
+to customize curses behavior. They are not used as extensively as
+those mentioned above. Some of them are explained where
+appropriate.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="INITEX" id="INITEX">4.7. An
+Example</a></h3>
+<p>Let's write a program which will clarify the usage of these
+functions.</p>
+<div class="EXAMPLE"><a name="BINFU" id="BINFU"></a>
+<p><b>Example 2. Initialization Function Usage example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+int main()
+{ int ch;
+
+ initscr(); /* Start curses mode */
+ raw(); /* Line buffering disabled */
+ keypad(stdscr, TRUE); /* We get F1, F2 etc.. */
+ noecho(); /* Don't echo() while we do getch */
+
+ printw("Type any character to see it in bold\n");
+ ch = getch(); /* If raw() hadn't been called
+ * we have to press enter before it
+ * gets to the program */
+ if(ch == KEY_F(1)) /* Without keypad enabled this will */
+ printw("F1 Key pressed");/* not get to us either */
+ /* Without noecho() some ugly escape
+ * charachters might have been printed
+ * on screen */
+ else
+ { printw("The pressed key is ");
+ attron(A_BOLD);
+ printw("%c", ch);
+ attroff(A_BOLD);
+ }
+ refresh(); /* Print it on to the real screen */
+ getch(); /* Wait for user input */
+ endwin(); /* End curses mode */
+
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>This program is self-explanatory. But I used functions which
+aren't explained yet. The function <var class=
+"LITERAL">getch()</var> is used to get a character from user. It is
+equivalent to normal <var class="LITERAL">getchar()</var> except
+that we can disable the line buffering to avoid <enter> after
+input. Look for more about <var class="LITERAL">getch()</var>and
+reading keys in the <a href="#KEYS">key management section</a> .
+The functions attron and attroff are used to switch some attributes
+on and off respectively. In the example I used them to print the
+character in bold. These functions are explained in detail
+later.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="AWORDWINDOWS" id="AWORDWINDOWS">5. A
+Word about Windows</a></h2>
+<p>Before we plunge into the myriad ncurses functions, let me clear
+few things about windows. Windows are explained in detail in
+following <a href="#WINDOWS">sections</a></p>
+<p>A Window is an imaginary screen defined by curses system. A
+window does not mean a bordered window which you usually see on
+Win9X platforms. When curses is initialized, it creates a default
+window named <var class="LITERAL">stdscr</var> which represents
+your 80x25 (or the size of window in which you are running) screen.
+If you are doing simple tasks like printing few strings, reading
+input etc., you can safely use this single window for all of your
+purposes. You can also create windows and call functions which
+explicitly work on the specified window.</p>
+<p>For example, if you call</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> printw("Hi There !!!");
+ refresh();</font>
+</pre></td>
+</tr>
+</table>
+<p>It prints the string on stdscr at the present cursor position.
+Similarly the call to refresh(), works on stdscr only.</p>
+<p>Say you have created <a href="#WINDOWS">windows</a> then you
+have to call a function with a 'w' added to the usual function.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> wprintw(win, "Hi There !!!");
+ wrefresh(win);</font>
+</pre></td>
+</tr>
+</table>
+<p>As you will see in the rest of the document, naming of functions
+follow the same convention. For each function there usually are
+three more functions.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> printw(string); /* Print on stdscr at present cursor position */
+ mvprintw(y, x, string);/* Move to (y, x) then print string */
+ wprintw(win, string); /* Print on window win at present cursor position */
+ /* in the window */
+ mvwprintw(win, y, x, string); /* Move to (y, x) relative to window */
+ /* co-ordinates and then print */</font>
+</pre></td>
+</tr>
+</table>
+<p>Usually the w-less functions are macros which expand to
+corresponding w-function with stdscr as the window parameter.</p>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="PRINTW" id="PRINTW">6. Output
+functions</a></h2>
+<p>I guess you can't wait any more to see some action. Back to our
+odyssey of curses functions. Now that curses is initialized, let's
+interact with world.</p>
+<p>There are three classes of functions which you can use to do
+output on screen.</p>
+<ol type="1">
+<li>
+<p>addch() class: Print single character with attributes</p>
+</li>
+<li>
+<p>printw() class: Print formatted output similar to printf()</p>
+</li>
+<li>
+<p>addstr() class: Print strings</p>
+</li>
+</ol>
+<p>These functions can be used interchangeably and it's a matter of
+style as to which class is used. Let's see each one in detail.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ADDCHCLASS" id="ADDCHCLASS">6.1. addch()
+class of functions</a></h3>
+<p>These functions put a single character into the current cursor
+location and advance the position of the cursor. You can give the
+character to be printed but they usually are used to print a
+character with some attributes. Attributes are explained in detail
+in later <a href="#ATTRIB">sections</a> of the document. If a
+character is associated with an attribute(bold, reverse video
+etc.), when curses prints the character, it is printed in that
+attribute.</p>
+<p>In order to combine a character with some attributes, you have
+two options:</p>
+<ul>
+<li>
+<p>By OR'ing a single character with the desired attribute macros.
+These attribute macros could be found in the header file
+<var class="LITERAL">ncurses.h</var>. For example, you want to
+print a character ch(of type char) bold and underlined, you would
+call addch() as below.</p>
+<table border="0" bgcolor="#E0E0E0" width="90%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> addch(ch | A_BOLD | A_UNDERLINE);</font>
+</pre></td>
+</tr>
+</table>
+</li>
+<li>
+<p>By using functions like <var class=
+"LITERAL">attrset(),attron(),attroff()</var>. These functions are
+explained in the <a href="#ATTRIB">Attributes</a> section. Briefly,
+they manipulate the current attributes of the given window. Once
+set, the character printed in the window are associated with the
+attributes until it is turned off.</p>
+</li>
+</ul>
+<p>Additionally, <var class="LITERAL">curses</var> provides some
+special characters for character-based graphics. You can draw
+tables, horizontal or vertical lines, etc. You can find all
+avaliable characters in the header file <var class=
+"LITERAL">ncurses.h</var>. Try looking for macros beginning with
+<var class="LITERAL">ACS_</var> in this file.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="AEN298" id="AEN298">6.2. mvaddch(),
+waddch() and mvwaddch()</a></h3>
+<p><var class="LITERAL">mvaddch()</var> is used to move the cursor
+to a given point, and then print. Thus, the calls:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> move(row,col); /* moves the cursor to row<em>th</em> row and col<em>th</em> column */
+ addch(ch);</font>
+</pre></td>
+</tr>
+</table>
+can be replaced by
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> mvaddch(row,col,ch);</font>
+</pre></td>
+</tr>
+</table>
+<p><var class="LITERAL">waddch()</var> is similar to <var class=
+"LITERAL">addch()</var>, except that it adds a character into the
+given window. (Note that <var class="LITERAL">addch()</var> adds a
+character into the window <var class="LITERAL">stdscr</var>.)</p>
+<p>In a similar fashion <var class="LITERAL">mvwaddch()</var>
+function is used to add a character into the given window at the
+given coordinates.</p>
+<p>Now, we are familiar with the basic output function <var class=
+"LITERAL">addch()</var>. But, if we want to print a string, it
+would be very annoying to print it character by character.
+Fortunately, <var class="LITERAL">ncurses</var> provides
+<var class="LITERAL">printf</var><em>-like</em> or <var class=
+"LITERAL">puts</var><em>-like</em> functions.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PRINTWCLASS" id="PRINTWCLASS">6.3.
+printw() class of functions</a></h3>
+<p>These functions are similar to <var class=
+"LITERAL">printf()</var> with the added capability of printing at
+any position on the screen.</p>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="PRINTWMVPRINTW" id=
+"PRINTWMVPRINTW">6.3.1. printw() and mvprintw</a></h4>
+<p>These two functions work much like <var class=
+"LITERAL">printf()</var>. <var class="LITERAL">mvprintw()</var> can
+be used to move the cursor to a position and then print. If you
+want to move the cursor first and then print using <var class=
+"LITERAL">printw()</var> function, use <var class=
+"LITERAL">move()</var> first and then use <var class=
+"LITERAL">printw()</var> though I see no point why one should avoid
+using <var class="LITERAL">mvprintw()</var>, you have the
+flexibility to manipulate.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="WPRINTWMVWPRINTW" id=
+"WPRINTWMVWPRINTW">6.3.2. wprintw() and mvwprintw</a></h4>
+<p>These two functions are similar to above two except that they
+print in the corresponding window given as argument.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="VWPRINTW" id="VWPRINTW">6.3.3.
+vwprintw()</a></h4>
+<p>This function is similar to <var class=
+"LITERAL">vprintf()</var>. This can be used when variable number of
+arguments are to be printed.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="SIMPLEPRINTWEX" id=
+"SIMPLEPRINTWEX">6.3.4. A Simple printw example</a></h4>
+<div class="EXAMPLE"><a name="BPREX" id="BPREX"></a>
+<p><b>Example 3. A Simple printw example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h> /* ncurses.h includes stdio.h */
+#include <string.h>
+
+int main()
+{
+ char mesg[]="Just a string"; /* message to be appeared on the screen */
+ int row,col; /* to store the number of rows and *
+ * the number of colums of the screen */
+ initscr(); /* start the curses mode */
+ getmaxyx(stdscr,row,col); /* get the number of rows and columns */
+ mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
+ /* print the message at the center of the screen */
+ mvprintw(row-2,0,"This screen has %d rows and %d columns\n",row,col);
+ printw("Try resizing your window(if possible) and then run this program again");
+ refresh();
+ getch();
+ endwin();
+
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>Above program demonstrates how easy it is to use <var class=
+"LITERAL">printw</var>. You just feed the coordinates and the
+message to be appeared on the screen, then it does what you
+want.</p>
+<p>The above program introduces us to a new function <var class=
+"LITERAL">getmaxyx()</var>, a macro defined in <var class=
+"LITERAL">ncurses.h</var>. It gives the number of columns and the
+number of rows in a given window. <var class=
+"LITERAL">getmaxyx()</var> does this by updating the variables
+given to it. Since <var class="LITERAL">getmaxyx()</var> is not a
+function we don't pass pointers to it, we just give two integer
+variables.</p>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ADDSTRCLASS" id="ADDSTRCLASS">6.4.
+addstr() class of functions</a></h3>
+<p><var class="LITERAL">addstr()</var> is used to put a character
+string into a given window. This function is similar to calling
+<var class="LITERAL">addch()</var> once for each character in a
+given string. This is true for all output functions. There are
+other functions from this family such as <var class=
+"LITERAL">mvaddstr(),mvwaddstr()</var> and <var class=
+"LITERAL">waddstr()</var>, which obey the naming convention of
+curses.(e.g. mvaddstr() is similar to the respective calls move()
+and then addstr().) Another function of this family is addnstr(),
+which takes an integer parameter(say n) additionally. This function
+puts at most n characters into the screen. If n is negative, then
+the entire string will be added.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ACAUTION" id="ACAUTION">6.5. A word of
+caution</a></h3>
+<p>All these functions take y co-ordinate first and then x in their
+arguments. A common mistake by beginners is to pass x,y in that
+order. If you are doing too many manipulations of (y,x)
+co-ordinates, think of dividing the screen into windows and
+manipulate each one separately. Windows are explained in the
+<a href="#WINDOWS">windows</a> section.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="SCANW" id="SCANW">7. Input
+functions</a></h2>
+<p>Well, printing without taking input, is boring. Let's see
+functions which allow us to get input from user. These functions
+also can be divided into three categories.</p>
+<ol type="1">
+<li>
+<p>getch() class: Get a character</p>
+</li>
+<li>
+<p>scanw() class: Get formatted input</p>
+</li>
+<li>
+<p>getstr() class: Get strings</p>
+</li>
+</ol>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="GETCHCLASS" id="GETCHCLASS">7.1. getch()
+class of functions</a></h3>
+<p>These functions read a single character from the terminal. But
+there are several subtle facts to consider. For example if you
+don't use the function cbreak(), curses will not read your input
+characters contiguously but will begin read them only after a new
+line or an EOF is encountered. In order to avoid this, the cbreak()
+function must used so that characters are immediately available to
+your program. Another widely used function is noecho(). As the name
+suggests, when this function is set (used), the characters that are
+keyed in by the user will not show up on the screen. The two
+functions cbreak() and noecho() are typical examples of key
+management. Functions of this genre are explained in the <a href=
+"#KEYS">key management section</a> .</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="SCANWCLASS" id="SCANWCLASS">7.2. scanw()
+class of functions</a></h3>
+<p>These functions are similar to <var class=
+"LITERAL">scanf()</var> with the added capability of getting the
+input from any location on the screen.</p>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="SCANWMVSCANW" id="SCANWMVSCANW">7.2.1.
+scanw() and mvscanw</a></h4>
+<p>The usage of these functions is similar to that of <var class=
+"LITERAL">sscanf()</var>, where the line to be scanned is provided
+by <var class="LITERAL">wgetstr()</var> function. That is, these
+functions call to <var class="LITERAL">wgetstr()</var>
+function(explained below) and uses the resulting line for a
+scan.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="WSCANWMVWSCANW" id=
+"WSCANWMVWSCANW">7.2.2. wscanw() and mvwscanw()</a></h4>
+<p>These are similar to above two functions except that they read
+from a window, which is supplied as one of the arguments to these
+functions.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="VWSCANW" id="VWSCANW">7.2.3.
+vwscanw()</a></h4>
+<p>This function is similar to <var class="LITERAL">vscanf()</var>.
+This can be used when a variable number of arguments are to be
+scanned.</p>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="GETSTRCLASS" id="GETSTRCLASS">7.3.
+getstr() class of functions</a></h3>
+<p>These functions are used to get strings from the terminal. In
+essence, this function performs the same task as would be achieved
+by a series of calls to <var class="LITERAL">getch()</var> until a
+newline, carriage return, or end-of-file is received. The resulting
+string of characters are pointed to by <var class=
+"LITERAL">str</var>, which is a character pointer provided by the
+user.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="GETSTREX" id="GETSTREX">7.4. Some
+examples</a></h3>
+<div class="EXAMPLE"><a name="BSCEX" id="BSCEX"></a>
+<p><b>Example 4. A Simple scanw example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h> /* ncurses.h includes stdio.h */
+#include <string.h>
+
+int main()
+{
+ char mesg[]="Enter a string: "; /* message to be appeared on the screen */
+ char str[80];
+ int row,col; /* to store the number of rows and *
+ * the number of colums of the screen */
+ initscr(); /* start the curses mode */
+ getmaxyx(stdscr,row,col); /* get the number of rows and columns */
+ mvprintw(row/2,(col-strlen(mesg))/2,"%s",mesg);
+ /* print the message at the center of the screen */
+ getstr(str);
+ mvprintw(LINES - 2, 0, "You Entered: %s", str);
+ getch();
+ endwin();
+
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="ATTRIB" id="ATTRIB">8.
+Attributes</a></h2>
+<p>We have seen an example of how attributes can be used to print
+characters with some special effects. Attributes, when set
+prudently, can present information in an easy, understandable
+manner. The following program takes a C file as input and prints
+the file with comments in bold. Scan through the code.</p>
+<div class="EXAMPLE"><a name="BSIAT" id="BSIAT"></a>
+<p><b>Example 5. A Simple Attributes example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">/* pager functionality by Joseph Spainhour" <spainhou@bellsouth.net> */
+#include <ncurses.h>
+#include <stdlib.h>
+
+int main(int argc, char *argv[])
+{
+ int ch, prev, row, col;
+ prev = EOF;
+ FILE *fp;
+ int y, x;
+
+ if(argc != 2)
+ {
+ printf("Usage: %s <a c file name>\n", argv[0]);
+ exit(1);
+ }
+ fp = fopen(argv[1], "r");
+ if(fp == NULL)
+ {
+ perror("Cannot open input file");
+ exit(1);
+ }
+ initscr(); /* Start curses mode */
+ getmaxyx(stdscr, row, col); /* find the boundaries of the screeen */
+ while((ch = fgetc(fp)) != EOF) /* read the file till we reach the end */
+ {
+ getyx(stdscr, y, x); /* get the current curser position */
+ if(y == (row - 1)) /* are we are at the end of the screen */
+ {
+ printw("<-Press Any Key->"); /* tell the user to press a key */
+ getch();
+ clear(); /* clear the screen */
+ move(0, 0); /* start at the beginning of the screen */
+ }
+ if(prev == '/' && ch == '*') /* If it is / and * then only
+ * switch bold on */
+ {
+ attron(A_BOLD); /* cut bold on */
+ getyx(stdscr, y, x); /* get the current curser position */
+ move(y, x - 1); /* back up one space */
+ printw("%c%c", '/', ch); /* The actual printing is done here */
+ }
+ else
+ printw("%c", ch);
+ refresh();
+ if(prev == '*' && ch == '/')
+ attroff(A_BOLD); /* Switch it off once we got *
+ * and then / */
+ prev = ch;
+ }
+ endwin(); /* End curses mode */
+ fclose(fp);
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>Don't worry about all those initialization and other crap.
+Concentrate on the while loop. It reads each character in the file
+and searches for the pattern /*. Once it spots the pattern, it
+switches the BOLD attribute on with <var class=
+"LITERAL">attron()</var> . When we get the pattern */ it is
+switched off by <var class="LITERAL">attroff()</var> .</p>
+<p>The above program also introduces us to two useful functions
+<var class="LITERAL">getyx()</var> and <var class=
+"LITERAL">move()</var>. The first function gets the co-ordinates of
+the present cursor into the variables y, x. Since getyx() is a
+macro we don't have to pass pointers to variables. The function
+<var class="LITERAL">move()</var> moves the cursor to the
+co-ordinates given to it.</p>
+<p>The above program is really a simple one which doesn't do much.
+On these lines one could write a more useful program which reads a
+C file, parses it and prints it in different colors. One could even
+extend it to other languages as well.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ATTRIBDETAILS" id="ATTRIBDETAILS">8.1.
+The details</a></h3>
+<p>Let's get into more details of attributes. The functions
+<var class="LITERAL">attron(), attroff(), attrset()</var> , and
+their sister functions <var class="LITERAL">attr_get()</var> etc..
+can be used to switch attributes on/off , get attributes and
+produce a colorful display.</p>
+<p>The functions attron and attroff take a bit-mask of attributes
+and switch them on or off, respectively. The following video
+attributes, which are defined in <curses.h> can be passed to
+these functions.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000">
+ A_NORMAL Normal display (no highlight)
+ A_STANDOUT Best highlighting mode of the terminal.
+ A_UNDERLINE Underlining
+ A_REVERSE Reverse video
+ A_BLINK Blinking
+ A_DIM Half bright
+ A_BOLD Extra bright or bold
+ A_PROTECT Protected mode
+ A_INVIS Invisible or blank mode
+ A_ALTCHARSET Alternate character set
+ A_CHARTEXT Bit-mask to extract a character
+ COLOR_PAIR(n) Color-pair number n
+ </font>
+</pre></td>
+</tr>
+</table>
+<p>The last one is the most colorful one :-) Colors are explained
+in the <a href="#color" target="_top">next sections</a>.</p>
+<p>We can OR(|) any number of above attributes to get a combined
+effect. If you wanted reverse video with blinking characters you
+can use</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> attron(A_REVERSE | A_BLINK);</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ATTRONVSATTRSET" id=
+"ATTRONVSATTRSET">8.2. attron() vs attrset()</a></h3>
+<p>Then what is the difference between attron() and attrset()?
+attrset sets the attributes of window whereas attron just switches
+on the attribute given to it. So attrset() fully overrides whatever
+attributes the window previously had and sets it to the new
+attribute(s). Similarly attroff() just switches off the
+attribute(s) given to it as an argument. This gives us the
+flexibility of managing attributes easily.But if you use them
+carelessly you may loose track of what attributes the window has
+and garble the display. This is especially true while managing
+menus with colors and highlighting. So decide on a consistent
+policy and stick to it. You can always use <var class=
+"LITERAL">standend()</var> which is equivalent to <var class=
+"LITERAL">attrset(A_NORMAL)</var> which turns off all attributes
+and brings you to normal mode.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ATTR_GET" id="ATTR_GET">8.3.
+attr_get()</a></h3>
+<p>The function attr_get() gets the current attributes and color
+pair of the window. Though we might not use this as often as the
+above functions, this is useful in scanning areas of screen. Say we
+wanted to do some complex update on screen and we are not sure what
+attribute each character is associated with. Then this function can
+be used with either attrset or attron to produce the desired
+effect.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ATTR_FUNCS" id="ATTR_FUNCS">8.4. attr_
+functions</a></h3>
+<p>There are series of functions like attr_set(), attr_on etc..
+These are similar to above functions except that they take
+parameters of type <var class="LITERAL">attr_t</var>.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="WATTRFUNCS" id="WATTRFUNCS">8.5. wattr
+functions</a></h3>
+<p>For each of the above functions we have a corresponding function
+with 'w' which operates on a particular window. The above functions
+operate on stdscr.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="CHGAT" id="CHGAT">8.6. chgat()
+functions</a></h3>
+<p>The function chgat() is listed in the end of the man page
+curs_attr. It actually is a useful one. This function can be used
+to set attributes for a group of characters without moving. I mean
+it !!! without moving the cursor :-) It changes the attributes of a
+given number of characters starting at the current cursor
+location.</p>
+<p>We can give -1 as the character count to update till end of
+line. If you want to change attributes of characters from current
+position to end of line, just use this.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> chgat(-1, A_REVERSE, 0, NULL);</font>
+</pre></td>
+</tr>
+</table>
+<p>This function is useful when changing attributes for characters
+that are already on the screen. Move to the character from which
+you want to change and change the attribute.</p>
+<p>Other functions wchgat(), mvchgat(), wchgat() behave similarly
+except that the w functions operate on the particular window. The
+mv functions first move the cursor then perform the work given to
+them. Actually chgat is a macro which is replaced by a wchgat()
+with stdscr as the window. Most of the "w-less" functions are
+macros.</p>
+<div class="EXAMPLE"><a name="BWICH" id="BWICH"></a>
+<p><b>Example 6. Chgat() Usage example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+int main(int argc, char *argv[])
+{ initscr(); /* Start curses mode */
+ start_color(); /* Start color functionality */
+
+ init_pair(1, COLOR_CYAN, COLOR_BLACK);
+ printw("A Big string which i didn't care to type fully ");
+ mvchgat(0, 0, -1, A_BLINK, 1, NULL);
+ /*
+ * First two parameters specify the position at which to start
+ * Third parameter number of characters to update. -1 means till
+ * end of line
+ * Forth parameter is the normal attribute you wanted to give
+ * to the charcter
+ * Fifth is the color index. It is the index given during init_pair()
+ * use 0 if you didn't want color
+ * Sixth one is always NULL
+ */
+ refresh();
+ getch();
+ endwin(); /* End curses mode */
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>This example also introduces us to the color world of curses.
+Colors will be explained in detail later. Use 0 for no color.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="WINDOWS" id="WINDOWS">9.
+Windows</a></h2>
+<p>Windows form the most important concept in curses. You have seen
+the standard window stdscr above where all the functions implicitly
+operated on this window. Now to make design even a simplest GUI,
+you need to resort to windows. The main reason you may want to use
+windows is to manipulate parts of the screen separately, for better
+efficiency, by updating only the windows that need to be changed
+and for a better design. I would say the last reason is the most
+important in going for windows. You should always strive for a
+better and easy-to-manage design in your programs. If you are
+writing big, complex GUIs this is of pivotal importance before you
+start doing anything.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="WINDOWBASICS" id="WINDOWBASICS">9.1. The
+basics</a></h3>
+<p>A Window can be created by calling the function <var class=
+"LITERAL">newwin()</var>. It doesn't create any thing on the screen
+actually. It allocates memory for a structure to manipulate the
+window and updates the structure with data regarding the window
+like it's size, beginy, beginx etc.. Hence in curses, a window is
+just an abstraction of an imaginary window, which can be
+manipulated independent of other parts of screen. The function
+newwin() returns a pointer to structure WINDOW, which can be passed
+to window related functions like wprintw() etc.. Finally the window
+can be destroyed with delwin(). It will deallocate the memory
+associated with the window structure.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="LETBEWINDOW" id="LETBEWINDOW">9.2. Let
+there be a Window !!!</a></h3>
+<p>What fun is it, if a window is created and we can't see it. So
+the fun part begins by displaying the window. The function
+<var class="LITERAL">box()</var> can be used to draw a border
+around the window. Let's explore these functions in more detail in
+this example.</p>
+<div class="EXAMPLE"><a name="BWIBO" id="BWIBO"></a>
+<p><b>Example 7. Window Border example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+
+WINDOW *create_newwin(int height, int width, int starty, int startx);
+void destroy_win(WINDOW *local_win);
+
+int main(int argc, char *argv[])
+{ WINDOW *my_win;
+ int startx, starty, width, height;
+ int ch;
+
+ initscr(); /* Start curses mode */
+ cbreak(); /* Line buffering disabled, Pass on
+ * everty thing to me */
+ keypad(stdscr, TRUE); /* I need that nifty F1 */
+
+ height = 3;
+ width = 10;
+ starty = (LINES - height) / 2; /* Calculating for a center placement */
+ startx = (COLS - width) / 2; /* of the window */
+ printw("Press F1 to exit");
+ refresh();
+ my_win = create_newwin(height, width, starty, startx);
+
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case KEY_LEFT:
+ destroy_win(my_win);
+ my_win = create_newwin(height, width, starty,--startx);
+ break;
+ case KEY_RIGHT:
+ destroy_win(my_win);
+ my_win = create_newwin(height, width, starty,++startx);
+ break;
+ case KEY_UP:
+ destroy_win(my_win);
+ my_win = create_newwin(height, width, --starty,startx);
+ break;
+ case KEY_DOWN:
+ destroy_win(my_win);
+ my_win = create_newwin(height, width, ++starty,startx);
+ break;
+ }
+ }
+
+ endwin(); /* End curses mode */
+ return 0;
+}
+
+WINDOW *create_newwin(int height, int width, int starty, int startx)
+{ WINDOW *local_win;
+
+ local_win = newwin(height, width, starty, startx);
+ box(local_win, 0 , 0); /* 0, 0 gives default characters
+ * for the vertical and horizontal
+ * lines */
+ wrefresh(local_win); /* Show that box */
+
+ return local_win;
+}
+
+void destroy_win(WINDOW *local_win)
+{
+ /* box(local_win, ' ', ' '); : This won't produce the desired
+ * result of erasing the window. It will leave it's four corners
+ * and so an ugly remnant of window.
+ */
+ wborder(local_win, ' ', ' ', ' ',' ',' ',' ',' ',' ');
+ /* The parameters taken are
+ * 1. win: the window on which to operate
+ * 2. ls: character to be used for the left side of the window
+ * 3. rs: character to be used for the right side of the window
+ * 4. ts: character to be used for the top side of the window
+ * 5. bs: character to be used for the bottom side of the window
+ * 6. tl: character to be used for the top left corner of the window
+ * 7. tr: character to be used for the top right corner of the window
+ * 8. bl: character to be used for the bottom left corner of the window
+ * 9. br: character to be used for the bottom right corner of the window
+ */
+ wrefresh(local_win);
+ delwin(local_win);
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="BORDEREXEXPL" id="BORDEREXEXPL">9.3.
+Explanation</a></h3>
+<p>Don't scream. I know it's a big example. But I have to explain
+some important things here :-). This program creates a rectangular
+window that can be moved with left, right, up, down arrow keys. It
+repeatedly creates and destroys windows as user press a key. Don't
+go beyond the screen limits. Checking for those limits is left as
+an exercise for the reader. Let's dissect it by line by line.</p>
+<p>The <var class="LITERAL">create_newwin()</var> function creates
+a window with <var class="LITERAL">newwin()</var> and displays a
+border around it with box. The function <var class=
+"LITERAL">destroy_win()</var> first erases the window from screen
+by painting a border with ' ' character and then calling
+<var class="LITERAL">delwin()</var> to deallocate memory related to
+it. Depending on the key the user presses, starty or startx is
+changed and a new window is created.</p>
+<p>In the destroy_win, as you can see, I used wborder instead of
+box. The reason is written in the comments (You missed it. I know.
+Read the code :-)). wborder draws a border around the window with
+the characters given to it as the 4 corner points and the 4 lines.
+To put it clearly, if you have called wborder as below:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> wborder(win, '|', '|', '-', '-', '+', '+', '+', '+');</font>
+</pre></td>
+</tr>
+</table>
+<p>it produces some thing like</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> +------------+
+ | |
+ | |
+ | |
+ | |
+ | |
+ | |
+ +------------+</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="OTHERSTUFF" id="OTHERSTUFF">9.4. The
+other stuff in the example</a></h3>
+<p>You can also see in the above examples, that I have used the
+variables COLS, LINES which are initialized to the screen sizes
+after initscr(). They can be useful in finding screen dimensions
+and finding the center co-ordinate of the screen as above. The
+function <var class="LITERAL">getch()</var> as usual gets the key
+from keyboard and according to the key it does the corresponding
+work. This type of switch- case is very common in any GUI based
+programs.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="OTHERBORDERFUNCS" id=
+"OTHERBORDERFUNCS">9.5. Other Border functions</a></h3>
+<p>Above program is grossly inefficient in that with each press of
+a key, a window is destroyed and another is created. So let's write
+a more efficient program which uses other border related
+functions.</p>
+<p>The following program uses <var class="LITERAL">mvhline()</var>
+and <var class="LITERAL">mvvline()</var> to achieve similar effect.
+These two functions are simple. They create a horizontal or
+vertical line of the specified length at the specified
+position.</p>
+<div class="EXAMPLE"><a name="BOTBO" id="BOTBO"></a>
+<p><b>Example 8. More border functions</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+typedef struct _win_border_struct {
+ chtype ls, rs, ts, bs,
+ tl, tr, bl, br;
+}WIN_BORDER;
+
+typedef struct _WIN_struct {
+
+ int startx, starty;
+ int height, width;
+ WIN_BORDER border;
+}WIN;
+
+void init_win_params(WIN *p_win);
+void print_win_params(WIN *p_win);
+void create_box(WIN *win, bool flag);
+
+int main(int argc, char *argv[])
+{ WIN win;
+ int ch;
+
+ initscr(); /* Start curses mode */
+ start_color(); /* Start the color functionality */
+ cbreak(); /* Line buffering disabled, Pass on
+ * everty thing to me */
+ keypad(stdscr, TRUE); /* I need that nifty F1 */
+ noecho();
+ init_pair(1, COLOR_CYAN, COLOR_BLACK);
+
+ /* Initialize the window parameters */
+ init_win_params(&win);
+ print_win_params(&win);
+
+ attron(COLOR_PAIR(1));
+ printw("Press F1 to exit");
+ refresh();
+ attroff(COLOR_PAIR(1));
+
+ create_box(&win, TRUE);
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case KEY_LEFT:
+ create_box(&win, FALSE);
+ --win.startx;
+ create_box(&win, TRUE);
+ break;
+ case KEY_RIGHT:
+ create_box(&win, FALSE);
+ ++win.startx;
+ create_box(&win, TRUE);
+ break;
+ case KEY_UP:
+ create_box(&win, FALSE);
+ --win.starty;
+ create_box(&win, TRUE);
+ break;
+ case KEY_DOWN:
+ create_box(&win, FALSE);
+ ++win.starty;
+ create_box(&win, TRUE);
+ break;
+ }
+ }
+ endwin(); /* End curses mode */
+ return 0;
+}
+void init_win_params(WIN *p_win)
+{
+ p_win->height = 3;
+ p_win->width = 10;
+ p_win->starty = (LINES - p_win->height)/2;
+ p_win->startx = (COLS - p_win->width)/2;
+
+ p_win->border.ls = '|';
+ p_win->border.rs = '|';
+ p_win->border.ts = '-';
+ p_win->border.bs = '-';
+ p_win->border.tl = '+';
+ p_win->border.tr = '+';
+ p_win->border.bl = '+';
+ p_win->border.br = '+';
+
+}
+void print_win_params(WIN *p_win)
+{
+#ifdef _DEBUG
+ mvprintw(25, 0, "%d %d %d %d", p_win->startx, p_win->starty,
+ p_win->width, p_win->height);
+ refresh();
+#endif
+}
+void create_box(WIN *p_win, bool flag)
+{ int i, j;
+ int x, y, w, h;
+
+ x = p_win->startx;
+ y = p_win->starty;
+ w = p_win->width;
+ h = p_win->height;
+
+ if(flag == TRUE)
+ { mvaddch(y, x, p_win->border.tl);
+ mvaddch(y, x + w, p_win->border.tr);
+ mvaddch(y + h, x, p_win->border.bl);
+ mvaddch(y + h, x + w, p_win->border.br);
+ mvhline(y, x + 1, p_win->border.ts, w - 1);
+ mvhline(y + h, x + 1, p_win->border.bs, w - 1);
+ mvvline(y + 1, x, p_win->border.ls, h - 1);
+ mvvline(y + 1, x + w, p_win->border.rs, h - 1);
+
+ }
+ else
+ for(j = y; j <= y + h; ++j)
+ for(i = x; i <= x + w; ++i)
+ mvaddch(j, i, ' ');
+
+ refresh();
+
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="COLOR" id="COLOR">10. Colors</a></h2>
+<div class="SECT2">
+<h3 class="SECT2"><a name="COLORBASICS" id="COLORBASICS">10.1. The
+basics</a></h3>
+<p>Life seems dull with no colors. Curses has a nice mechanism to
+handle colors. Let's get into the thick of the things with a small
+program.</p>
+<div class="EXAMPLE"><a name="BSICO" id="BSICO"></a>
+<p><b>Example 9. A Simple Color example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string);
+int main(int argc, char *argv[])
+{ initscr(); /* Start curses mode */
+ if(has_colors() == FALSE)
+ { endwin();
+ printf("Your terminal does not support color\n");
+ exit(1);
+ }
+ start_color(); /* Start color */
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+
+ attron(COLOR_PAIR(1));
+ print_in_middle(stdscr, LINES / 2, 0, 0, "Viola !!! In color ...");
+ attroff(COLOR_PAIR(1));
+ getch();
+ endwin();
+}
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ mvwprintw(win, y, x, "%s", string);
+ refresh();
+}
+</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>As you can see, to start using color, you should first call the
+function <var class="LITERAL">start_color()</var>. After that, you
+can use color capabilities of your terminals using various
+functions. To find out whether a terminal has color capabilities or
+not, you can use <var class="LITERAL">has_colors()</var> function,
+which returns FALSE if the terminal does not support color.</p>
+<p>Curses initializes all the colors supported by terminal when
+start_color() is called. These can be accessed by the define
+constants like <var class="LITERAL">COLOR_BLACK</var> etc. Now to
+actually start using colors, you have to define pairs. Colors are
+always used in pairs. That means you have to use the function
+<var class="LITERAL">init_pair()</var> to define the foreground and
+background for the pair number you give. After that that pair
+number can be used as a normal attribute with <var class=
+"LITERAL">COLOR_PAIR()</var>function. This may seem to be
+cumbersome at first. But this elegant solution allows us to manage
+color pairs very easily. To appreciate it, you have to look into
+the the source code of "dialog", a utility for displaying dialog
+boxes from shell scripts. The developers have defined foreground
+and background combinations for all the colors they might need and
+initialized at the beginning. This makes it very easy to set
+attributes just by accessing a pair which we already have defined
+as a constant.</p>
+<p>The following colors are defined in <var class=
+"LITERAL">curses.h</var>. You can use these as parameters for
+various color functions.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> COLOR_BLACK 0
+ COLOR_RED 1
+ COLOR_GREEN 2
+ COLOR_YELLOW 3
+ COLOR_BLUE 4
+ COLOR_MAGENTA 5
+ COLOR_CYAN 6
+ COLOR_WHITE 7</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="CHANGECOLORDEFS" id=
+"CHANGECOLORDEFS">10.2. Changing Color Definitions</a></h3>
+<p>The function <var class="LITERAL">init_color()</var>can be used
+to change the rgb values for the colors defined by curses
+initially. Say you wanted to lighten the intensity of red color by
+a minuscule. Then you can use this function as</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> init_color(COLOR_RED, 700, 0, 0);
+ /* param 1 : color name
+ * param 2, 3, 4 : rgb content min = 0, max = 1000 */</font>
+</pre></td>
+</tr>
+</table>
+<p>If your terminal cannot change the color definitions, the
+function returns ERR. The function <var class=
+"LITERAL">can_change_color()</var> can be used to find out whether
+the terminal has the capability of changing color content or not.
+The rgb content is scaled from 0 to 1000. Initially RED color is
+defined with content 1000(r), 0(g), 0(b).</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="COLORCONTENT" id="COLORCONTENT">10.3.
+Color Content</a></h3>
+<p>The functions <var class="LITERAL">color_content()</var> and
+<var class="LITERAL">pair_content()</var> can be used to find the
+color content and foreground, background combination for the
+pair.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="KEYS" id="KEYS">11. Interfacing with the
+key board</a></h2>
+<div class="SECT2">
+<h3 class="SECT2"><a name="KEYSBASICS" id="KEYSBASICS">11.1. The
+Basics</a></h3>
+<p>No GUI is complete without a strong user interface and to
+interact with the user, a curses program should be sensitive to key
+presses or the mouse actions done by the user. Let's deal with the
+keys first.</p>
+<p>As you have seen in almost all of the above examples, it's very
+easy to get key input from the user. A simple way of getting key
+presses is to use <var class="LITERAL">getch()</var> function. The
+cbreak mode should be enabled to read keys when you are interested
+in reading individual key hits rather than complete lines of text
+(which usually end with a carriage return). keypad should be
+enabled to get the Functions keys, arrow keys etc. See the
+initialization section for details.</p>
+<p><var class="LITERAL">getch()</var> returns an integer
+corresponding to the key pressed. If it is a normal character, the
+integer value will be equivalent to the character. Otherwise it
+returns a number which can be matched with the constants defined in
+<var class="LITERAL">curses.h</var>. For example if the user
+presses F1, the integer returned is 265. This can be checked using
+the macro KEY_F() defined in curses.h. This makes reading keys
+portable and easy to manage.</p>
+<p>For example, if you call getch() like this</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> int ch;
+
+ ch = getch();</font>
+</pre></td>
+</tr>
+</table>
+<p>getch() will wait for the user to press a key, (unless you
+specified a timeout) and when user presses a key, the corresponding
+integer is returned. Then you can check the value returned with the
+constants defined in curses.h to match against the keys you
+want.</p>
+<p>The following code piece will do that job.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> if(ch == KEY_LEFT)
+ printw("Left arrow is pressed\n");</font>
+</pre></td>
+</tr>
+</table>
+<p>Let's write a small program which creates a menu which can be
+navigated by up and down arrows.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="SIMPLEKEYEX" id="SIMPLEKEYEX">11.2. A
+Simple Key Usage example</a></h3>
+<div class="EXAMPLE"><a name="BSIKE" id="BSIKE"></a>
+<p><b>Example 10. A Simple Key Usage example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <stdio.h>
+#include <ncurses.h>
+
+#define WIDTH 30
+#define HEIGHT 10
+
+int startx = 0;
+int starty = 0;
+
+char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Exit",
+ };
+int n_choices = sizeof(choices) / sizeof(char *);
+void print_menu(WINDOW *menu_win, int highlight);
+
+int main()
+{ WINDOW *menu_win;
+ int highlight = 1;
+ int choice = 0;
+ int c;
+
+ initscr();
+ clear();
+ noecho();
+ cbreak(); /* Line buffering disabled. pass on everything */
+ startx = (80 - WIDTH) / 2;
+ starty = (24 - HEIGHT) / 2;
+
+ menu_win = newwin(HEIGHT, WIDTH, starty, startx);
+ keypad(menu_win, TRUE);
+ mvprintw(0, 0, "Use arrow keys to go up and down, Press enter to select a choice");
+ refresh();
+ print_menu(menu_win, highlight);
+ while(1)
+ { c = wgetch(menu_win);
+ switch(c)
+ { case KEY_UP:
+ if(highlight == 1)
+ highlight = n_choices;
+ else
+ --highlight;
+ break;
+ case KEY_DOWN:
+ if(highlight == n_choices)
+ highlight = 1;
+ else
+ ++highlight;
+ break;
+ case 10:
+ choice = highlight;
+ break;
+ default:
+ mvprintw(24, 0, "Charcter pressed is = %3d Hopefully it can be printed as '%c'", c, c);
+ refresh();
+ break;
+ }
+ print_menu(menu_win, highlight);
+ if(choice != 0) /* User did a choice come out of the infinite loop */
+ break;
+ }
+ mvprintw(23, 0, "You chose choice %d with choice string %s\n", choice, choices[choice - 1]);
+ clrtoeol();
+ refresh();
+ endwin();
+ return 0;
+}
+
+
+void print_menu(WINDOW *menu_win, int highlight)
+{
+ int x, y, i;
+
+ x = 2;
+ y = 2;
+ box(menu_win, 0, 0);
+ for(i = 0; i < n_choices; ++i)
+ { if(highlight == i + 1) /* High light the present choice */
+ { wattron(menu_win, A_REVERSE);
+ mvwprintw(menu_win, y, x, "%s", choices[i]);
+ wattroff(menu_win, A_REVERSE);
+ }
+ else
+ mvwprintw(menu_win, y, x, "%s", choices[i]);
+ ++y;
+ }
+ wrefresh(menu_win);
+}
+</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="MOUSE" id="MOUSE">12. Interfacing with
+the mouse</a></h2>
+<p>Now that you have seen how to get keys, lets do the same thing
+from mouse. Usually each UI allows the user to interact with both
+keyboard and mouse.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MOUSEBASICS" id="MOUSEBASICS">12.1. The
+Basics</a></h3>
+<p>Before you do any thing else, the events you want to receive
+have to be enabled with <var class="LITERAL">mousemask()</var>.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> mousemask( mmask_t newmask, /* The events you want to listen to */
+ mmask_t *oldmask) /* The old events mask */</font>
+</pre></td>
+</tr>
+</table>
+<p>The first parameter to above function is a bit mask of events
+you would like to listen. By default, all the events are turned
+off. The bit mask <var class="LITERAL">ALL_MOUSE_EVENTS</var> can
+be used to get all the events.</p>
+<p>The following are all the event masks:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> Name Description
+ ---------------------------------------------------------------------
+ BUTTON1_PRESSED mouse button 1 down
+ BUTTON1_RELEASED mouse button 1 up
+ BUTTON1_CLICKED mouse button 1 clicked
+ BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
+ BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
+ BUTTON2_PRESSED mouse button 2 down
+ BUTTON2_RELEASED mouse button 2 up
+ BUTTON2_CLICKED mouse button 2 clicked
+ BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
+ BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
+ BUTTON3_PRESSED mouse button 3 down
+ BUTTON3_RELEASED mouse button 3 up
+ BUTTON3_CLICKED mouse button 3 clicked
+ BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
+ BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
+ BUTTON4_PRESSED mouse button 4 down
+ BUTTON4_RELEASED mouse button 4 up
+ BUTTON4_CLICKED mouse button 4 clicked
+ BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
+ BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
+ BUTTON_SHIFT shift was down during button state change
+ BUTTON_CTRL control was down during button state change
+ BUTTON_ALT alt was down during button state change
+ ALL_MOUSE_EVENTS report all button state changes
+ REPORT_MOUSE_POSITION report mouse movement</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="GETTINGEVENTS" id="GETTINGEVENTS">12.2.
+Getting the events</a></h3>
+<p>Once a class of mouse events have been enabled, getch() class of
+functions return KEY_MOUSE every time some mouse event happens.
+Then the mouse event can be retrieved with <var class=
+"LITERAL">getmouse()</var>.</p>
+<p>The code approximately looks like this:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> MEVENT event;
+
+ ch = getch();
+ if(ch == KEY_MOUSE)
+ if(getmouse(&event) == OK)
+ . /* Do some thing with the event */
+ .
+ .</font>
+</pre></td>
+</tr>
+</table>
+<p>getmouse() returns the event into the pointer given to it. It's
+a structure which contains</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> typedef struct
+ {
+ short id; /* ID to distinguish multiple devices */
+ int x, y, z; /* event coordinates */
+ mmask_t bstate; /* button state bits */
+ } </font>
+</pre></td>
+</tr>
+</table>
+<p>The <var class="LITERAL">bstate</var> is the main variable we
+are interested in. It tells the button state of the mouse.</p>
+<p>Then with a code snippet like the following, we can find out
+what happened.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> if(event.bstate & BUTTON1_PRESSED)
+ printw("Left Button Pressed");</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MOUSETOGETHER" id="MOUSETOGETHER">12.3.
+Putting it all Together</a></h3>
+<p>That's pretty much interfacing with mouse. Let's create the same
+menu and enable mouse interaction. To make things simpler, key
+handling is removed.</p>
+<div class="EXAMPLE"><a name="BMOME" id="BMOME"></a>
+<p><b>Example 11. Access the menu with mouse !!!</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+#define WIDTH 30
+#define HEIGHT 10
+
+int startx = 0;
+int starty = 0;
+
+char *choices[] = { "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Exit",
+ };
+
+int n_choices = sizeof(choices) / sizeof(char *);
+
+void print_menu(WINDOW *menu_win, int highlight);
+void report_choice(int mouse_x, int mouse_y, int *p_choice);
+
+int main()
+{ int c, choice = 0;
+ WINDOW *menu_win;
+ MEVENT event;
+
+ /* Initialize curses */
+ initscr();
+ clear();
+ noecho();
+ cbreak(); //Line buffering disabled. pass on everything
+
+ /* Try to put the window in the middle of screen */
+ startx = (80 - WIDTH) / 2;
+ starty = (24 - HEIGHT) / 2;
+
+ attron(A_REVERSE);
+ mvprintw(23, 1, "Click on Exit to quit (Works best in a virtual console)");
+ refresh();
+ attroff(A_REVERSE);
+
+ /* Print the menu for the first time */
+ menu_win = newwin(HEIGHT, WIDTH, starty, startx);
+ print_menu(menu_win, 1);
+ /* Get all the mouse events */
+ mousemask(ALL_MOUSE_EVENTS, NULL);
+
+ while(1)
+ { c = wgetch(menu_win);
+ switch(c)
+ { case KEY_MOUSE:
+ if(getmouse(&event) == OK)
+ { /* When the user clicks left mouse button */
+ if(event.bstate & BUTTON1_PRESSED)
+ { report_choice(event.x + 1, event.y + 1, &choice);
+ if(choice == -1) //Exit chosen
+ goto end;
+ mvprintw(22, 1, "Choice made is : %d String Chosen is \"%10s\"", choice, choices[choice - 1]);
+ refresh();
+ }
+ }
+ print_menu(menu_win, choice);
+ break;
+ }
+ }
+end:
+ endwin();
+ return 0;
+}
+
+
+void print_menu(WINDOW *menu_win, int highlight)
+{
+ int x, y, i;
+
+ x = 2;
+ y = 2;
+ box(menu_win, 0, 0);
+ for(i = 0; i < n_choices; ++i)
+ { if(highlight == i + 1)
+ { wattron(menu_win, A_REVERSE);
+ mvwprintw(menu_win, y, x, "%s", choices[i]);
+ wattroff(menu_win, A_REVERSE);
+ }
+ else
+ mvwprintw(menu_win, y, x, "%s", choices[i]);
+ ++y;
+ }
+ wrefresh(menu_win);
+}
+
+/* Report the choice according to mouse position */
+void report_choice(int mouse_x, int mouse_y, int *p_choice)
+{ int i,j, choice;
+
+ i = startx + 2;
+ j = starty + 3;
+
+ for(choice = 0; choice < n_choices; ++choice)
+ if(mouse_y == j + choice && mouse_x >= i && mouse_x <= i + strlen(choices[choice]))
+ { if(choice == n_choices - 1)
+ *p_choice = -1;
+ else
+ *p_choice = choice + 1;
+ break;
+ }
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MISCMOUSEFUNCS" id=
+"MISCMOUSEFUNCS">12.4. Miscellaneous Functions</a></h3>
+<p>The functions mouse_trafo() and wmouse_trafo() can be used to
+convert to mouse co-ordinates to screen relative co-ordinates. See
+curs_mouse(3X) man page for details.</p>
+<p>The mouseinterval function sets the maximum time (in thousands
+of a second) that can elapse between press and release events in
+order for them to be recognized as a click. This function returns
+the previous interval value. The default is one fifth of a
+second.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="SCREEN" id="SCREEN">13. Screen
+Manipulation</a></h2>
+<p>In this section, we will look into some functions, which allow
+us to manage the screen efficiently and to write some fancy
+programs. This is especially important in writing games.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="GETYX" id="GETYX">13.1. getyx()
+functions</a></h3>
+<p>The function <var class="LITERAL">getyx()</var> can be used to
+find out the present cursor co-ordinates. It will fill the values
+of x and y co-ordinates in the arguments given to it. Since getyx()
+is a macro you don't have to pass the address of the variables. It
+can be called as</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> getyx(win, y, x);
+ /* win: window pointer
+ * y, x: y, x co-ordinates will be put into this variables
+ */</font>
+</pre></td>
+</tr>
+</table>
+<p>The function getparyx() gets the beginning co-ordinates of the
+sub window relative to the main window. This is some times useful
+to update a sub window. When designing fancy stuff like writing
+multiple menus, it becomes difficult to store the menu positions,
+their first option co-ordinates etc. A simple solution to this
+problem, is to create menus in sub windows and later find the
+starting co-ordinates of the menus by using getparyx().</p>
+<p>The functions getbegyx() and getmaxyx() store current window's
+beginning and maximum co-ordinates. These functions are useful in
+the same way as above in managing the windows and sub windows
+effectively.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="SCREENDUMP" id="SCREENDUMP">13.2. Screen
+Dumping</a></h3>
+<p>While writing games, some times it becomes necessary to store
+the state of the screen and restore it back to the same state. The
+function scr_dump() can be used to dump the screen contents to a
+file given as an argument. Later it can be restored by scr_restore
+function. These two simple functions can be used effectively to
+maintain a fast moving game with changing scenarios.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="WINDOWDUMP" id="WINDOWDUMP">13.3. Window
+Dumping</a></h3>
+<p>To store and restore windows, the functions <var class=
+"LITERAL">putwin()</var> and <var class="LITERAL">getwin()</var>
+can be used. <var class="LITERAL">putwin()</var> puts the present
+window state into a file, which can be later restored by
+<var class="LITERAL">getwin()</var>.</p>
+<p>The function <var class="LITERAL">copywin()</var> can be used to
+copy a window completely onto another window. It takes the source
+and destination windows as parameters and according to the
+rectangle specified, it copies the rectangular region from source
+to destination window. It's last parameter specifies whether to
+overwrite or just overlay the contents on to the destination
+window. If this argument is true, then the copying is
+non-destructive.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="MISC" id="MISC">14. Miscellaneous
+features</a></h2>
+<p>Now you know enough features to write a good curses program,
+with all bells and whistles. There are some miscellaneous functions
+which are useful in various cases. Let's go headlong into some of
+those.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="CURSSET" id="CURSSET">14.1.
+curs_set()</a></h3>
+<p>This function can be used to make the cursor invisible. The
+parameter to this function should be</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> 0 : invisible or
+ 1 : normal or
+ 2 : very visible.</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="TEMPLEAVE" id="TEMPLEAVE">14.2.
+Temporarily Leaving Curses mode</a></h3>
+<p>Some times you may want to get back to cooked mode (normal line
+buffering mode) temporarily. In such a case you will first need to
+save the tty modes with a call to <var class=
+"LITERAL">def_prog_mode()</var> and then call <var class=
+"LITERAL">endwin()</var> to end the curses mode. This will leave
+you in the original tty mode. To get back to curses once you are
+done, call <var class="LITERAL">reset_prog_mode()</var> . This
+function returns the tty to the state stored by <var class=
+"LITERAL">def_prog_mode()</var>. Then do refresh(), and you are
+back to the curses mode. Here is an example showing the sequence of
+things to be done.</p>
+<div class="EXAMPLE"><a name="BTELE" id="BTELE"></a>
+<p><b>Example 12. Temporarily Leaving Curses Mode</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+int main()
+{
+ initscr(); /* Start curses mode */
+ printw("Hello World !!!\n"); /* Print Hello World */
+ refresh(); /* Print it on to the real screen */
+ def_prog_mode(); /* Save the tty modes */
+ endwin(); /* End curses mode temporarily */
+ system("/bin/sh"); /* Do whatever you like in cooked mode */
+ reset_prog_mode(); /* Return to the previous tty mode*/
+ /* stored by def_prog_mode() */
+ refresh(); /* Do refresh() to restore the */
+ /* Screen contents */
+ printw("Another String\n"); /* Back to curses use the full */
+ refresh(); /* capabilities of curses */
+ endwin(); /* End curses mode */
+
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="ACSVARS" id="ACSVARS">14.3. ACS_
+variables</a></h3>
+<p>If you have ever programmed in DOS, you know about those nifty
+characters in extended character set. They are printable only on
+some terminals. NCURSES functions like <var class=
+"LITERAL">box()</var> use these characters. All these variables
+start with ACS meaning alternative character set. You might have
+noticed me using these characters in some of the programs above.
+Here's an example showing all the characters.</p>
+<div class="EXAMPLE"><a name="BACSVARS" id="BACSVARS"></a>
+<p><b>Example 13. ACS Variables Example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <ncurses.h>
+
+int main()
+{
+ initscr();
+
+ printw("Upper left corner "); addch(ACS_ULCORNER); printw("\n");
+ printw("Lower left corner "); addch(ACS_LLCORNER); printw("\n");
+ printw("Lower right corner "); addch(ACS_LRCORNER); printw("\n");
+ printw("Tee pointing right "); addch(ACS_LTEE); printw("\n");
+ printw("Tee pointing left "); addch(ACS_RTEE); printw("\n");
+ printw("Tee pointing up "); addch(ACS_BTEE); printw("\n");
+ printw("Tee pointing down "); addch(ACS_TTEE); printw("\n");
+ printw("Horizontal line "); addch(ACS_HLINE); printw("\n");
+ printw("Vertical line "); addch(ACS_VLINE); printw("\n");
+ printw("Large Plus or cross over "); addch(ACS_PLUS); printw("\n");
+ printw("Scan Line 1 "); addch(ACS_S1); printw("\n");
+ printw("Scan Line 3 "); addch(ACS_S3); printw("\n");
+ printw("Scan Line 7 "); addch(ACS_S7); printw("\n");
+ printw("Scan Line 9 "); addch(ACS_S9); printw("\n");
+ printw("Diamond "); addch(ACS_DIAMOND); printw("\n");
+ printw("Checker board (stipple) "); addch(ACS_CKBOARD); printw("\n");
+ printw("Degree Symbol "); addch(ACS_DEGREE); printw("\n");
+ printw("Plus/Minus Symbol "); addch(ACS_PLMINUS); printw("\n");
+ printw("Bullet "); addch(ACS_BULLET); printw("\n");
+ printw("Arrow Pointing Left "); addch(ACS_LARROW); printw("\n");
+ printw("Arrow Pointing Right "); addch(ACS_RARROW); printw("\n");
+ printw("Arrow Pointing Down "); addch(ACS_DARROW); printw("\n");
+ printw("Arrow Pointing Up "); addch(ACS_UARROW); printw("\n");
+ printw("Board of squares "); addch(ACS_BOARD); printw("\n");
+ printw("Lantern Symbol "); addch(ACS_LANTERN); printw("\n");
+ printw("Solid Square Block "); addch(ACS_BLOCK); printw("\n");
+ printw("Less/Equal sign "); addch(ACS_LEQUAL); printw("\n");
+ printw("Greater/Equal sign "); addch(ACS_GEQUAL); printw("\n");
+ printw("Pi "); addch(ACS_PI); printw("\n");
+ printw("Not equal "); addch(ACS_NEQUAL); printw("\n");
+ printw("UK pound sign "); addch(ACS_STERLING); printw("\n");
+
+ refresh();
+ getch();
+ endwin();
+
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="OTHERLIB" id="OTHERLIB">15. Other
+libraries</a></h2>
+<p>Apart from the curses library, there are few text mode
+libraries, which provide more functionality and a lot of features.
+The following sections explain three standard libraries which are
+usually distributed along with curses.</p>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="PANELS" id="PANELS">16. Panel
+Library</a></h2>
+<p>Now that you are proficient in curses, you wanted to do some
+thing big. You created a lot of overlapping windows to give a
+professional windows-type look. Unfortunately, it soon becomes
+difficult to manage these. The multiple refreshes, updates plunge
+you into a nightmare. The overlapping windows create blotches,
+whenever you forget to refresh the windows in the proper order.</p>
+<p>Don't despair. There's an elegant solution provided in panels
+library. In the words of developers of ncurses</p>
+<p><em>When your interface design is such that windows may dive
+deeper into the visibility stack or pop to the top at runtime, the
+resulting book-keeping can be tedious and difficult to get right.
+Hence the panels library.</em></p>
+<p>If you have lot of overlapping windows, then panels library is
+the way to go. It obviates the need of doing series of
+wnoutrefresh(), doupdate() and relieves the burden of doing it
+correctly(bottom up). The library maintains information about the
+order of windows, their overlapping and update the screen properly.
+So why wait? Let's take a close peek into panels.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PANELBASICS" id="PANELBASICS">16.1. The
+Basics</a></h3>
+<p>Panel object is a window that is implicitly treated as part of a
+deck including all other panel objects. The deck is treated as a
+stack with the top panel being completely visible and the other
+panels may or may not be obscured according to their positions. So
+the basic idea is to create a stack of overlapping panels and use
+panels library to display them correctly. There is a function
+similar to refresh() which, when called , displays panels in the
+correct order. Functions are provided to hide or show panels, move
+panels, change its size etc.. The overlapping problem is managed by
+the panels library during all the calls to these functions.</p>
+<p>The general flow of a panel program goes like this:</p>
+<ol type="1">
+<li>
+<p>Create the windows (with newwin()) to be attached to the
+panels.</p>
+</li>
+<li>
+<p>Create panels with the chosen visibility order. Stack them up
+according to the desired visibility. The function new_panel() is
+used to created panels.</p>
+</li>
+<li>
+<p>Call update_panels() to write the panels to the virtual screen
+in correct visibility order. Do a doupdate() to show it on the
+screen.</p>
+</li>
+<li>
+<p>Mainpulate the panels with show_panel(), hide_panel(),
+move_panel() etc. Make use of helper functions like panel_hidden()
+and panel_window(). Make use of user pointer to store custom data
+for a panel. Use the functions set_panel_userptr() and
+panel_userptr() to set and get the user pointer for a panel.</p>
+</li>
+<li>
+<p>When you are done with the panel use del_panel() to delete the
+panel.</p>
+</li>
+</ol>
+<p>Let's make the concepts clear, with some programs. The following
+is a simple program which creates 3 overlapping panels and shows
+them on the screen.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="COMPILEPANELS" id="COMPILEPANELS">16.2.
+Compiling With the Panels Library</a></h3>
+<p>To use panels library functions, you have to include panel.h and
+to link the program with panels library the flag -lpanel should be
+added along with -lncurses in that order.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> #include <panel.h>
+ .
+ .
+ .
+
+ compile and link: gcc <program file> -lpanel -lncurses</font>
+</pre></td>
+</tr>
+</table>
+<div class="EXAMPLE"><a name="PPASI" id="PPASI"></a>
+<p><b>Example 14. Panel basics</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <panel.h>
+
+int main()
+{ WINDOW *my_wins[3];
+ PANEL *my_panels[3];
+ int lines = 10, cols = 40, y = 2, x = 4, i;
+
+ initscr();
+ cbreak();
+ noecho();
+
+ /* Create windows for the panels */
+ my_wins[0] = newwin(lines, cols, y, x);
+ my_wins[1] = newwin(lines, cols, y + 1, x + 5);
+ my_wins[2] = newwin(lines, cols, y + 2, x + 10);
+
+ /*
+ * Create borders around the windows so that you can see the effect
+ * of panels
+ */
+ for(i = 0; i < 3; ++i)
+ box(my_wins[i], 0, 0);
+
+ /* Attach a panel to each window */ /* Order is bottom up */
+ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+
+ /* Update the stacking order. 2nd panel will be on top */
+ update_panels();
+
+ /* Show it on the screen */
+ doupdate();
+
+ getch();
+ endwin();
+}
+</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>As you can see, above program follows a simple flow as
+explained. The windows are created with newwin() and then they are
+attached to panels with new_panel(). As we attach one panel after
+another, the stack of panels gets updated. To put them on screen
+update_panels() and doupdate() are called.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PANELBROWSING" id="PANELBROWSING">16.3.
+Panel Window Browsing</a></h3>
+<p>A slightly complicated example is given below. This program
+creates 3 windows which can be cycled through using tab. Have a
+look at the code.</p>
+<div class="EXAMPLE"><a name="PPABR" id="PPABR"></a>
+<p><b>Example 15. Panel Window Browsing Example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <panel.h>
+
+#define NLINES 10
+#define NCOLS 40
+
+void init_wins(WINDOW **wins, int n);
+void win_show(WINDOW *win, char *label, int label_color);
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+int main()
+{ WINDOW *my_wins[3];
+ PANEL *my_panels[3];
+ PANEL *top;
+ int ch;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize all the colors */
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_GREEN, COLOR_BLACK);
+ init_pair(3, COLOR_BLUE, COLOR_BLACK);
+ init_pair(4, COLOR_CYAN, COLOR_BLACK);
+
+ init_wins(my_wins, 3);
+
+ /* Attach a panel to each window */ /* Order is bottom up */
+ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+
+ /* Set up the user pointers to the next panel */
+ set_panel_userptr(my_panels[0], my_panels[1]);
+ set_panel_userptr(my_panels[1], my_panels[2]);
+ set_panel_userptr(my_panels[2], my_panels[0]);
+
+ /* Update the stacking order. 2nd panel will be on top */
+ update_panels();
+
+ /* Show it on the screen */
+ attron(COLOR_PAIR(4));
+ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+ attroff(COLOR_PAIR(4));
+ doupdate();
+
+ top = my_panels[2];
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case 9:
+ top = (PANEL *)panel_userptr(top);
+ top_panel(top);
+ break;
+ }
+ update_panels();
+ doupdate();
+ }
+ endwin();
+ return 0;
+}
+
+/* Put all the windows */
+void init_wins(WINDOW **wins, int n)
+{ int x, y, i;
+ char label[80];
+
+ y = 2;
+ x = 10;
+ for(i = 0; i < n; ++i)
+ { wins[i] = newwin(NLINES, NCOLS, y, x);
+ sprintf(label, "Window Number %d", i + 1);
+ win_show(wins[i], label, i + 1);
+ y += 3;
+ x += 7;
+ }
+}
+
+/* Show the window with a border and a label */
+void win_show(WINDOW *win, char *label, int label_color)
+{ int startx, starty, height, width;
+
+ getbegyx(win, starty, startx);
+ getmaxyx(win, height, width);
+
+ box(win, 0, 0);
+ mvwaddch(win, 2, 0, ACS_LTEE);
+ mvwhline(win, 2, 1, ACS_HLINE, width - 2);
+ mvwaddch(win, 2, width - 1, ACS_RTEE);
+
+ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ wattron(win, color);
+ mvwprintw(win, y, x, "%s", string);
+ wattroff(win, color);
+ refresh();
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="USERPTRUSING" id="USERPTRUSING">16.4.
+Using User Pointers</a></h3>
+<p>In the above example I used user pointers to find out the next
+window in the cycle. We can attach custom information to the panel
+by specifying a user pointer, which can point to any information
+you want to store. In this case I stored the pointer to the next
+panel in the cycle. User pointer for a panel can be set with the
+function <var class="LITERAL">set_panel_userptr()</var>. It can be
+accessed using the function <var class=
+"LITERAL">panel_userptr()</var> which will return the user pointer
+for the panel given as argument. After finding the next panel in
+the cycle It's brought to the top by the function top_panel(). This
+function brings the panel given as argument to the top of the panel
+stack.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PANELMOVERESIZE" id=
+"PANELMOVERESIZE">16.5. Moving and Resizing Panels</a></h3>
+<p>The function <var class="LITERAL">move_panel()</var> can be used
+to move a panel to the desired location. It does not change the
+position of the panel in the stack. Make sure that you use
+move_panel() instead mvwin() on the window associated with the
+panel.</p>
+<p>Resizing a panel is slightly complex. There is no straight
+forward function just to resize the window associated with a panel.
+A solution to resize a panel is to create a new window with the
+desired sizes, change the window associated with the panel using
+replace_panel(). Don't forget to delete the old window. The window
+associated with a panel can be found by using the function
+panel_window().</p>
+<p>The following program shows these concepts, in supposedly simple
+program. You can cycle through the window with <TAB> as
+usual. To resize or move the active panel press 'r' for resize 'm'
+for moving. Then use arrow keys to resize or move it to the desired
+way and press enter to end your resizing or moving. This example
+makes use of user data to get the required data to do the
+operations.</p>
+<div class="EXAMPLE"><a name="PPARE" id="PPARE"></a>
+<p><b>Example 16. Panel Moving and Resizing example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <panel.h>
+
+typedef struct _PANEL_DATA {
+ int x, y, w, h;
+ char label[80];
+ int label_color;
+ PANEL *next;
+}PANEL_DATA;
+
+#define NLINES 10
+#define NCOLS 40
+
+void init_wins(WINDOW **wins, int n);
+void win_show(WINDOW *win, char *label, int label_color);
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+void set_user_ptrs(PANEL **panels, int n);
+
+int main()
+{ WINDOW *my_wins[3];
+ PANEL *my_panels[3];
+ PANEL_DATA *top;
+ PANEL *stack_top;
+ WINDOW *temp_win, *old_win;
+ int ch;
+ int newx, newy, neww, newh;
+ int size = FALSE, move = FALSE;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize all the colors */
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_GREEN, COLOR_BLACK);
+ init_pair(3, COLOR_BLUE, COLOR_BLACK);
+ init_pair(4, COLOR_CYAN, COLOR_BLACK);
+
+ init_wins(my_wins, 3);
+
+ /* Attach a panel to each window */ /* Order is bottom up */
+ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+
+ set_user_ptrs(my_panels, 3);
+ /* Update the stacking order. 2nd panel will be on top */
+ update_panels();
+
+ /* Show it on the screen */
+ attron(COLOR_PAIR(4));
+ mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
+ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+ attroff(COLOR_PAIR(4));
+ doupdate();
+
+ stack_top = my_panels[2];
+ top = (PANEL_DATA *)panel_userptr(stack_top);
+ newx = top->x;
+ newy = top->y;
+ neww = top->w;
+ newh = top->h;
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case 9: /* Tab */
+ top = (PANEL_DATA *)panel_userptr(stack_top);
+ top_panel(top->next);
+ stack_top = top->next;
+ top = (PANEL_DATA *)panel_userptr(stack_top);
+ newx = top->x;
+ newy = top->y;
+ neww = top->w;
+ newh = top->h;
+ break;
+ case 'r': /* Re-Size*/
+ size = TRUE;
+ attron(COLOR_PAIR(4));
+ mvprintw(LINES - 4, 0, "Entered Resizing :Use Arrow Keys to resize and press <ENTER> to end resizing");
+ refresh();
+ attroff(COLOR_PAIR(4));
+ break;
+ case 'm': /* Move */
+ attron(COLOR_PAIR(4));
+ mvprintw(LINES - 4, 0, "Entered Moving: Use Arrow Keys to Move and press <ENTER> to end moving");
+ refresh();
+ attroff(COLOR_PAIR(4));
+ move = TRUE;
+ break;
+ case KEY_LEFT:
+ if(size == TRUE)
+ { --newx;
+ ++neww;
+ }
+ if(move == TRUE)
+ --newx;
+ break;
+ case KEY_RIGHT:
+ if(size == TRUE)
+ { ++newx;
+ --neww;
+ }
+ if(move == TRUE)
+ ++newx;
+ break;
+ case KEY_UP:
+ if(size == TRUE)
+ { --newy;
+ ++newh;
+ }
+ if(move == TRUE)
+ --newy;
+ break;
+ case KEY_DOWN:
+ if(size == TRUE)
+ { ++newy;
+ --newh;
+ }
+ if(move == TRUE)
+ ++newy;
+ break;
+ case 10: /* Enter */
+ move(LINES - 4, 0);
+ clrtoeol();
+ refresh();
+ if(size == TRUE)
+ { old_win = panel_window(stack_top);
+ temp_win = newwin(newh, neww, newy, newx);
+ replace_panel(stack_top, temp_win);
+ win_show(temp_win, top->label, top->label_color);
+ delwin(old_win);
+ size = FALSE;
+ }
+ if(move == TRUE)
+ { move_panel(stack_top, newy, newx);
+ move = FALSE;
+ }
+ break;
+
+ }
+ attron(COLOR_PAIR(4));
+ mvprintw(LINES - 3, 0, "Use 'm' for moving, 'r' for resizing");
+ mvprintw(LINES - 2, 0, "Use tab to browse through the windows (F1 to Exit)");
+ attroff(COLOR_PAIR(4));
+ refresh();
+ update_panels();
+ doupdate();
+ }
+ endwin();
+ return 0;
+}
+
+/* Put all the windows */
+void init_wins(WINDOW **wins, int n)
+{ int x, y, i;
+ char label[80];
+
+ y = 2;
+ x = 10;
+ for(i = 0; i < n; ++i)
+ { wins[i] = newwin(NLINES, NCOLS, y, x);
+ sprintf(label, "Window Number %d", i + 1);
+ win_show(wins[i], label, i + 1);
+ y += 3;
+ x += 7;
+ }
+}
+
+/* Set the PANEL_DATA structures for individual panels */
+void set_user_ptrs(PANEL **panels, int n)
+{ PANEL_DATA *ptrs;
+ WINDOW *win;
+ int x, y, w, h, i;
+ char temp[80];
+
+ ptrs = (PANEL_DATA *)calloc(n, sizeof(PANEL_DATA));
+
+ for(i = 0;i < n; ++i)
+ { win = panel_window(panels[i]);
+ getbegyx(win, y, x);
+ getmaxyx(win, h, w);
+ ptrs[i].x = x;
+ ptrs[i].y = y;
+ ptrs[i].w = w;
+ ptrs[i].h = h;
+ sprintf(temp, "Window Number %d", i + 1);
+ strcpy(ptrs[i].label, temp);
+ ptrs[i].label_color = i + 1;
+ if(i + 1 == n)
+ ptrs[i].next = panels[0];
+ else
+ ptrs[i].next = panels[i + 1];
+ set_panel_userptr(panels[i], &ptrs[i]);
+ }
+}
+
+/* Show the window with a border and a label */
+void win_show(WINDOW *win, char *label, int label_color)
+{ int startx, starty, height, width;
+
+ getbegyx(win, starty, startx);
+ getmaxyx(win, height, width);
+
+ box(win, 0, 0);
+ mvwaddch(win, 2, 0, ACS_LTEE);
+ mvwhline(win, 2, 1, ACS_HLINE, width - 2);
+ mvwaddch(win, 2, width - 1, ACS_RTEE);
+
+ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ wattron(win, color);
+ mvwprintw(win, y, x, "%s", string);
+ wattroff(win, color);
+ refresh();
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>Concentrate on the main while loop. Once it finds out the type
+of key pressed, it takes appropriate action. If 'r' is pressed
+resizing mode is started. After this the new sizes are updated as
+the user presses the arrow keys. When the user presses
+<ENTER> present selection ends and panel is resized by using
+the concept explained. While in resizing mode the program doesn't
+show how the window is getting resized. It's left as an exercise to
+the reader to print a dotted border while it gets resized to a new
+position.</p>
+<p>When the user presses 'm' the move mode starts. This is a bit
+simpler than resizing. As the arrow keys are pressed the new
+position is updated and pressing of <ENTER> causes the panel
+to be moved by calling the function move_panel().</p>
+<p>In this program the user data which is represented as
+PANEL_DATA, plays very important role in finding the associated
+information with a panel. As written in the comments, the
+PANEL_DATA stores the panel sizes, label, label color and a pointer
+to the next panel in the cycle.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PANELSHOWHIDE" id="PANELSHOWHIDE">16.6.
+Hiding and Showing Panels</a></h3>
+<p>A Panel can be hidden by using the function hide_panel(). This
+function merely removes it form the stack of panels, thus hiding it
+on the screen once you do update_panels() and doupdate(). It
+doesn't destroy the PANEL structure associated with the hidden
+panel. It can be shown again by using the show_panel()
+function.</p>
+<p>The following program shows the hiding of panels. Press 'a' or
+'b' or 'c' to show or hide first, second and third windows
+respectively. It uses a user data with a small variable hide, which
+keeps track of whether the window is hidden or not. For some reason
+the function <var class="LITERAL">panel_hidden()</var> which tells
+whether a panel is hidden or not is not working. A bug report was
+also presented by Michael Andres <a href=
+"http://www.geocrawler.com/archives/3/344/1999/9/0/2643549/"
+target="_top">here</a></p>
+<div class="EXAMPLE"><a name="PPAHI" id="PPAHI"></a>
+<p><b>Example 17. Panel Hiding and Showing example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <panel.h>
+
+typedef struct _PANEL_DATA {
+ int hide; /* TRUE if panel is hidden */
+}PANEL_DATA;
+
+#define NLINES 10
+#define NCOLS 40
+
+void init_wins(WINDOW **wins, int n);
+void win_show(WINDOW *win, char *label, int label_color);
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+int main()
+{ WINDOW *my_wins[3];
+ PANEL *my_panels[3];
+ PANEL_DATA panel_datas[3];
+ PANEL_DATA *temp;
+ int ch;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize all the colors */
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_GREEN, COLOR_BLACK);
+ init_pair(3, COLOR_BLUE, COLOR_BLACK);
+ init_pair(4, COLOR_CYAN, COLOR_BLACK);
+
+ init_wins(my_wins, 3);
+
+ /* Attach a panel to each window */ /* Order is bottom up */
+ my_panels[0] = new_panel(my_wins[0]); /* Push 0, order: stdscr-0 */
+ my_panels[1] = new_panel(my_wins[1]); /* Push 1, order: stdscr-0-1 */
+ my_panels[2] = new_panel(my_wins[2]); /* Push 2, order: stdscr-0-1-2 */
+
+ /* Initialize panel datas saying that nothing is hidden */
+ panel_datas[0].hide = FALSE;
+ panel_datas[1].hide = FALSE;
+ panel_datas[2].hide = FALSE;
+
+ set_panel_userptr(my_panels[0], &panel_datas[0]);
+ set_panel_userptr(my_panels[1], &panel_datas[1]);
+ set_panel_userptr(my_panels[2], &panel_datas[2]);
+
+ /* Update the stacking order. 2nd panel will be on top */
+ update_panels();
+
+ /* Show it on the screen */
+ attron(COLOR_PAIR(4));
+ mvprintw(LINES - 3, 0, "Show or Hide a window with 'a'(first window) 'b'(Second Window) 'c'(Third Window)");
+ mvprintw(LINES - 2, 0, "F1 to Exit");
+
+ attroff(COLOR_PAIR(4));
+ doupdate();
+
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case 'a':
+ temp = (PANEL_DATA *)panel_userptr(my_panels[0]);
+ if(temp->hide == FALSE)
+ { hide_panel(my_panels[0]);
+ temp->hide = TRUE;
+ }
+ else
+ { show_panel(my_panels[0]);
+ temp->hide = FALSE;
+ }
+ break;
+ case 'b':
+ temp = (PANEL_DATA *)panel_userptr(my_panels[1]);
+ if(temp->hide == FALSE)
+ { hide_panel(my_panels[1]);
+ temp->hide = TRUE;
+ }
+ else
+ { show_panel(my_panels[1]);
+ temp->hide = FALSE;
+ }
+ break;
+ case 'c':
+ temp = (PANEL_DATA *)panel_userptr(my_panels[2]);
+ if(temp->hide == FALSE)
+ { hide_panel(my_panels[2]);
+ temp->hide = TRUE;
+ }
+ else
+ { show_panel(my_panels[2]);
+ temp->hide = FALSE;
+ }
+ break;
+ }
+ update_panels();
+ doupdate();
+ }
+ endwin();
+ return 0;
+}
+
+/* Put all the windows */
+void init_wins(WINDOW **wins, int n)
+{ int x, y, i;
+ char label[80];
+
+ y = 2;
+ x = 10;
+ for(i = 0; i < n; ++i)
+ { wins[i] = newwin(NLINES, NCOLS, y, x);
+ sprintf(label, "Window Number %d", i + 1);
+ win_show(wins[i], label, i + 1);
+ y += 3;
+ x += 7;
+ }
+}
+
+/* Show the window with a border and a label */
+void win_show(WINDOW *win, char *label, int label_color)
+{ int startx, starty, height, width;
+
+ getbegyx(win, starty, startx);
+ getmaxyx(win, height, width);
+
+ box(win, 0, 0);
+ mvwaddch(win, 2, 0, ACS_LTEE);
+ mvwhline(win, 2, 1, ACS_HLINE, width - 2);
+ mvwaddch(win, 2, width - 1, ACS_RTEE);
+
+ print_in_middle(win, 1, 0, width, label, COLOR_PAIR(label_color));
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ wattron(win, color);
+ mvwprintw(win, y, x, "%s", string);
+ wattroff(win, color);
+ refresh();
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PANELABOVE" id="PANELABOVE">16.7.
+panel_above() and panel_below() Functions</a></h3>
+<p>The functions <var class="LITERAL">panel_above()</var> and
+<var class="LITERAL">panel_below()</var> can be used to find out
+the panel above and below a panel. If the argument to these
+functions is NULL, then they return a pointer to bottom panel and
+top panel respectively.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="MENUS" id="MENUS">17. Menus
+Library</a></h2>
+<p>The menus library provides a nice extension to basic curses,
+through which you can create menus. It provides a set of functions
+to create menus. But they have to be customized to give a nicer
+look, with colors etc. Let's get into the details.</p>
+<p>A menu is a screen display that assists the user to choose some
+subset of a given set of items. To put it simple, a menu is a
+collection of items from which one or more items can be chosen.
+Some readers might not be aware of multiple item selection
+capability. Menu library provides functionality to write menus from
+which the user can chose more than one item as the preferred
+choice. This is dealt with in a later section. Now it is time for
+some rudiments.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MENUBASICS" id="MENUBASICS">17.1. The
+Basics</a></h3>
+<p>To create menus, you first create items, and then post the menu
+to the display. After that, all the processing of user responses is
+done in an elegant function menu_driver() which is the work horse
+of any menu program.</p>
+<p>The general flow of control of a menu program looks like
+this.</p>
+<ol type="1">
+<li>
+<p>Initialize curses</p>
+</li>
+<li>
+<p>Create items using new_item(). You can specify a name and
+description for the items.</p>
+</li>
+<li>
+<p>Create the menu with new_menu() by specifying the items to be
+attached with.</p>
+</li>
+<li>
+<p>Post the menu with menu_post() and refresh the screen.</p>
+</li>
+<li>
+<p>Process the user requests with a loop and do necessary updates
+to menu with menu_driver.</p>
+</li>
+<li>
+<p>Unpost the menu with menu_unpost()</p>
+</li>
+<li>
+<p>Free the memory allocated to menu by free_menu()</p>
+</li>
+<li>
+<p>Free the memory allocated to the items with free_item()</p>
+</li>
+<li>
+<p>End curses</p>
+</li>
+</ol>
+<p>Let's see a program which prints a simple menu and updates the
+current selection with up, down arrows.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="COMPILEMENUS" id="COMPILEMENUS">17.2.
+Compiling With the Menu Library</a></h3>
+<p>To use menu library functions, you have to include menu.h and to
+link the program with menu library the flag -lmenu should be added
+along with -lncurses in that order.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> #include <menu.h>
+ .
+ .
+ .
+
+ compile and link: gcc <program file> -lmenu -lncurses</font>
+</pre></td>
+</tr>
+</table>
+<div class="EXAMPLE"><a name="MMESI" id="MMESI"></a>
+<p><b>Example 18. Menu Basics</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <curses.h>
+#include <menu.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD 4
+
+char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Exit",
+ };
+
+int main()
+{ ITEM **my_items;
+ int c;
+ MENU *my_menu;
+ int n_choices, i;
+ ITEM *cur_item;
+
+
+ initscr();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+
+ for(i = 0; i < n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+ my_items[n_choices] = (ITEM *)NULL;
+
+ my_menu = new_menu((ITEM **)my_items);
+ mvprintw(LINES - 2, 0, "F1 to Exit");
+ post_menu(my_menu);
+ refresh();
+
+ while((c = getch()) != KEY_F(1))
+ { switch(c)
+ { case KEY_DOWN:
+ menu_driver(my_menu, REQ_DOWN_ITEM);
+ break;
+ case KEY_UP:
+ menu_driver(my_menu, REQ_UP_ITEM);
+ break;
+ }
+ }
+
+ free_item(my_items[0]);
+ free_item(my_items[1]);
+ free_menu(my_menu);
+ endwin();
+}
+ </span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>This program demonstrates the basic concepts involved in
+creating a menu using menus library. First we create the items
+using new_item() and then attach them to the menu with new_menu()
+function. After posting the menu and refreshing the screen, the
+main processing loop starts. It reads user input and takes
+corresponding action. The function menu_driver() is the main work
+horse of the menu system. The second parameter to this function
+tells what's to be done with the menu. According to the parameter,
+menu_driver() does the corresponding task. The value can be either
+a menu navigational request, an ascii character, or a KEY_MOUSE
+special key associated with a mouse event.</p>
+<p>The menu_driver accepts following navigational requests.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> REQ_LEFT_ITEM Move left to an item.
+ REQ_RIGHT_ITEM Move right to an item.
+ REQ_UP_ITEM Move up to an item.
+ REQ_DOWN_ITEM Move down to an item.
+ REQ_SCR_ULINE Scroll up a line.
+ REQ_SCR_DLINE Scroll down a line.
+ REQ_SCR_DPAGE Scroll down a page.
+ REQ_SCR_UPAGE Scroll up a page.
+ REQ_FIRST_ITEM Move to the first item.
+ REQ_LAST_ITEM Move to the last item.
+ REQ_NEXT_ITEM Move to the next item.
+ REQ_PREV_ITEM Move to the previous item.
+ REQ_TOGGLE_ITEM Select/deselect an item.
+ REQ_CLEAR_PATTERN Clear the menu pattern buffer.
+ REQ_BACK_PATTERN Delete the previous character from the pattern buffer.
+ REQ_NEXT_MATCH Move to the next item matching the pattern match.
+ REQ_PREV_MATCH Move to the previous item matching the pattern match. </font>
+</pre></td>
+</tr>
+</table>
+<p>Don't get overwhelmed by the number of options. We will see them
+slowly one after another. The options of interest in this example
+are REQ_UP_ITEM and REQ_DOWN_ITEM. These two options when passed to
+menu_driver, menu driver updates the current item to one item up or
+down respectively.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MENUDRIVER" id="MENUDRIVER">17.3. Menu
+Driver: The work horse of the menu system</a></h3>
+<p>As you have seen in the above example, menu_driver plays an
+important role in updating the menu. It is very important to
+understand various options it takes and what they do. As explained
+above, the second parameter to menu_driver() can be either a
+navigational request, a printable character or a KEY_MOUSE key.
+Let's dissect the different navigational requests.</p>
+<ul>
+<li>
+<p><em>REQ_LEFT_ITEM and REQ_RIGHT_ITEM</em></p>
+<p>A Menu can be displayed with multiple columns for more than one
+item. This can be done by using the <var class=
+"LITERAL">menu_format()</var>function. When a multi columnar menu
+is displayed these requests cause the menu driver to move the
+current selection to left or right.</p>
+</li>
+<li>
+<p><em>REQ_UP_ITEM and REQ_DOWN_ITEM</em></p>
+<p>These two options you have seen in the above example. These
+options when given, makes the menu_driver to move the current
+selection to an item up or down.</p>
+</li>
+<li>
+<p><em>REQ_SCR_* options</em></p>
+<p>The four options REQ_SCR_ULINE, REQ_SCR_DLINE, REQ_SCR_DPAGE,
+REQ_SCR_UPAGE are related to scrolling. If all the items in the
+menu cannot be displayed in the menu sub window, then the menu is
+scrollable. These requests can be given to the menu_driver to do
+the scrolling either one line up, down or one page down or up
+respectively.</p>
+</li>
+<li>
+<p><em>REQ_FIRST_ITEM, REQ_LAST_ITEM, REQ_NEXT_ITEM and
+REQ_PREV_ITEM</em></p>
+<p>These requests are self explanatory.</p>
+</li>
+<li>
+<p><em>REQ_TOGGLE_ITEM</em></p>
+<p>This request when given, toggles the present selection. This
+option is to be used only in a multi valued menu. So to use this
+request the option O_ONEVALUE must be off. This option can be made
+off or on with set_menu_opts().</p>
+</li>
+<li>
+<p><em>Pattern Requests</em></p>
+<p>Every menu has an associated pattern buffer, which is used to
+find the nearest match to the ascii characters entered by the user.
+Whenever ascii characters are given to menu_driver, it puts in to
+the pattern buffer. It also tries to find the nearest match to the
+pattern in the items list and moves current selection to that item.
+The request REQ_CLEAR_PATTERN clears the pattern buffer. The
+request REQ_BACK_PATTERN deletes the previous character in the
+pattern buffer. In case the pattern matches more than one item then
+the matched items can be cycled through REQ_NEXT_MATCH and
+REQ_PREV_MATCH which move the current selection to the next and
+previous matches respectively.</p>
+</li>
+<li>
+<p><em>Mouse Requests</em></p>
+<p>In case of KEY_MOUSE requests, according to the mouse position
+an action is taken accordingly. The action to be taken is explained
+in the man page as,</p>
+<table border="0" bgcolor="#E0E0E0" width="90%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"><em> If the second argument is the KEY_MOUSE special key, the
+ associated mouse event is translated into one of the above
+ pre-defined requests. Currently only clicks in the user
+ window (e.g. inside the menu display area or the decora­
+ tion window) are handled. If you click above the display
+ region of the menu, a REQ_SCR_ULINE is generated, if you
+ doubleclick a REQ_SCR_UPAGE is generated and if you
+ tripleclick a REQ_FIRST_ITEM is generated. If you click
+ below the display region of the menu, a REQ_SCR_DLINE is
+ generated, if you doubleclick a REQ_SCR_DPAGE is generated
+ and if you tripleclick a REQ_LAST_ITEM is generated. If
+ you click at an item inside the display area of the menu,
+ the menu cursor is positioned to that item.</em></font>
+</pre></td>
+</tr>
+</table>
+</li>
+</ul>
+<p>Each of the above requests will be explained in the following
+lines with several examples whenever appropriate.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MENUWINDOWS" id="MENUWINDOWS">17.4. Menu
+Windows</a></h3>
+<p>Every menu created is associated with a window and a sub window.
+The menu window displays any title or border associated with the
+menu. The menu sub window displays the menu items currently
+available for selection. But we didn't specify any window or sub
+window in the simple example. When a window is not specified,
+stdscr is taken as the main window, and then menu system calculates
+the sub window size required for the display of items. Then items
+are displayed in the calculated sub window. So let's play with
+these windows and display a menu with a border and a title.</p>
+<div class="EXAMPLE"><a name="MMEWI" id="MMEWI"></a>
+<p><b>Example 19. Menu Windows Usage example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <menu.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD 4
+
+char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Exit",
+ (char *)NULL,
+ };
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+int main()
+{ ITEM **my_items;
+ int c;
+ MENU *my_menu;
+ WINDOW *my_menu_win;
+ int n_choices, i;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+
+ /* Create items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+ for(i = 0; i < n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+
+ /* Crate menu */
+ my_menu = new_menu((ITEM **)my_items);
+
+ /* Create the window to be associated with the menu */
+ my_menu_win = newwin(10, 40, 4, 4);
+ keypad(my_menu_win, TRUE);
+
+ /* Set main window and sub window */
+ set_menu_win(my_menu, my_menu_win);
+ set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
+
+ /* Set menu mark to the string " * " */
+ set_menu_mark(my_menu, " * ");
+
+ /* Print a border around the main window and print a title */
+ box(my_menu_win, 0, 0);
+ print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
+ mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
+ mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
+ mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
+ mvprintw(LINES - 2, 0, "F1 to exit");
+ refresh();
+
+ /* Post the menu */
+ post_menu(my_menu);
+ wrefresh(my_menu_win);
+
+ while((c = wgetch(my_menu_win)) != KEY_F(1))
+ { switch(c)
+ { case KEY_DOWN:
+ menu_driver(my_menu, REQ_DOWN_ITEM);
+ break;
+ case KEY_UP:
+ menu_driver(my_menu, REQ_UP_ITEM);
+ break;
+ }
+ wrefresh(my_menu_win);
+ }
+
+ /* Unpost and free all the memory taken up */
+ unpost_menu(my_menu);
+ free_menu(my_menu);
+ for(i = 0; i < n_choices; ++i)
+ free_item(my_items[i]);
+ endwin();
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ wattron(win, color);
+ mvwprintw(win, y, x, "%s", string);
+ wattroff(win, color);
+ refresh();
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>This example creates a menu with a title, border, a fancy line
+separating title and the items. As you can see, in order to attach
+a window to a menu the function set_menu_win() has to be used. Then
+we attach the sub window also. This displays the items in the sub
+window. You can also set the mark string which gets displayed to
+the left of the selected item with set_menu_mark().</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="SCROLLMENUS" id="SCROLLMENUS">17.5.
+Scrolling Menus</a></h3>
+<p>If the sub window given for a window is not big enough to show
+all the items, then the menu will be scrollable. When you are on
+the last item in the present list, if you send REQ_DOWN_ITEM, it
+gets translated into REQ_SCR_DLINE and the menu scrolls by one
+item. You can manually give REQ_SCR_ operations to do scrolling.
+Let's see how it can be done.</p>
+<div class="EXAMPLE"><a name="MMESC" id="MMESC"></a>
+<p><b>Example 20. Scrolling Menus example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <curses.h>
+#include <menu.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD 4
+
+char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Choice 5",
+ "Choice 6",
+ "Choice 7",
+ "Choice 8",
+ "Choice 9",
+ "Choice 10",
+ "Exit",
+ (char *)NULL,
+ };
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+int main()
+{ ITEM **my_items;
+ int c;
+ MENU *my_menu;
+ WINDOW *my_menu_win;
+ int n_choices, i;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_CYAN, COLOR_BLACK);
+
+ /* Create items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+ for(i = 0; i < n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+
+ /* Crate menu */
+ my_menu = new_menu((ITEM **)my_items);
+
+ /* Create the window to be associated with the menu */
+ my_menu_win = newwin(10, 40, 4, 4);
+ keypad(my_menu_win, TRUE);
+
+ /* Set main window and sub window */
+ set_menu_win(my_menu, my_menu_win);
+ set_menu_sub(my_menu, derwin(my_menu_win, 6, 38, 3, 1));
+ set_menu_format(my_menu, 5, 1);
+
+ /* Set menu mark to the string " * " */
+ set_menu_mark(my_menu, " * ");
+
+ /* Print a border around the main window and print a title */
+ box(my_menu_win, 0, 0);
+ print_in_middle(my_menu_win, 1, 0, 40, "My Menu", COLOR_PAIR(1));
+ mvwaddch(my_menu_win, 2, 0, ACS_LTEE);
+ mvwhline(my_menu_win, 2, 1, ACS_HLINE, 38);
+ mvwaddch(my_menu_win, 2, 39, ACS_RTEE);
+
+ /* Post the menu */
+ post_menu(my_menu);
+ wrefresh(my_menu_win);
+
+ attron(COLOR_PAIR(2));
+ mvprintw(LINES - 2, 0, "Use PageUp and PageDown to scoll down or up a page of items");
+ mvprintw(LINES - 1, 0, "Arrow Keys to navigate (F1 to Exit)");
+ attroff(COLOR_PAIR(2));
+ refresh();
+
+ while((c = wgetch(my_menu_win)) != KEY_F(1))
+ { switch(c)
+ { case KEY_DOWN:
+ menu_driver(my_menu, REQ_DOWN_ITEM);
+ break;
+ case KEY_UP:
+ menu_driver(my_menu, REQ_UP_ITEM);
+ break;
+ case KEY_NPAGE:
+ menu_driver(my_menu, REQ_SCR_DPAGE);
+ break;
+ case KEY_PPAGE:
+ menu_driver(my_menu, REQ_SCR_UPAGE);
+ break;
+ }
+ wrefresh(my_menu_win);
+ }
+
+ /* Unpost and free all the memory taken up */
+ unpost_menu(my_menu);
+ free_menu(my_menu);
+ for(i = 0; i < n_choices; ++i)
+ free_item(my_items[i]);
+ endwin();
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ wattron(win, color);
+ mvwprintw(win, y, x, "%s", string);
+ wattroff(win, color);
+ refresh();
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>This program is self-explanatory. In this example the number of
+choices has been increased to ten, which is larger than our sub
+window size which can hold 6 items. This message has to be
+explicitly conveyed to the menu system with the function
+set_menu_format(). In here we specify the number of rows and
+columns we want to be displayed for a single page. We can specify
+any number of items to be shown, in the rows variables, if it is
+less than the height of the sub window. If the key pressed by the
+user is a PAGE UP or PAGE DOWN, the menu is scrolled a page due to
+the requests (REQ_SCR_DPAGE and REQ_SCR_UPAGE) given to
+menu_driver().</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MULTICOLUMN" id="MULTICOLUMN">17.6.
+Multi Columnar Menus</a></h3>
+<p>In the above example you have seen how to use the function
+set_menu_format(). I didn't mention what the cols variable (third
+parameter) does. Well, If your sub window is wide enough, you can
+opt to display more than one item per row. This can be specified in
+the cols variable. To make things simpler, the following example
+doesn't show descriptions for the items.</p>
+<div class="EXAMPLE"><a name="MMEMUCO" id="MMEMUCO"></a>
+<p><b>Example 21. Milt Columnar Menus Example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <curses.h>
+#include <menu.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD 4
+
+char *choices[] = {
+ "Choice 1", "Choice 2", "Choice 3", "Choice 4", "Choice 5",
+ "Choice 6", "Choice 7", "Choice 8", "Choice 9", "Choice 10",
+ "Choice 11", "Choice 12", "Choice 13", "Choice 14", "Choice 15",
+ "Choice 16", "Choice 17", "Choice 18", "Choice 19", "Choice 20",
+ "Exit",
+ (char *)NULL,
+ };
+
+int main()
+{ ITEM **my_items;
+ int c;
+ MENU *my_menu;
+ WINDOW *my_menu_win;
+ int n_choices, i;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_CYAN, COLOR_BLACK);
+
+ /* Create items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices, sizeof(ITEM *));
+ for(i = 0; i < n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+
+ /* Crate menu */
+ my_menu = new_menu((ITEM **)my_items);
+
+ /* Set menu option not to show the description */
+ menu_opts_off(my_menu, O_SHOWDESC);
+
+ /* Create the window to be associated with the menu */
+ my_menu_win = newwin(10, 70, 4, 4);
+ keypad(my_menu_win, TRUE);
+
+ /* Set main window and sub window */
+ set_menu_win(my_menu, my_menu_win);
+ set_menu_sub(my_menu, derwin(my_menu_win, 6, 68, 3, 1));
+ set_menu_format(my_menu, 5, 3);
+ set_menu_mark(my_menu, " * ");
+
+ /* Print a border around the main window and print a title */
+ box(my_menu_win, 0, 0);
+
+ attron(COLOR_PAIR(2));
+ mvprintw(LINES - 3, 0, "Use PageUp and PageDown to scroll");
+ mvprintw(LINES - 2, 0, "Use Arrow Keys to navigate (F1 to Exit)");
+ attroff(COLOR_PAIR(2));
+ refresh();
+
+ /* Post the menu */
+ post_menu(my_menu);
+ wrefresh(my_menu_win);
+
+ while((c = wgetch(my_menu_win)) != KEY_F(1))
+ { switch(c)
+ { case KEY_DOWN:
+ menu_driver(my_menu, REQ_DOWN_ITEM);
+ break;
+ case KEY_UP:
+ menu_driver(my_menu, REQ_UP_ITEM);
+ break;
+ case KEY_LEFT:
+ menu_driver(my_menu, REQ_LEFT_ITEM);
+ break;
+ case KEY_RIGHT:
+ menu_driver(my_menu, REQ_RIGHT_ITEM);
+ break;
+ case KEY_NPAGE:
+ menu_driver(my_menu, REQ_SCR_DPAGE);
+ break;
+ case KEY_PPAGE:
+ menu_driver(my_menu, REQ_SCR_UPAGE);
+ break;
+ }
+ wrefresh(my_menu_win);
+ }
+
+ /* Unpost and free all the memory taken up */
+ unpost_menu(my_menu);
+ free_menu(my_menu);
+ for(i = 0; i < n_choices; ++i)
+ free_item(my_items[i]);
+ endwin();
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>Watch the function call to set_menu_format(). It specifies the
+number of columns to be 3, thus displaying 3 items per row. We have
+also switched off the showing descriptions with the function
+menu_opts_off(). There are couple of functions set_menu_opts(),
+menu_opts_on() and menu_opts() which can be used to manipulate menu
+options. The following menu options can be specified.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> O_ONEVALUE
+ Only one item can be selected for this menu.
+
+ O_SHOWDESC
+ Display the item descriptions when the menu is
+ posted.
+
+ O_ROWMAJOR
+ Display the menu in row-major order.
+
+ O_IGNORECASE
+ Ignore the case when pattern-matching.
+
+ O_SHOWMATCH
+ Move the cursor to within the item name while pat­
+ tern-matching.
+
+ O_NONCYCLIC
+ Don't wrap around next-item and previous-item,
+ requests to the other end of the menu.</font>
+</pre></td>
+</tr>
+</table>
+<p>All options are on by default. You can switch specific
+attributes on or off with menu_opts_on() and menu_opts_off()
+functions. You can also use set_menu_opts() to directly specify the
+options. The argument to this function should be a OR ed value of
+some of those above constants. The function menu_opts() can be used
+to find out a menu's present options.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MULTIVALUEMENUS" id=
+"MULTIVALUEMENUS">17.7. Multi Valued Menus</a></h3>
+<p>You might be wondering what if you switch off the option
+O_ONEVALUE. Then the menu becomes multi-valued. That means you can
+select more than one item. This brings us to the request
+REQ_TOGGLE_ITEM. Let's see it in action.</p>
+<div class="EXAMPLE"><a name="MMETO" id="MMETO"></a>
+<p><b>Example 22. Multi Valued Menus example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <curses.h>
+#include <menu.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD 4
+
+char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Choice 5",
+ "Choice 6",
+ "Choice 7",
+ "Exit",
+ };
+
+int main()
+{ ITEM **my_items;
+ int c;
+ MENU *my_menu;
+ int n_choices, i;
+ ITEM *cur_item;
+
+ /* Initialize curses */
+ initscr();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+ for(i = 0; i < n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+ my_items[n_choices] = (ITEM *)NULL;
+
+ my_menu = new_menu((ITEM **)my_items);
+
+ /* Make the menu multi valued */
+ menu_opts_off(my_menu, O_ONEVALUE);
+
+ mvprintw(LINES - 3, 0, "Use <SPACE> to select or unselect an item.");
+ mvprintw(LINES - 2, 0, "<ENTER> to see presently selected items(F1 to Exit)");
+ post_menu(my_menu);
+ refresh();
+
+ while((c = getch()) != KEY_F(1))
+ { switch(c)
+ { case KEY_DOWN:
+ menu_driver(my_menu, REQ_DOWN_ITEM);
+ break;
+ case KEY_UP:
+ menu_driver(my_menu, REQ_UP_ITEM);
+ break;
+ case ' ':
+ menu_driver(my_menu, REQ_TOGGLE_ITEM);
+ break;
+ case 10: /* Enter */
+ { char temp[200];
+ ITEM **items;
+
+ items = menu_items(my_menu);
+ temp[0] = '\0';
+ for(i = 0; i < item_count(my_menu); ++i)
+ if(item_value(items[i]) == TRUE)
+ { strcat(temp, item_name(items[i]));
+ strcat(temp, " ");
+ }
+ move(20, 0);
+ clrtoeol();
+ mvprintw(20, 0, temp);
+ refresh();
+ }
+ break;
+ }
+ }
+
+ free_item(my_items[0]);
+ free_item(my_items[1]);
+ free_menu(my_menu);
+ endwin();
+}
+ </span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>Whew, A lot of new functions. Let's take them one after another.
+Firstly, the REQ_TOGGLE_ITEM. In a multi-valued menu, the user
+should be allowed to select or un select more than one item. The
+request REQ_TOGGLE_ITEM toggles the present selection. In this case
+when space is pressed REQ_TOGGLE_ITEM request is sent to
+menu_driver to achieve the result.</p>
+<p>Now when the user presses <ENTER> we show the items he
+presently selected. First we find out the items associated with the
+menu using the function menu_items(). Then we loop through the
+items to find out if the item is selected or not. The function
+item_value() returns TRUE if an item is selected. The function
+item_count() returns the number of items in the menu. The item name
+can be found with item_name(). You can also find the description
+associated with an item using item_description().</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MENUOPT" id="MENUOPT">17.8. Menu
+Options</a></h3>
+<p>Well, by this time you must be itching for some difference in
+your menu, with lots of functionality. I know. You want Colors !!!.
+You want to create nice menus similar to those text mode <a href=
+"http://www.jersey.net/~debinjoe/games/" target="_top">dos
+games</a>. The functions set_menu_fore() and set_menu_back() can be
+used to change the attribute of the selected item and unselected
+item. The names are misleading. They don't change menu's foreground
+or background which would have been useless.</p>
+<p>The function set_menu_grey() can be used to set the display
+attribute for the non-selectable items in the menu. This brings us
+to the interesting option for an item the one and only
+O_SELECTABLE. We can turn it off by the function item_opts_off()
+and after that that item is not selectable. It's like a grayed item
+in those fancy windows menus. Let's put these concepts in practice
+with this example</p>
+<div class="EXAMPLE"><a name="MMEAT" id="MMEAT"></a>
+<p><b>Example 23. Menu Options example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <menu.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD 4
+
+char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Choice 5",
+ "Choice 6",
+ "Choice 7",
+ "Exit",
+ };
+
+int main()
+{ ITEM **my_items;
+ int c;
+ MENU *my_menu;
+ int n_choices, i;
+ ITEM *cur_item;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_GREEN, COLOR_BLACK);
+ init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
+
+ /* Initialize items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+ for(i = 0; i < n_choices; ++i)
+ my_items[i] = new_item(choices[i], choices[i]);
+ my_items[n_choices] = (ITEM *)NULL;
+ item_opts_off(my_items[3], O_SELECTABLE);
+ item_opts_off(my_items[6], O_SELECTABLE);
+
+ /* Create menu */
+ my_menu = new_menu((ITEM **)my_items);
+
+ /* Set fore ground and back ground of the menu */
+ set_menu_fore(my_menu, COLOR_PAIR(1) | A_REVERSE);
+ set_menu_back(my_menu, COLOR_PAIR(2));
+ set_menu_grey(my_menu, COLOR_PAIR(3));
+
+ /* Post the menu */
+ mvprintw(LINES - 3, 0, "Press <ENTER> to see the option selected");
+ mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+ post_menu(my_menu);
+ refresh();
+
+ while((c = getch()) != KEY_F(1))
+ { switch(c)
+ { case KEY_DOWN:
+ menu_driver(my_menu, REQ_DOWN_ITEM);
+ break;
+ case KEY_UP:
+ menu_driver(my_menu, REQ_UP_ITEM);
+ break;
+ case 10: /* Enter */
+ move(20, 0);
+ clrtoeol();
+ mvprintw(20, 0, "Item selected is : %s",
+ item_name(current_item(my_menu)));
+ pos_menu_cursor(my_menu);
+ break;
+ }
+ }
+ unpost_menu(my_menu);
+ for(i = 0; i < n_choices; ++i)
+ free_item(my_items[i]);
+ free_menu(my_menu);
+ endwin();
+}
+ </span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MENUUSERPTR" id="MENUUSERPTR">17.9. The
+useful User Pointer</a></h3>
+<p>We can associate a user pointer with each item in the menu. It
+works the same way as user pointer in panels. It's not touched by
+menu system. You can store any thing you like in that. I usually
+use it to store the function to be executed when the menu option is
+chosen (It's selected and may be the user pressed
+<ENTER>);</p>
+<div class="EXAMPLE"><a name="MMEUS" id="MMEUS"></a>
+<p><b>Example 24. Menu User Pointer Usage</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <curses.h>
+#include <menu.h>
+
+#define ARRAY_SIZE(a) (sizeof(a) / sizeof(a[0]))
+#define CTRLD 4
+
+char *choices[] = {
+ "Choice 1",
+ "Choice 2",
+ "Choice 3",
+ "Choice 4",
+ "Choice 5",
+ "Choice 6",
+ "Choice 7",
+ "Exit",
+ };
+void func(char *name);
+
+int main()
+{ ITEM **my_items;
+ int c;
+ MENU *my_menu;
+ int n_choices, i;
+ ITEM *cur_item;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_GREEN, COLOR_BLACK);
+ init_pair(3, COLOR_MAGENTA, COLOR_BLACK);
+
+ /* Initialize items */
+ n_choices = ARRAY_SIZE(choices);
+ my_items = (ITEM **)calloc(n_choices + 1, sizeof(ITEM *));
+ for(i = 0; i < n_choices; ++i)
+ { my_items[i] = new_item(choices[i], choices[i]);
+ /* Set the user pointer */
+ set_item_userptr(my_items[i], func);
+ }
+ my_items[n_choices] = (ITEM *)NULL;
+
+ /* Create menu */
+ my_menu = new_menu((ITEM **)my_items);
+
+ /* Post the menu */
+ mvprintw(LINES - 3, 0, "Press <ENTER> to see the option selected");
+ mvprintw(LINES - 2, 0, "Up and Down arrow keys to naviage (F1 to Exit)");
+ post_menu(my_menu);
+ refresh();
+
+ while((c = getch()) != KEY_F(1))
+ { switch(c)
+ { case KEY_DOWN:
+ menu_driver(my_menu, REQ_DOWN_ITEM);
+ break;
+ case KEY_UP:
+ menu_driver(my_menu, REQ_UP_ITEM);
+ break;
+ case 10: /* Enter */
+ { ITEM *cur;
+ void (*p)(char *);
+
+ cur = current_item(my_menu);
+ p = item_userptr(cur);
+ p((char *)item_name(cur));
+ pos_menu_cursor(my_menu);
+ break;
+ }
+ break;
+ }
+ }
+ unpost_menu(my_menu);
+ for(i = 0; i < n_choices; ++i)
+ free_item(my_items[i]);
+ free_menu(my_menu);
+ endwin();
+}
+
+void func(char *name)
+{ move(20, 0);
+ clrtoeol();
+ mvprintw(20, 0, "Item selected is : %s", name);
+} </span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="FORMS" id="FORMS">18. Forms
+Library</a></h2>
+<p>Well. If you have seen those forms on web pages which take input
+from users and do various kinds of things, you might be wondering
+how would any one create such forms in text mode display. It's
+quite difficult to write those nifty forms in plain ncurses. Forms
+library tries to provide a basic frame work to build and maintain
+forms with ease. It has lot of features(functions) which manage
+validation, dynamic expansion of fields etc.. Let's see it in full
+flow.</p>
+<p>A form is a collection of fields; each field can be either a
+label(static text) or a data-entry location. The forms also library
+provides functions to divide forms into multiple pages.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="FORMBASICS" id="FORMBASICS">18.1. The
+Basics</a></h3>
+<p>Forms are created in much the same way as menus. First the
+fields related to the form are created with new_field(). You can
+set options for the fields, so that they can be displayed with some
+fancy attributes, validated before the field looses focus etc..
+Then the fields are attached to form. After this, the form can be
+posted to display and is ready to receive inputs. On the similar
+lines to menu_driver(), the form is manipulated with form_driver().
+We can send requests to form_driver to move focus to a certain
+field, move cursor to end of the field etc.. After the user enters
+values in the fields and validation done, form can be unposted and
+memory allocated can be freed.</p>
+<p>The general flow of control of a forms program looks like
+this.</p>
+<ol type="1">
+<li>
+<p>Initialize curses</p>
+</li>
+<li>
+<p>Create fields using new_field(). You can specify the height and
+width of the field, and its position on the form.</p>
+</li>
+<li>
+<p>Create the forms with new_form() by specifying the fields to be
+attached with.</p>
+</li>
+<li>
+<p>Post the form with form_post() and refresh the screen.</p>
+</li>
+<li>
+<p>Process the user requests with a loop and do necessary updates
+to form with form_driver.</p>
+</li>
+<li>
+<p>Unpost the menu with form_unpost()</p>
+</li>
+<li>
+<p>Free the memory allocated to menu by free_form()</p>
+</li>
+<li>
+<p>Free the memory allocated to the items with free_field()</p>
+</li>
+<li>
+<p>End curses</p>
+</li>
+</ol>
+<p>As you can see, working with forms library is much similar to
+handling menu library. The following examples will explore various
+aspects of form processing. Let's start the journey with a simple
+example. first.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="COMPILEFORMS" id="COMPILEFORMS">18.2.
+Compiling With the Forms Library</a></h3>
+<p>To use forms library functions, you have to include form.h and
+to link the program with forms library the flag -lform should be
+added along with -lncurses in that order.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"> #include <form.h>
+ .
+ .
+ .
+
+ compile and link: gcc <program file> -lform -lncurses</font>
+</pre></td>
+</tr>
+</table>
+<div class="EXAMPLE"><a name="FFOSI" id="FFOSI"></a>
+<p><b>Example 25. Forms Basics</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <form.h>
+
+int main()
+{ FIELD *field[3];
+ FORM *my_form;
+ int ch;
+
+ /* Initialize curses */
+ initscr();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize the fields */
+ field[0] = new_field(1, 10, 4, 18, 0, 0);
+ field[1] = new_field(1, 10, 6, 18, 0, 0);
+ field[2] = NULL;
+
+ /* Set field options */
+ set_field_back(field[0], A_UNDERLINE); /* Print a line for the option */
+ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
+ /* Field is filled up */
+ set_field_back(field[1], A_UNDERLINE);
+ field_opts_off(field[1], O_AUTOSKIP);
+
+ /* Create the form and post it */
+ my_form = new_form(field);
+ post_form(my_form);
+ refresh();
+
+ mvprintw(4, 10, "Value 1:");
+ mvprintw(6, 10, "Value 2:");
+ refresh();
+
+ /* Loop through to get user requests */
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case KEY_DOWN:
+ /* Go to next field */
+ form_driver(my_form, REQ_NEXT_FIELD);
+ /* Go to the end of the present buffer */
+ /* Leaves nicely at the last character */
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ case KEY_UP:
+ /* Go to previous field */
+ form_driver(my_form, REQ_PREV_FIELD);
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ default:
+ /* If this is a normal character, it gets */
+ /* Printed */
+ form_driver(my_form, ch);
+ break;
+ }
+ }
+
+ /* Un post form and free the memory */
+ unpost_form(my_form);
+ free_form(my_form);
+ free_field(field[0]);
+ free_field(field[1]);
+
+ endwin();
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>Above example is pretty straight forward. It creates two fields
+with <var class="LITERAL">new_field()</var>. new_field() takes
+height, width, starty, startx, number of offscreen rows and number
+of additional working buffers. The fifth argument number of
+offscreen rows specifies how much of the field to be shown. If it
+is zero, the entire field is always displayed otherwise the form
+will be scrollable when the user accesses not displayed parts of
+the field. The forms library allocates one buffer per field to
+store the data user enters. Using the last parameter to new_field()
+we can specify it to allocate some additional buffers. These can be
+used for any purpose you like.</p>
+<p>After creating the fields, back ground attribute of both of them
+is set to an underscore with set_field_back(). The AUTOSKIP option
+is turned off using field_opts_off(). If this option is turned on,
+focus will move to the next field in the form once the active field
+is filled up completely.</p>
+<p>After attaching the fields to the form, it is posted. Here on,
+user inputs are processed in the while loop, by making
+corresponding requests to form_driver. The details of all the
+requests to the form_driver() are explained later.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PLAYFIELDS" id="PLAYFIELDS">18.3.
+Playing with Fields</a></h3>
+<p>Each form field is associated with a lot of attributes. They can
+be manipulated to get the required effect and to have fun !!!. So
+why wait?</p>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="FETCHINFO" id="FETCHINFO">18.3.1.
+Fetching Size and Location of Field</a></h4>
+<p>The parameters we have given at the time of creation of a field
+can be retrieved with field_info(). It returns height, width,
+starty, startx, number of offscreen rows, and number of additional
+buffers into the parameters given to it. It is a sort of inverse of
+new_field().</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int field_info( FIELD *field, /* field from which to fetch */
+ int *height, *int width, /* field size */
+ int *top, int *left, /* upper left corner */
+ int *offscreen, /* number of offscreen rows */
+ int *nbuf); /* number of working buffers */</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="MOVEFIELD" id="MOVEFIELD">18.3.2. Moving
+the field</a></h4>
+<p>The location of the field can be moved to a different position
+with move_field().</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int move_field( FIELD *field, /* field to alter */
+ int top, int left); /* new upper-left corner */</font>
+</pre></td>
+</tr>
+</table>
+<p>As usual, the changed position can be queried with
+field_infor().</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="JUSTIFYFIELD" id="JUSTIFYFIELD">18.3.3.
+Field Justification</a></h4>
+<p>The justification to be done for the field can be fixed using
+the function set_field_just().</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> int set_field_just(FIELD *field, /* field to alter */
+ int justmode); /* mode to set */
+ int field_just(FIELD *field); /* fetch justify mode of field */</font>
+</pre></td>
+</tr>
+</table>
+<p>The justification mode valued accepted and returned by these
+functions are NO_JUSTIFICATION, JUSTIFY_RIGHT, JUSTIFY_LEFT, or
+JUSTIFY_CENTER.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="FIELDDISPATTRIB" id=
+"FIELDDISPATTRIB">18.3.4. Field Display Attributes</a></h4>
+<p>As you have seen, in the above example, display attribute for
+the fields can be set with set_field_fore() and setfield_back().
+These functions set foreground and background attribute of the
+fields. You can also specify a pad character which will be filled
+in the unfilled portion of the field. The pad character is set with
+a call to set_field_pad(). Default pad value is a space. The
+functions field_fore(), field_back, field_pad() can be used to
+query the present foreground, background attributes and pad
+character for the field. The following list gives the usage of
+functions.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> int set_field_fore(FIELD *field, /* field to alter */
+ chtype attr); /* attribute to set */
+
+chtype field_fore(FIELD *field); /* field to query */
+ /* returns foreground attribute */
+
+int set_field_back(FIELD *field, /* field to alter */
+ chtype attr); /* attribute to set */
+
+chtype field_back(FIELD *field); /* field to query */
+ /* returns background attribute */
+
+int set_field_pad(FIELD *field, /* field to alter */
+ int pad); /* pad character to set */
+
+chtype field_pad(FIELD *field); /* field to query */
+ /* returns present pad character */ </font>
+</pre></td>
+</tr>
+</table>
+<p>Though above functions seem quite simple, using colors with
+set_field_fore() may be frustrating in the beginning. Let me first
+explain about foreground and background attributes of a field. The
+foreground attribute is associated with the character. That means a
+character in the field is printed with the attribute you have set
+with set_field_fore(). Background attribute is the attribute used
+to fill background of field, whether any character is there or not.
+So what about colors? Since colors are always defined in pairs,
+what is the right way to display colored fields? Here's an example
+clarifying color attributes.</p>
+<div class="EXAMPLE"><a name="FFOAT" id="FFOAT"></a>
+<p><b>Example 26. Form Attributes example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <form.h>
+
+int main()
+{ FIELD *field[3];
+ FORM *my_form;
+ int ch;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize few color pairs */
+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
+ init_pair(2, COLOR_WHITE, COLOR_BLUE);
+
+ /* Initialize the fields */
+ field[0] = new_field(1, 10, 4, 18, 0, 0);
+ field[1] = new_field(1, 10, 6, 18, 0, 0);
+ field[2] = NULL;
+
+ /* Set field options */
+ set_field_fore(field[0], COLOR_PAIR(1));/* Put the field with blue background */
+ set_field_back(field[0], COLOR_PAIR(2));/* and white foreground (characters */
+ /* are printed in white */
+ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
+ /* Field is filled up */
+ set_field_back(field[1], A_UNDERLINE);
+ field_opts_off(field[1], O_AUTOSKIP);
+
+ /* Create the form and post it */
+ my_form = new_form(field);
+ post_form(my_form);
+ refresh();
+
+ set_current_field(my_form, field[0]); /* Set focus to the colored field */
+ mvprintw(4, 10, "Value 1:");
+ mvprintw(6, 10, "Value 2:");
+ mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
+ refresh();
+
+ /* Loop through to get user requests */
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case KEY_DOWN:
+ /* Go to next field */
+ form_driver(my_form, REQ_NEXT_FIELD);
+ /* Go to the end of the present buffer */
+ /* Leaves nicely at the last character */
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ case KEY_UP:
+ /* Go to previous field */
+ form_driver(my_form, REQ_PREV_FIELD);
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ default:
+ /* If this is a normal character, it gets */
+ /* Printed */
+ form_driver(my_form, ch);
+ break;
+ }
+ }
+
+ /* Un post form and free the memory */
+ unpost_form(my_form);
+ free_form(my_form);
+ free_field(field[0]);
+ free_field(field[1]);
+
+ endwin();
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>Play with the color pairs and try to understand the foreground
+and background attributes. In my programs using color attributes, I
+usually set only the background with set_field_back(). Curses
+simply doesn't allow defining individual color attributes.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="FIELDOPTIONBITS" id=
+"FIELDOPTIONBITS">18.3.5. Field Option Bits</a></h4>
+<p>There is also a large collection of field option bits you can
+set to control various aspects of forms processing. You can
+manipulate them with these functions:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_opts(FIELD *field, /* field to alter */
+ int attr); /* attribute to set */
+
+int field_opts_on(FIELD *field, /* field to alter */
+ int attr); /* attributes to turn on */
+
+int field_opts_off(FIELD *field, /* field to alter */
+ int attr); /* attributes to turn off */
+
+int field_opts(FIELD *field); /* field to query */ </font>
+</pre></td>
+</tr>
+</table>
+<p>The function set_field_opts() can be used to directly set
+attributes of a field or you can choose to switch a few attributes
+on and off with field_opts_on() and field_opts_off() selectively.
+Anytime you can query the attributes of a field with field_opts().
+The following is the list of available options. By default, all
+options are on.</p>
+<div class="VARIABLELIST">
+<dl>
+<dt>O_VISIBLE</dt>
+<dd>
+<p>Controls whether the field is visible on the screen. Can be used
+during form processing to hide or pop up fields depending on the
+value of parent fields.</p>
+</dd>
+<dt>O_ACTIVE</dt>
+<dd>
+<p>Controls whether the field is active during forms processing
+(i.e. visited by form navigation keys). Can be used to make labels
+or derived fields with buffer values alterable by the forms
+application, not the user.</p>
+</dd>
+<dt>O_PUBLIC</dt>
+<dd>
+<p>Controls whether data is displayed during field entry. If this
+option is turned off on a field, the library will accept and edit
+data in that field, but it will not be displayed and the visible
+field cursor will not move. You can turn off the O_PUBLIC bit to
+define password fields.</p>
+</dd>
+<dt>O_EDIT</dt>
+<dd>
+<p>Controls whether the field's data can be modified. When this
+option is off, all editing requests except <var class=
+"LITERAL">REQ_PREV_CHOICE</var> and <var class=
+"LITERAL">REQ_NEXT_CHOICE</var>will fail. Such read-only fields may
+be useful for help messages.</p>
+</dd>
+<dt>O_WRAP</dt>
+<dd>
+<p>Controls word-wrapping in multi-line fields. Normally, when any
+character of a (blank-separated) word reaches the end of the
+current line, the entire word is wrapped to the next line (assuming
+there is one). When this option is off, the word will be split
+across the line break.</p>
+</dd>
+<dt>O_BLANK</dt>
+<dd>
+<p>Controls field blanking. When this option is on, entering a
+character at the first field position erases the entire field
+(except for the just-entered character).</p>
+</dd>
+<dt>O_AUTOSKIP</dt>
+<dd>
+<p>Controls automatic skip to next field when this one fills.
+Normally, when the forms user tries to type more data into a field
+than will fit, the editing location jumps to next field. When this
+option is off, the user's cursor will hang at the end of the field.
+This option is ignored in dynamic fields that have not reached
+their size limit.</p>
+</dd>
+<dt>O_NULLOK</dt>
+<dd>
+<p>Controls whether validation is applied to blank fields.
+Normally, it is not; the user can leave a field blank without
+invoking the usual validation check on exit. If this option is off
+on a field, exit from it will invoke a validation check.</p>
+</dd>
+<dt>O_PASSOK</dt>
+<dd>
+<p>Controls whether validation occurs on every exit, or only after
+the field is modified. Normally the latter is true. Setting
+O_PASSOK may be useful if your field's validation function may
+change during forms processing.</p>
+</dd>
+<dt>O_STATIC</dt>
+<dd>
+<p>Controls whether the field is fixed to its initial dimensions.
+If you turn this off, the field becomes dynamic and will stretch to
+fit entered data.</p>
+</dd>
+</dl>
+</div>
+<p>A field's options cannot be changed while the field is currently
+selected. However, options may be changed on posted fields that are
+not current.</p>
+<p>The option values are bit-masks and can be composed with
+logical-or in the obvious way. You have seen the usage of switching
+off O_AUTOSKIP option. The following example clarifies usage of
+some more options. Other options are explained where
+appropriate.</p>
+<div class="EXAMPLE"><a name="FFOOP" id="FFOOP"></a>
+<p><b>Example 27. Field Options Usage example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <form.h>
+
+#define STARTX 15
+#define STARTY 4
+#define WIDTH 25
+
+#define N_FIELDS 3
+
+int main()
+{ FIELD *field[N_FIELDS];
+ FORM *my_form;
+ int ch, i;
+
+ /* Initialize curses */
+ initscr();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize the fields */
+ for(i = 0; i < N_FIELDS - 1; ++i)
+ field[i] = new_field(1, WIDTH, STARTY + i * 2, STARTX, 0, 0);
+ field[N_FIELDS - 1] = NULL;
+
+ /* Set field options */
+ set_field_back(field[1], A_UNDERLINE); /* Print a line for the option */
+
+ field_opts_off(field[0], O_ACTIVE); /* This field is a static label */
+ field_opts_off(field[1], O_PUBLIC); /* This filed is like a password field*/
+ field_opts_off(field[1], O_AUTOSKIP); /* To avoid entering the same field */
+ /* after last character is entered */
+
+ /* Create the form and post it */
+ my_form = new_form(field);
+ post_form(my_form);
+ refresh();
+
+ set_field_just(field[0], JUSTIFY_CENTER); /* Center Justification */
+ set_field_buffer(field[0], 0, "This is a static Field");
+ /* Initialize the field */
+ mvprintw(STARTY, STARTX - 10, "Field 1:");
+ mvprintw(STARTY + 2, STARTX - 10, "Field 2:");
+ refresh();
+
+ /* Loop through to get user requests */
+ while((ch = getch()) != KEY_F(1))
+ { switch(ch)
+ { case KEY_DOWN:
+ /* Go to next field */
+ form_driver(my_form, REQ_NEXT_FIELD);
+ /* Go to the end of the present buffer */
+ /* Leaves nicely at the last character */
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ case KEY_UP:
+ /* Go to previous field */
+ form_driver(my_form, REQ_PREV_FIELD);
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ default:
+ /* If this is a normal character, it gets */
+ /* Printed */
+ form_driver(my_form, ch);
+ break;
+ }
+ }
+
+ /* Un post form and free the memory */
+ unpost_form(my_form);
+ free_form(my_form);
+ free_field(field[0]);
+ free_field(field[1]);
+
+ endwin();
+ return 0;
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+<p>This example, though useless, shows the usage of options. If
+used properly, they can present information very effectively in a
+form. The second field being not O_PUBLIC, does not show the
+characters you are typing.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="FIELDSTATUS" id="FIELDSTATUS">18.3.6.
+Field Status</a></h4>
+<p>The field status specifies whether the field has got edited or
+not. It is initially set to FALSE and when user enters something
+and the data buffer gets modified it becomes TRUE. So a field's
+status can be queried to find out whether it has been modified or
+not. The following functions can assist in those operations.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_status(FIELD *field, /* field to alter */
+ int status); /* status to set */
+
+int field_status(FIELD *field); /* fetch status of field */</font>
+</pre></td>
+</tr>
+</table>
+<p>It's better to check the field's status only after after leaving
+the field, as data buffer might not have been updated yet as the
+validation is still due. To guarantee that right status is
+returned, call field_status() either (1) in the field's exit
+validation check routine, (2) from the field's or form's
+initialization or termination hooks, or (3) just after a
+REQ_VALIDATION request has been processed by the forms driver</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="FIELDUSERPTR" id="FIELDUSERPTR">18.3.7.
+Field User Pointer</a></h4>
+<p>Every field structure contains one pointer that can be used by
+the user for various purposes. It is not touched by forms library
+and can be used for any purpose by the user. The following
+functions set and fetch user pointer.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000">int set_field_userptr(FIELD *field,
+ char *userptr); /* the user pointer you wish to associate */
+ /* with the field */
+
+char *field_userptr(FIELD *field); /* fetch user pointer of the field */</font>
+</pre></td>
+</tr>
+</table>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="VARIABLESIZEFIELDS" id=
+"VARIABLESIZEFIELDS">18.3.8. Variable-Sized Fields</a></h4>
+<p>If you want a dynamically changing field with variable width,
+this is the feature you want to put to full use. This will allow
+the user to enter more data than the original size of the field and
+let the field grow. According to the field orientation it will
+scroll horizontally or vertically to incorporate the new data.</p>
+<p>To make a field dynamically growable, the option O_STATIC should
+be turned off. This can be done with a</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"> field_opts_off(field_pointer, O_STATIC);</font>
+</pre></td>
+</tr>
+</table>
+<p>But it's usually not advisable to allow a field to grow
+infinitely. You can set a maximum limit to the growth of the field
+with</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_max_field(FIELD *field, /* Field on which to operate */
+ int max_growth); /* maximum growth allowed for the field */</font>
+</pre></td>
+</tr>
+</table>
+<p>The field info for a dynamically growable field can be retrieved
+by</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int dynamic_field_info( FIELD *field, /* Field on which to operate */
+ int *prows, /* number of rows will be filled in this */
+ int *pcols, /* number of columns will be filled in this*/
+ int *pmax) /* maximum allowable growth will be filled */
+ /* in this */</font>
+</pre></td>
+</tr>
+</table>
+Though field_info work as usual, it is advisable to use this
+function to get the proper attributes of a dynamically growable
+field.
+<p>Recall the library routine new_field; a new field created with
+height set to one will be defined to be a one line field. A new
+field created with height greater than one will be defined to be a
+multi line field.</p>
+<p>A one line field with O_STATIC turned off (dynamically growable
+field) will contain a single fixed row, but the number of columns
+can increase if the user enters more data than the initial field
+will hold. The number of columns displayed will remain fixed and
+the additional data will scroll horizontally.</p>
+<p>A multi line field with O_STATIC turned off (dynamically
+growable field) will contain a fixed number of columns, but the
+number of rows can increase if the user enters more data than the
+initial field will hold. The number of rows displayed will remain
+fixed and the additional data will scroll vertically.</p>
+<p>The above two paragraphs pretty much describe a dynamically
+growable field's behavior. The way other parts of forms library
+behaves is described below:</p>
+<ol type="1">
+<li>
+<p>The field option O_AUTOSKIP will be ignored if the option
+O_STATIC is off and there is no maximum growth specified for the
+field. Currently, O_AUTOSKIP generates an automatic REQ_NEXT_FIELD
+form driver request when the user types in the last character
+position of a field. On a growable field with no maximum growth
+specified, there is no last character position. If a maximum growth
+is specified, the O_AUTOSKIP option will work as normal if the
+field has grown to its maximum size.</p>
+</li>
+<li>
+<p>The field justification will be ignored if the option O_STATIC
+is off. Currently, set_field_just can be used to JUSTIFY_LEFT,
+JUSTIFY_RIGHT, JUSTIFY_CENTER the contents of a one line field. A
+growable one line field will, by definition, grow and scroll
+horizontally and may contain more data than can be justified. The
+return from field_just will be unchanged.</p>
+</li>
+<li>
+<p>The overloaded form driver request REQ_NEW_LINE will operate the
+same way regardless of the O_NL_OVERLOAD form option if the field
+option O_STATIC is off and there is no maximum growth specified for
+the field. Currently, if the form option O_NL_OVERLOAD is on,
+REQ_NEW_LINE implicitly generates a REQ_NEXT_FIELD if called from
+the last line of a field. If a field can grow without bound, there
+is no last line, so REQ_NEW_LINE will never implicitly generate a
+REQ_NEXT_FIELD. If a maximum growth limit is specified and the
+O_NL_OVERLOAD form option is on, REQ_NEW_LINE will only implicitly
+generate REQ_NEXT_FIELD if the field has grown to its maximum size
+and the user is on the last line.</p>
+</li>
+<li>
+<p>The library call dup_field will work as usual; it will duplicate
+the field, including the current buffer size and contents of the
+field being duplicated. Any specified maximum growth will also be
+duplicated.</p>
+</li>
+<li>
+<p>The library call link_field will work as usual; it will
+duplicate all field attributes and share buffers with the field
+being linked. If the O_STATIC field option is subsequently changed
+by a field sharing buffers, how the system reacts to an attempt to
+enter more data into the field than the buffer will currently hold
+will depend on the setting of the option in the current field.</p>
+</li>
+<li>
+<p>The library call field_info will work as usual; the variable
+nrow will contain the value of the original call to new_field. The
+user should use dynamic_field_info, described above, to query the
+current size of the buffer.</p>
+</li>
+</ol>
+<p>Some of the above points make sense only after explaining form
+driver. We will be looking into that in next few sections.</p>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="FORMWINDOWS" id="FORMWINDOWS">18.4. Form
+Windows</a></h3>
+<p>The form windows concept is pretty much similar to menu windows.
+Every form is associated with a main window and a sub window. The
+form main window displays any title or border associated or
+whatever the user wishes. Then the sub window contains all the
+fields and displays them according to their position. This gives
+the flexibility of manipulating fancy form displaying very
+easily.</p>
+<p>Since this is pretty much similar to menu windows, I am
+providing an example with out much explanation. The functions are
+similar and they work the same way.</p>
+<div class="EXAMPLE"><a name="FFOWI" id="FFOWI"></a>
+<p><b>Example 28. Form Windows Example</b></p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000"><span class=
+"INLINEMEDIAOBJECT">#include <form.h>
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color);
+
+int main()
+{
+ FIELD *field[3];
+ FORM *my_form;
+ WINDOW *my_form_win;
+ int ch, rows, cols;
+
+ /* Initialize curses */
+ initscr();
+ start_color();
+ cbreak();
+ noecho();
+ keypad(stdscr, TRUE);
+
+ /* Initialize few color pairs */
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+
+ /* Initialize the fields */
+ field[0] = new_field(1, 10, 6, 1, 0, 0);
+ field[1] = new_field(1, 10, 8, 1, 0, 0);
+ field[2] = NULL;
+
+ /* Set field options */
+ set_field_back(field[0], A_UNDERLINE);
+ field_opts_off(field[0], O_AUTOSKIP); /* Don't go to next field when this */
+ /* Field is filled up */
+ set_field_back(field[1], A_UNDERLINE);
+ field_opts_off(field[1], O_AUTOSKIP);
+
+ /* Create the form and post it */
+ my_form = new_form(field);
+
+ /* Calculate the area required for the form */
+ scale_form(my_form, &rows, &cols);
+
+ /* Create the window to be associated with the form */
+ my_form_win = newwin(rows + 4, cols + 4, 4, 4);
+ keypad(my_form_win, TRUE);
+
+ /* Set main window and sub window */
+ set_form_win(my_form, my_form_win);
+ set_form_sub(my_form, derwin(my_form_win, rows, cols, 2, 2));
+
+ /* Print a border around the main window and print a title */
+ box(my_form_win, 0, 0);
+ print_in_middle(my_form_win, 1, 0, cols + 4, "My Form", COLOR_PAIR(1));
+
+ post_form(my_form);
+ wrefresh(my_form_win);
+
+ mvprintw(LINES - 2, 0, "Use UP, DOWN arrow keys to switch between fields");
+ refresh();
+
+ /* Loop through to get user requests */
+ while((ch = wgetch(my_form_win)) != KEY_F(1))
+ { switch(ch)
+ { case KEY_DOWN:
+ /* Go to next field */
+ form_driver(my_form, REQ_NEXT_FIELD);
+ /* Go to the end of the present buffer */
+ /* Leaves nicely at the last character */
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ case KEY_UP:
+ /* Go to previous field */
+ form_driver(my_form, REQ_PREV_FIELD);
+ form_driver(my_form, REQ_END_LINE);
+ break;
+ default:
+ /* If this is a normal character, it gets */
+ /* Printed */
+ form_driver(my_form, ch);
+ break;
+ }
+ }
+
+ /* Un post form and free the memory */
+ unpost_form(my_form);
+ free_form(my_form);
+ free_field(field[0]);
+ free_field(field[1]);
+
+ endwin();
+ return 0;
+}
+
+void print_in_middle(WINDOW *win, int starty, int startx, int width, char *string, chtype color)
+{ int length, x, y;
+ float temp;
+
+ if(win == NULL)
+ win = stdscr;
+ getyx(win, y, x);
+ if(startx != 0)
+ x = startx;
+ if(starty != 0)
+ y = starty;
+ if(width == 0)
+ width = 80;
+
+ length = strlen(string);
+ temp = (width - length)/ 2;
+ x = startx + (int)temp;
+ wattron(win, color);
+ mvwprintw(win, y, x, "%s", string);
+ wattroff(win, color);
+ refresh();
+}</span></font>
+</pre></td>
+</tr>
+</table>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="FILEDVALIDATE" id="FILEDVALIDATE">18.5.
+Field Validation</a></h3>
+<p>By default, a field will accept any data input by the user. It
+is possible to attach validation to the field. Then any attempt by
+the user to leave the field, while it contains data that doesn't
+match the validation type will fail. Some validation types also
+have a character-validity check for each time a character is
+entered in the field.</p>
+<p>Validation can be attached to a field with the following
+function.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_type(FIELD *field, /* field to alter */
+ FIELDTYPE *ftype, /* type to associate */
+ ...); /* additional arguments*/</font>
+</pre></td>
+</tr>
+</table>
+Once set, the validation type for a field can be queried with
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">FIELDTYPE *field_type(FIELD *field); /* field to query */</font>
+</pre></td>
+</tr>
+</table>
+<p>The form driver validates the data in a field only when data is
+entered by the end-user. Validation does not occur when</p>
+<ul>
+<li>
+<p>the application program changes the field value by calling
+set_field_buffer.</p>
+</li>
+<li>
+<p>linked field values are changed indirectly -- by changing the
+field to which they are linked</p>
+</li>
+</ul>
+<p>The following are the pre-defined validation types. You can also
+specify custom validation, though it's a bit tricky and
+cumbersome.</p>
+<h1 class="BRIDGEHEAD"><a name="AEN1069" id=
+"AEN1069"></a>TYPE_ALPHA</h1>
+<p>This field type accepts alphabetic data; no blanks, no digits,
+no special characters (this is checked at character-entry time). It
+is set up with:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ALPHA, /* type to associate */
+ int width); /* maximum width of field */</font>
+</pre></td>
+</tr>
+</table>
+<p>The width argument sets a minimum width of data. The user has to
+enter at-least width number of characters before he can leave the
+field. Typically you'll want to set this to the field width; if
+it's greater than the field width, the validation check will always
+fail. A minimum width of zero makes field completion optional.</p>
+<h1 class="BRIDGEHEAD"><a name="AEN1073" id=
+"AEN1073"></a>TYPE_ALNUM</h1>
+<p>This field type accepts alphabetic data and digits; no blanks,
+no special characters (this is checked at character-entry time). It
+is set up with:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ALNUM, /* type to associate */
+ int width); /* maximum width of field */</font>
+</pre></td>
+</tr>
+</table>
+<p>The width argument sets a minimum width of data. As with
+TYPE_ALPHA, typically you'll want to set this to the field width;
+if it's greater than the field width, the validation check will
+always fail. A minimum width of zero makes field completion
+optional.</p>
+<h1 class="BRIDGEHEAD"><a name="AEN1077" id=
+"AEN1077"></a>TYPE_ENUM</h1>
+<p>This type allows you to restrict a field's values to be among a
+specified set of string values (for example, the two-letter postal
+codes for U.S. states). It is set up with:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_ENUM, /* type to associate */
+ char **valuelist; /* list of possible values */
+ int checkcase; /* case-sensitive? */
+ int checkunique); /* must specify uniquely? */</font>
+</pre></td>
+</tr>
+</table>
+<p>The valuelist parameter must point at a NULL-terminated list of
+valid strings. The checkcase argument, if true, makes comparison
+with the string case-sensitive.</p>
+<p>When the user exits a TYPE_ENUM field, the validation procedure
+tries to complete the data in the buffer to a valid entry. If a
+complete choice string has been entered, it is of course valid. But
+it is also possible to enter a prefix of a valid string and have it
+completed for you.</p>
+<p>By default, if you enter such a prefix and it matches more than
+one value in the string list, the prefix will be completed to the
+first matching value. But the checkunique argument, if true,
+requires prefix matches to be unique in order to be valid.</p>
+<p>The REQ_NEXT_CHOICE and REQ_PREV_CHOICE input requests can be
+particularly useful with these fields.</p>
+<h1 class="BRIDGEHEAD"><a name="AEN1084" id=
+"AEN1084"></a>TYPE_INTEGER</h1>
+<p>This field type accepts an integer. It is set up as follows:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_INTEGER, /* type to associate */
+ int padding, /* # places to zero-pad to */
+ int vmin, int vmax); /* valid range */</font>
+</pre></td>
+</tr>
+</table>
+<p>Valid characters consist of an optional leading minus and
+digits. The range check is performed on exit. If the range maximum
+is less than or equal to the minimum, the range is ignored.</p>
+<p>If the value passes its range check, it is padded with as many
+leading zero digits as necessary to meet the padding argument.</p>
+<p>A TYPE_INTEGER value buffer can conveniently be interpreted with
+the C library function atoi(3).</p>
+<h1 class="BRIDGEHEAD"><a name="AEN1090" id=
+"AEN1090"></a>TYPE_NUMERIC</h1>
+<p>This field type accepts a decimal number. It is set up as
+follows:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_NUMERIC, /* type to associate */
+ int padding, /* # places of precision */
+ int vmin, int vmax); /* valid range */</font>
+</pre></td>
+</tr>
+</table>
+<p>Valid characters consist of an optional leading minus and
+digits. possibly including a decimal point. The range check is
+performed on exit. If the range maximum is less than or equal to
+the minimum, the range is ignored.</p>
+<p>If the value passes its range check, it is padded with as many
+trailing zero digits as necessary to meet the padding argument.</p>
+<p>A TYPE_NUMERIC value buffer can conveniently be interpreted with
+the C library function atof(3).</p>
+<h1 class="BRIDGEHEAD"><a name="AEN1096" id=
+"AEN1096"></a>TYPE_REGEXP</h1>
+<p>This field type accepts data matching a regular expression. It
+is set up as follows:</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_field_type(FIELD *field, /* field to alter */
+ TYPE_REGEXP, /* type to associate */
+ char *regexp); /* expression to match */</font>
+</pre></td>
+</tr>
+</table>
+<p>The syntax for regular expressions is that of regcomp(3). The
+check for regular-expression match is performed on exit.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="FORMDRIVER" id="FORMDRIVER">18.6. Form
+Driver: The work horse of the forms system</a></h3>
+<p>As in the menu system, form_driver() plays a very important role
+in forms system. All types of requests to forms system should be
+funneled through form_driver().</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int form_driver(FORM *form, /* form on which to operate */
+ int request) /* form request code */</font>
+</pre></td>
+</tr>
+</table>
+<p>As you have seen some of the examples above, you have to be in a
+loop looking for user input and then decide whether it's a field
+data or a form request. The form requests are then passed to
+form_driver() to do the work.</p>
+<p>The requests roughly can be divided into following categories.
+Different requests and their usage is explained below:</p>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="PAGENAVREQ" id="PAGENAVREQ">18.6.1. Page
+Navigation Requests</a></h4>
+<p>These requests cause page-level moves through the form,
+triggering display of a new form screen. A form can be made of
+multiple pages. If you have a big form with lot of fields and
+logical sections, then you can divide the form into pages. The
+function set_new_page() to set a new page at the field
+specified.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">int set_new_page(FIELD *field,/* Field at which page break to be set or unset */
+ bool new_page_flag); /* should be TRUE to put a break */</font>
+</pre></td>
+</tr>
+</table>
+<p>The following requests allow you to move to different pages</p>
+<ul>
+<li>
+<p><em>REQ_NEXT_PAGE</em> Move to the next form page.</p>
+</li>
+<li>
+<p><em>REQ_PREV_PAGE</em> Move to the previous form page.</p>
+</li>
+<li>
+<p><em>REQ_FIRST_PAGE</em> Move to the first form page.</p>
+</li>
+<li>
+<p><em>REQ_LAST_PAGE</em> Move to the last form page.</p>
+</li>
+</ul>
+<p>These requests treat the list as cyclic; that is, REQ_NEXT_PAGE
+from the last page goes to the first, and REQ_PREV_PAGE from the
+first page goes to the last.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="INTERFIELDNAVREQ" id=
+"INTERFIELDNAVREQ">18.6.2. Inter-Field Navigation Requests</a></h4>
+<p>These requests handle navigation between fields on the same
+page.</p>
+<ul>
+<li>
+<p><em>REQ_NEXT_FIELD</em> Move to next field.</p>
+</li>
+<li>
+<p><em>REQ_PREV_FIELD</em> Move to previous field.</p>
+</li>
+<li>
+<p><em>REQ_FIRST_FIELD</em> Move to the first field.</p>
+</li>
+<li>
+<p><em>REQ_LAST_FIELD</em> Move to the last field.</p>
+</li>
+<li>
+<p><em>REQ_SNEXT_FIELD</em> Move to sorted next field.</p>
+</li>
+<li>
+<p><em>REQ_SPREV_FIELD</em> Move to sorted previous field.</p>
+</li>
+<li>
+<p><em>REQ_SFIRST_FIELD</em> Move to the sorted first field.</p>
+</li>
+<li>
+<p><em>REQ_SLAST_FIELD</em> Move to the sorted last field.</p>
+</li>
+<li>
+<p><em>REQ_LEFT_FIELD</em> Move left to field.</p>
+</li>
+<li>
+<p><em>REQ_RIGHT_FIELD</em> Move right to field.</p>
+</li>
+<li>
+<p><em>REQ_UP_FIELD</em> Move up to field.</p>
+</li>
+<li>
+<p><em>REQ_DOWN_FIELD</em> Move down to field.</p>
+</li>
+</ul>
+<p>These requests treat the list of fields on a page as cyclic;
+that is, REQ_NEXT_FIELD from the last field goes to the first, and
+REQ_PREV_FIELD from the first field goes to the last. The order of
+the fields for these (and the REQ_FIRST_FIELD and REQ_LAST_FIELD
+requests) is simply the order of the field pointers in the form
+array (as set up by new_form() or set_form_fields()</p>
+<p>It is also possible to traverse the fields as if they had been
+sorted in screen-position order, so the sequence goes left-to-right
+and top-to-bottom. To do this, use the second group of four
+sorted-movement requests.</p>
+<p>Finally, it is possible to move between fields using visual
+directions up, down, right, and left. To accomplish this, use the
+third group of four requests. Note, however, that the position of a
+form for purposes of these requests is its upper-left corner.</p>
+<p>For example, suppose you have a multi-line field B, and two
+single-line fields A and C on the same line with B, with A to the
+left of B and C to the right of B. A REQ_MOVE_RIGHT from A will go
+to B only if A, B, and C all share the same first line; otherwise
+it will skip over B to C.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="INTRAFIELDNAVREQ" id=
+"INTRAFIELDNAVREQ">18.6.3. Intra-Field Navigation Requests</a></h4>
+<p>These requests drive movement of the edit cursor within the
+currently selected field.</p>
+<ul>
+<li>
+<p><em>REQ_NEXT_CHAR</em> Move to next character.</p>
+</li>
+<li>
+<p><em>REQ_PREV_CHAR</em> Move to previous character.</p>
+</li>
+<li>
+<p><em>REQ_NEXT_LINE</em> Move to next line.</p>
+</li>
+<li>
+<p><em>REQ_PREV_LINE</em> Move to previous line.</p>
+</li>
+<li>
+<p><em>REQ_NEXT_WORD</em> Move to next word.</p>
+</li>
+<li>
+<p><em>REQ_PREV_WORD</em> Move to previous word.</p>
+</li>
+<li>
+<p><em>REQ_BEG_FIELD</em> Move to beginning of field.</p>
+</li>
+<li>
+<p><em>REQ_END_FIELD</em> Move to end of field.</p>
+</li>
+<li>
+<p><em>REQ_BEG_LINE</em> Move to beginning of line.</p>
+</li>
+<li>
+<p><em>REQ_END_LINE</em> Move to end of line.</p>
+</li>
+<li>
+<p><em>REQ_LEFT_CHAR</em> Move left in field.</p>
+</li>
+<li>
+<p><em>REQ_RIGHT_CHAR</em> Move right in field.</p>
+</li>
+<li>
+<p><em>REQ_UP_CHAR</em> Move up in field.</p>
+</li>
+<li>
+<p><em>REQ_DOWN_CHAR</em> Move down in field.</p>
+</li>
+</ul>
+<p>Each word is separated from the previous and next characters by
+whitespace. The commands to move to beginning and end of line or
+field look for the first or last non-pad character in their
+ranges.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="SCROLLREQ" id="SCROLLREQ">18.6.4.
+Scrolling Requests</a></h4>
+<p>Fields that are dynamic and have grown and fields explicitly
+created with offscreen rows are scrollable. One-line fields scroll
+horizontally; multi-line fields scroll vertically. Most scrolling
+is triggered by editing and intra-field movement (the library
+scrolls the field to keep the cursor visible). It is possible to
+explicitly request scrolling with the following requests:</p>
+<ul>
+<li>
+<p><em>REQ_SCR_FLINE</em> Scroll vertically forward a line.</p>
+</li>
+<li>
+<p><em>REQ_SCR_BLINE</em> Scroll vertically backward a line.</p>
+</li>
+<li>
+<p><em>REQ_SCR_FPAGE</em> Scroll vertically forward a page.</p>
+</li>
+<li>
+<p><em>REQ_SCR_BPAGE</em> Scroll vertically backward a page.</p>
+</li>
+<li>
+<p><em>REQ_SCR_FHPAGE</em> Scroll vertically forward half a
+page.</p>
+</li>
+<li>
+<p><em>REQ_SCR_BHPAGE</em> Scroll vertically backward half a
+page.</p>
+</li>
+<li>
+<p><em>REQ_SCR_FCHAR</em> Scroll horizontally forward a
+character.</p>
+</li>
+<li>
+<p><em>REQ_SCR_BCHAR</em> Scroll horizontally backward a
+character.</p>
+</li>
+<li>
+<p><em>REQ_SCR_HFLINE</em> Scroll horizontally one field width
+forward.</p>
+</li>
+<li>
+<p><em>REQ_SCR_HBLINE</em> Scroll horizontally one field width
+backward.</p>
+</li>
+<li>
+<p><em>REQ_SCR_HFHALF</em> Scroll horizontally one half field width
+forward.</p>
+</li>
+<li>
+<p><em>REQ_SCR_HBHALF</em> Scroll horizontally one half field width
+backward.</p>
+</li>
+</ul>
+<p>For scrolling purposes, a page of a field is the height of its
+visible part.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="EDITREQ" id="EDITREQ">18.6.5. Editing
+Requests</a></h4>
+<p>When you pass the forms driver an ASCII character, it is treated
+as a request to add the character to the field's data buffer.
+Whether this is an insertion or a replacement depends on the
+field's edit mode (insertion is the default.</p>
+<p>The following requests support editing the field and changing
+the edit mode:</p>
+<ul>
+<li>
+<p><em>REQ_INS_MODE</em> Set insertion mode.</p>
+</li>
+<li>
+<p><em>REQ_OVL_MODE</em> Set overlay mode.</p>
+</li>
+<li>
+<p><em>REQ_NEW_LINE</em> New line request (see below for
+explanation).</p>
+</li>
+<li>
+<p><em>REQ_INS_CHAR</em> Insert space at character location.</p>
+</li>
+<li>
+<p><em>REQ_INS_LINE</em> Insert blank line at character
+location.</p>
+</li>
+<li>
+<p><em>REQ_DEL_CHAR</em> Delete character at cursor.</p>
+</li>
+<li>
+<p><em>REQ_DEL_PREV</em> Delete previous word at cursor.</p>
+</li>
+<li>
+<p><em>REQ_DEL_LINE</em> Delete line at cursor.</p>
+</li>
+<li>
+<p><em>REQ_DEL_WORD</em> Delete word at cursor.</p>
+</li>
+<li>
+<p><em>REQ_CLR_EOL</em> Clear to end of line.</p>
+</li>
+<li>
+<p><em>REQ_CLR_EOF</em> Clear to end of field.</p>
+</li>
+<li>
+<p><em>REQ_CLR_FIELD</em> Clear entire field.</p>
+</li>
+</ul>
+<p>The behavior of the REQ_NEW_LINE and REQ_DEL_PREV requests is
+complicated and partly controlled by a pair of forms options. The
+special cases are triggered when the cursor is at the beginning of
+a field, or on the last line of the field.</p>
+<p>First, we consider REQ_NEW_LINE:</p>
+<p>The normal behavior of REQ_NEW_LINE in insert mode is to break
+the current line at the position of the edit cursor, inserting the
+portion of the current line after the cursor as a new line
+following the current and moving the cursor to the beginning of
+that new line (you may think of this as inserting a newline in the
+field buffer).</p>
+<p>The normal behavior of REQ_NEW_LINE in overlay mode is to clear
+the current line from the position of the edit cursor to end of
+line. The cursor is then moved to the beginning of the next
+line.</p>
+<p>However, REQ_NEW_LINE at the beginning of a field, or on the
+last line of a field, instead does a REQ_NEXT_FIELD. O_NL_OVERLOAD
+option is off, this special action is disabled.</p>
+<p>Now, let us consider REQ_DEL_PREV:</p>
+<p>The normal behavior of REQ_DEL_PREV is to delete the previous
+character. If insert mode is on, and the cursor is at the start of
+a line, and the text on that line will fit on the previous one, it
+instead appends the contents of the current line to the previous
+one and deletes the current line (you may think of this as deleting
+a newline from the field buffer).</p>
+<p>However, REQ_DEL_PREV at the beginning of a field is instead
+treated as a REQ_PREV_FIELD.</p>
+<p>If the O_BS_OVERLOAD option is off, this special action is
+disabled and the forms driver just returns E_REQUEST_DENIED.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="ORDERREQ" id="ORDERREQ">18.6.6. Order
+Requests</a></h4>
+<p>If the type of your field is ordered, and has associated
+functions for getting the next and previous values of the type from
+a given value, there are requests that can fetch that value into
+the field buffer:</p>
+<ul>
+<li>
+<p><em>REQ_NEXT_CHOICE</em> Place the successor value of the
+current value in the buffer.</p>
+</li>
+<li>
+<p><em>REQ_PREV_CHOICE</em> Place the predecessor value of the
+current value in the buffer.</p>
+</li>
+</ul>
+<p>Of the built-in field types, only TYPE_ENUM has built-in
+successor and predecessor functions. When you define a field type
+of your own (see Custom Validation Types), you can associate our
+own ordering functions.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="APPLICCOMMANDS" id=
+"APPLICCOMMANDS">18.6.7. Application Commands</a></h4>
+<p>Form requests are represented as integers above the curses value
+greater than KEY_MAX and less than or equal to the constant
+MAX_COMMAND. A value within this range gets ignored by
+form_driver(). So this can be used for any purpose by the
+application. It can be treated as an application specific action
+and take corresponding action.</p>
+</div>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="TOOLS" id="TOOLS">19. Tools and Widget
+Libraries</a></h2>
+<p>Now that you have seen the capabilities of ncurses and its
+sister libraries, you are rolling your sleeves up and gearing for a
+project that heavily manipulates screen. But wait.. It can be
+pretty difficult to write and maintain complex GUI widgets in plain
+ncurses or even with the additional libraries. There are some
+ready-to-use tools and widget libraries that can be used instead of
+writing your own widgets. You can use some of them, get ideas from
+the code, or even extend them.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="CDK" id="CDK">19.1. CDK (Curses
+Development Kit)</a></h3>
+<p>In the author's words</p>
+<p><em>CDK stands for 'Curses Development Kit' and it currently
+contains 21 ready to use widgets which facilitate the speedy
+development of full screen curses programs.</em></p>
+<p>The kit provides some useful widgets, which can be used in your
+programs directly. It's pretty well written and the documentation
+is very good. The examples in the examples directory can be a good
+place to start for beginners. The CDK can be downloaded from
+<a href="http://invisible-island.net/cdk/" target=
+"_top">http://invisible-island.net/cdk/</a> . Follow the
+instructions in README file to install it.</p>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="WIDGETLIST" id="WIDGETLIST">19.1.1.
+Widget List</a></h4>
+<p>The following is the list of widgets provided with cdk and their
+description.</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color="#000000">Widget Type Quick Description
+===========================================================================
+Alphalist Allows a user to select from a list of words, with
+ the ability to narrow the search list by typing in a
+ few characters of the desired word.
+Buttonbox This creates a multiple button widget.
+Calendar Creates a little simple calendar widget.
+Dialog Prompts the user with a message, and the user
+ can pick an answer from the buttons provided.
+Entry Allows the user to enter various types of information.
+File Selector A file selector built from Cdk base widgets. This
+ example shows how to create more complicated widgets
+ using the Cdk widget library.
+Graph Draws a graph.
+Histogram Draws a histogram.
+Item List Creates a pop up field which allows the user to select
+ one of several choices in a small field. Very useful
+ for things like days of the week or month names.
+Label Displays messages in a pop up box, or the label can be
+ considered part of the screen.
+Marquee Displays a message in a scrolling marquee.
+Matrix Creates a complex matrix with lots of options.
+Menu Creates a pull-down menu interface.
+Multiple Line Entry A multiple line entry field. Very useful
+ for long fields. (like a description
+ field)
+Radio List Creates a radio button list.
+Scale Creates a numeric scale. Used for allowing a user to
+ pick a numeric value and restrict them to a range of
+ values.
+Scrolling List Creates a scrolling list/menu list.
+Scrolling Window Creates a scrolling log file viewer. Can add
+ information into the window while its running.
+ A good widget for displaying the progress of
+ something. (akin to a console window)
+Selection List Creates a multiple option selection list.
+Slider Akin to the scale widget, this widget provides a
+ visual slide bar to represent the numeric value.
+Template Creates a entry field with character sensitive
+ positions. Used for pre-formatted fields like
+ dates and phone numbers.
+Viewer This is a file/information viewer. Very useful
+ when you need to display loads of information.
+===========================================================================</font>
+</pre></td>
+</tr>
+</table>
+<p>A few of the widgets are modified by Thomas Dickey in recent
+versions.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="CDKATTRACT" id="CDKATTRACT">19.1.2. Some
+Attractive Features</a></h4>
+<p>Apart from making our life easier with readily usable widgets,
+cdk solves one frustrating problem with printing multi colored
+strings, justified strings elegantly. Special formatting tags can
+be embedded in the strings which are passed to CDK functions. For
+Example</p>
+<p>If the string</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000">"</B/1>This line should have a yellow foreground and a blue
+background.<!1>"</font>
+</pre></td>
+</tr>
+</table>
+<p>given as a parameter to newCDKLabel(), it prints the line with
+yellow foreground and blue background. There are other tags
+available for justifying string, embedding special drawing
+characters etc.. Please refer to the man page cdk_display(3X) for
+details. The man page explains the usage with nice examples.</p>
+</div>
+<div class="SECT3">
+<hr>
+<h4 class="SECT3"><a name="CDKCONCLUSION" id=
+"CDKCONCLUSION">19.1.3. Conclusion</a></h4>
+<p>All in all, CDK is a well-written package of widgets, which if
+used properly can form a strong frame work for developing complex
+GUI.</p>
+</div>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="DIALOG" id="DIALOG">19.2. The
+dialog</a></h3>
+<p>Long long ago, in September 1994, when few people knew linux,
+Jeff Tranter wrote an <a href=
+"http://www2.linuxjournal.com/lj-issues/issue5/2807.html" target=
+"_top">article</a> on dialog in Linux Journal. He starts the
+article with these words..</p>
+<p><em>Linux is based on the Unix operating system, but also
+features a number of unique and useful kernel features and
+application programs that often go beyond what is available under
+Unix. One little-known gem is "dialog", a utility for creating
+professional-looking dialog boxes from within shell scripts. This
+article presents a tutorial introduction to the dialog utility, and
+shows examples of how and where it can be used</em></p>
+<p>As he explains, dialog is a real gem in making
+professional-looking dialog boxes with ease. It creates a variety
+of dialog boxes, menus, check lists etc.. It is usually installed
+by default. If not, you can download it from <a href=
+"http://invisible-island.net/dialog/" target="_top">Thomas
+Dickey</a>'s site.</p>
+<p>The above-mentioned article gives a very good overview of its
+uses and capabilites. The man page has more details. It can be used
+in variety of situations. One good example is building of linux
+kernel in text mode. Linux kernel uses a modified version of dialog
+tailored for its needs.</p>
+<p>dialog was initially designed to be used with shell scripts. If
+you want to use its functionality in a c program, then you can use
+libdialog. The documentation regarding this is sparse. Definitive
+reference is the dialog.h header file which comes with the library.
+You may need to hack here and there to get the required output. The
+source is easily customizable. I have used it on a number of
+occasions by modifying the code.</p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="PERLCURSES" id="PERLCURSES">19.3. Perl
+Curses Modules CURSES::FORM and CURSES::WIDGETS</a></h3>
+<p>The perl module Curses, Curses::Form and Curses::Widgets give
+access to curses from perl. If you have curses and basic perl is
+installed, you can get these modules from <a href=
+"http://www.cpan.org/modules/01modules.index.html" target=
+"_top">CPAN All Modules page</a>. Get the three zipped modules in
+the Curses category. Once installed you can use these modules from
+perl scripts like any other module. For more information on perl
+modules see perlmod man page. The above modules come with good
+documentation and they have some demo scripts to test the
+functionality. Though the widgets provided are very rudimentary,
+these modules provide good access to curses library from perl.</p>
+<p>Some of my code examples are converted to perl by Anuradha
+Ratnaweera and they are available in the <var class=
+"LITERAL">perl</var> directory.</p>
+<p>For more information see man pages Curses(3) , Curses::Form(3)
+and Curses::Widgets(3). These pages are installed only when the
+above modules are acquired and installed.</p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="JUSTFORFUN" id="JUSTFORFUN">20. Just For
+Fun !!!</a></h2>
+<p>This section contains few programs written by me just for fun.
+They don't signify a better programming practice or the best way of
+using ncurses. They are provided here so as to allow beginners to
+get ideas and add more programs to this section. If you have
+written a couple of nice, simple programs in curses and want them
+to included here, contact <a href="mailto:ppadala@gmail.com"
+target="_top">me</a>.</p>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="GAMEOFLIFE" id="GAMEOFLIFE">20.1. The
+Game of Life</a></h3>
+<p>Game of life is a wonder of math. In <a href=
+"http://www.math.com/students/wonders/life/life.html" target=
+"_top">Paul Callahan</a>'s words</p>
+<table border="0" bgcolor="#E0E0E0" width="100%">
+<tr>
+<td>
+<pre class="PROGRAMLISTING">
+<font color=
+"#000000"><em>The Game of Life (or simply Life) is not a game in the conventional sense. There
+are no players, and no winning or losing. Once the "pieces" are placed in the
+starting position, the rules determine everything that happens later.
+Nevertheless, Life is full of surprises! In most cases, it is impossible to look
+at a starting position (or pattern) and see what will happen in the future. The
+only way to find out is to follow the rules of the game.</em></font>
+</pre></td>
+</tr>
+</table>
+<p>This program starts with a simple inverted U pattern and shows
+how wonderful life works. There is a lot of room for improvement in
+the program. You can let the user enter pattern of his choice or
+even take input from a file. You can also change rules and play
+with a lot of variations. Search on <a href="http://www.google.com"
+target="_top">google</a> for interesting information on game of
+life.</p>
+<p><em>File Path: JustForFun/life.c</em></p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="MAGIC" id="MAGIC">20.2. Magic
+Square</a></h3>
+<p>Magic Square, another wonder of math, is very simple to
+understand but very difficult to make. In a magic square sum of the
+numbers in each row, each column is equal. Even diagnol sum can be
+equal. There are many variations which have special properties.</p>
+<p>This program creates a simple magic square of odd order.</p>
+<p><em>File Path: JustForFun/magic.c</em></p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="HANOI" id="HANOI">20.3. Towers of
+Hanoi</a></h3>
+<p>The famous towers of hanoi solver. The aim of the game is to
+move the disks on the first peg to last peg, using middle peg as a
+temporary stay. The catch is not to place a larger disk over a
+small disk at any time.</p>
+<p><em>File Path: JustForFun/hanoi.c</em></p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="QUEENS" id="QUEENS">20.4. Queens
+Puzzle</a></h3>
+<p>The objective of the famous N-Queen puzzle is to put N queens on
+a N X N chess board without attacking each other.</p>
+<p>This program solves it with a simple backtracking technique.</p>
+<p><em>File Path: JustForFun/queens.c</em></p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="SHUFFLE" id="SHUFFLE">20.5.
+Shuffle</a></h3>
+<p>A fun game, if you have time to kill.</p>
+<p><em>File Path: JustForFun/shuffle.c</em></p>
+</div>
+<div class="SECT2">
+<hr>
+<h3 class="SECT2"><a name="TT" id="TT">20.6. Typing Tutor</a></h3>
+<p>A simple typing tutor, I created more out of need than for ease
+of use. If you know how to put your fingers correctly on the
+keyboard, but lack practice, this can be helpful.</p>
+<p><em>File Path: JustForFun/tt.c</em></p>
+</div>
+</div>
+<div class="SECT1">
+<hr>
+<h2 class="SECT1"><a name="REF" id="REF">21. References</a></h2>
+<ul>
+<li>
+<p>NCURSES man pages</p>
+</li>
+<li>
+<p>NCURSES FAQ at <a href=
+"http://invisible-island.net/ncurses/ncurses.faq.html" target=
+"_top">http://invisible-island.net/ncurses/ncurses.faq.html</a></p>
+</li>
+<li>
+<p>Writing programs with NCURSES by Eric Raymond and Zeyd M.
+Ben-Halim at <a href=
+"http://invisible-island.net/ncurses/ncurses-intro.html" target=
+"_top">http://invisible-island.net/ncurses/ncurses-intro.html</a> -
+somewhat obsolete. I was inspired by this document and the
+structure of this HOWTO follows from the original document</p>
+</li>
+</ul>
+</div>
+</div>
+</body>
+</html>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE></TITLE></HEAD>
<BODY>
<H2 ALIGN=CENTER>Files</H2>
<A HREF="files/T.htm">[T]</A>
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>T</TITLE></HEAD>
<BODY>
<H2>Files - T</H2>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE></TITLE></HEAD>
<BODY>
<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
<A HREF="funcs/A.htm">[A]</A>
<A HREF="funcs/B.htm">[B]</A>
<A HREF="funcs/C.htm">[C]</A>
<A HREF="funcs/U.htm">[U]</A>
<A HREF="funcs/V.htm">[V]</A>
<A HREF="funcs/W.htm">[W]</A>
-</BODY></HTML>
\ No newline at end of file
+</BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>A</TITLE></HEAD>
<BODY>
<H2>Functions - A</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#958_16" TARGET="main">Ahead</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#52_16" TARGET="main">Allocate_Arg</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_959_16" TARGET="main">Ahead</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16" TARGET="main">Allocate_Arg</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>B</TITLE></HEAD>
<BODY>
<H2>Functions - B</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2079_16" TARGET="main">Baud</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#803_16" TARGET="main">Beeper</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#974_16" TARGET="main">Behind</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#64_16" TARGET="main">Bottompanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2086_16" TARGET="main">Baud</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_804_16" TARGET="main">Beeper</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_975_16" TARGET="main">Behind</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_65_16" TARGET="main">Bottompanel</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>C</TITLE></HEAD>
<BODY>
<H2>Functions - C</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2239_16" TARGET="main">Canchangecolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#823_16" TARGET="main">Cbreak</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#63_13" TARGET="main">Character_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#68_13" TARGET="main">CInt_2_FOS</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#76_13" TARGET="main">CInt_2_FrmOS</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#71_13" TARGET="main">CInt_2_IOS</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#63_13" TARGET="main">CInt_2_MOS</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1017_16" TARGET="main">Clear_Ok</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#98_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:98</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#99_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:99</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2256_16" TARGET="main">Colorcontent</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1318_16" TARGET="main">Copywin</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#773_16" TARGET="main">Count - terminal_interface-curses-forms.adb:773</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#911_16" TARGET="main">Count - terminal_interface-curses-menus.adb:911</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:48</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration.ads:64</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1039_16" TARGET="main">Current_Fld</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#299_16" TARGET="main">Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2469_16" TARGET="main">curses_versionC</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2343_16" TARGET="main">Curs_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2455_16" TARGET="main">C_Assume_Default_Colors</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#149_13" TARGET="main">C_Builtin_Router</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#756_16" TARGET="main">C_Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13" TARGET="main">C_Generic_Choice</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#81_13" TARGET="main">C_Generic_Type</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#922_16" TARGET="main">C_Mitems</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2443_16" TARGET="main">C_Use_Default_Colors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2246_16" TARGET="main">Canchangecolor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_824_16" TARGET="main">Cbreak</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13" TARGET="main">Character_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_69_13" TARGET="main">CInt_2_FOS</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_77_13" TARGET="main">CInt_2_FrmOS</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_72_13" TARGET="main">CInt_2_IOS</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_64_13" TARGET="main">CInt_2_MOS</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1021_16" TARGET="main">Clear_Ok</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_98_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:98</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_99_13" TARGET="main">Col - terminal_interface-curses-text_io.ads:99</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2263_16" TARGET="main">Colorcontent</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1322_16" TARGET="main">Copywin</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_774_16" TARGET="main">Count - terminal_interface-curses-forms.adb:774</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_912_16" TARGET="main">Count - terminal_interface-curses-menus.adb:912</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration-ada.ads:48</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13" TARGET="main">Create - terminal_interface-curses-forms-field_types-enumeration.ads:64</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1040_16" TARGET="main">Current_Fld</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_300_16" TARGET="main">Curr_Item</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2476_16" TARGET="main">curses_versionC</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2350_16" TARGET="main">Curs_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2462_16" TARGET="main">C_Assume_Default_Colors</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__ads.htm#ref_149_13" TARGET="main">C_Builtin_Router</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_757_16" TARGET="main">C_Fields</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13" TARGET="main">C_Generic_Choice</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13" TARGET="main">C_Generic_Type</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_923_16" TARGET="main">C_Mitems</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2450_16" TARGET="main">C_Use_Default_Colors</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>D</TITLE></HEAD>
<BODY>
<H2>Functions - D</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2027_16" TARGET="main">Defkey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2275_16" TARGET="main">Def_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2277_16" TARGET="main">Def_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2059_16" TARGET="main">Delayoutput</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#155_16" TARGET="main">Del_Panel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#350_16" TARGET="main">Derwin</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#125_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:125</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#269_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:269</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#277_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:277</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#128_14" TARGET="main">Dispatch_Event</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1110_16" TARGET="main">Do_Update</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#972_16" TARGET="main">Driver</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#373_16" TARGET="main">Dupwin</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#150_16" TARGET="main">Dup_Field</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#558_16" TARGET="main">Dyn_Info</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2034_16" TARGET="main">Defkey</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2282_16" TARGET="main">Def_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2284_16" TARGET="main">Def_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2066_16" TARGET="main">Delayoutput</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_156_16" TARGET="main">Del_Panel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_351_16" TARGET="main">Derwin</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_126_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:126</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_270_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:270</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_278_16" TARGET="main">Descname - terminal_interface-curses-menus.adb:278</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_134_14" TARGET="main">Dispatch_Event</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1114_16" TARGET="main">Do_Update</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_973_16" TARGET="main">Driver</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_374_16" TARGET="main">Dupwin</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_151_16" TARGET="main">Dup_Field</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_559_16" TARGET="main">Dyn_Info</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>E</TITLE></HEAD>
<BODY>
<H2>Functions - E</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#861_16" TARGET="main">Echo</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#165_16" TARGET="main">Endwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2087_16" TARGET="main">Erasechar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_862_16" TARGET="main">Echo</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_166_16" TARGET="main">Endwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2094_16" TARGET="main">Erasechar</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>F</TITLE></HEAD>
<BODY>
<H2>Functions - F</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#467_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:467</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#477_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:477</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#254_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:254</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#265_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:265</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#56_13" TARGET="main">Field_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#423_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:423</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#433_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:433</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#212_16" TARGET="main">Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#373_16" TARGET="main">Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#351_16" TARGET="main">Field_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#348_16" TARGET="main">Field_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#506_16" TARGET="main">Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#292_16" TARGET="main">Field_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#72_16" TARGET="main">Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#813_16" TARGET="main">Flash</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#527_16" TARGET="main">Fld_Info</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#65_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:65</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#66_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:66</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2069_16" TARGET="main">Flushinp</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#888_16" TARGET="main">Form_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#866_16" TARGET="main">Form_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#863_16" TARGET="main">Form_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#83_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:83</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#91_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:91</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#627_16" TARGET="main">Form_Sub</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#73_16" TARGET="main">Form_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#599_16" TARGET="main">Form_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#64_13" TARGET="main">FOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#824_16" TARGET="main">Free - terminal_interface-curses-forms.adb:824</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#957_16" TARGET="main">Free - terminal_interface-curses-menus.adb:957</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#122_17" TARGET="main">Freeargs</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#130_16" TARGET="main">Freeitem</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#132_16" TARGET="main">Free_Field</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#120_17" TARGET="main">Free_Type</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#72_13" TARGET="main">FrmOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#995_16" TARGET="main">Frm_Driver</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_468_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:468</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_478_16" TARGET="main">Field_Back - terminal_interface-curses-forms.adb:478</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_255_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:255</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_266_16" TARGET="main">Field_Buffer - terminal_interface-curses-forms.adb:266</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13" TARGET="main">Field_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_424_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:424</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_434_16" TARGET="main">Field_Fore - terminal_interface-curses-forms.adb:434</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_213_16" TARGET="main">Field_Just</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_374_16" TARGET="main">Field_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_352_16" TARGET="main">Field_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_349_16" TARGET="main">Field_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_507_16" TARGET="main">Field_Pad</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_293_16" TARGET="main">Field_Status</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16" TARGET="main">Field_Userptr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_814_16" TARGET="main">Flash</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_528_16" TARGET="main">Fld_Info</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_65_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:65</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_66_14" TARGET="main">Flush - terminal_interface-curses-text_io.ads:66</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2076_16" TARGET="main">Flushinp</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_889_16" TARGET="main">Form_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_867_16" TARGET="main">Form_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_864_16" TARGET="main">Form_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_84_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:84</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_92_16" TARGET="main">Form_Request_Name - terminal_interface-curses-forms.adb:92</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_628_16" TARGET="main">Form_Sub</A>
+<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16" TARGET="main">Form_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_600_16" TARGET="main">Form_Win</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_65_13" TARGET="main">FOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_825_16" TARGET="main">Free - terminal_interface-curses-forms.adb:825</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_958_16" TARGET="main">Free - terminal_interface-curses-menus.adb:958</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_123_17" TARGET="main">Freeargs</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_131_16" TARGET="main">Freeitem</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_133_16" TARGET="main">Free_Field</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_121_17" TARGET="main">Free_Type</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_73_13" TARGET="main">FrmOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_996_16" TARGET="main">Frm_Driver</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>G</TITLE></HEAD>
<BODY>
<H2>Functions - G</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#90_13" TARGET="main">Generic_Char_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#83_13" TARGET="main">Generic_Field_Check</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13" TARGET="main">Generic_Next</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13" TARGET="main">Generic_Prev</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#68_16" TARGET="main">Getmouse</A>
-<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#65_16" TARGET="main">getwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#61_13" TARGET="main">Get_Arg</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#59_13" TARGET="main">Get_Entry</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1083_16" TARGET="main">Get_Fieldindex</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#58_13" TARGET="main">Get_Fieldtype</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#63_13" TARGET="main">Get_Flag - terminal_interface-curses-termcap.ads:63</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#64_13" TARGET="main">Get_Flag - terminal_interface-curses-terminfo.ads:64</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#92_13" TARGET="main">Get_Flag - terminal_interface-curses.adb:92</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#339_16" TARGET="main">Get_Itemindex</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#531_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:531</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#539_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:539</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#67_14" TARGET="main">Get_Number - terminal_interface-curses-termcap.ads:67</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#68_13" TARGET="main">Get_Number - terminal_interface-curses-terminfo.ads:68</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1069_16" TARGET="main">Get_Page</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#757_16" TARGET="main">Get_Pattern</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#712_16" TARGET="main">Get_Spacing</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#73_14" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:73</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#76_13" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:76</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#57_14" TARGET="main">Get_String - terminal_interface-curses-terminfo.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#48_13" TARGET="main">Get_Window - terminal_interface-curses-putwin.ads:48</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#62_13" TARGET="main">Get_Window - terminal_interface-curses-text_io.ads:62</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13" TARGET="main">Generic_Char_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13" TARGET="main">Generic_Field_Check</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13" TARGET="main">Generic_Next</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13" TARGET="main">Generic_Prev</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_69_16" TARGET="main">Getmouse</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_65_16" TARGET="main">getwin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_62_13" TARGET="main">Get_Arg</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_59_13" TARGET="main">Get_Entry</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1084_16" TARGET="main">Get_Fieldindex</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_59_13" TARGET="main">Get_Fieldtype</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_63_13" TARGET="main">Get_Flag - terminal_interface-curses-termcap.ads:63</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_64_13" TARGET="main">Get_Flag - terminal_interface-curses-terminfo.ads:64</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_93_13" TARGET="main">Get_Flag - terminal_interface-curses.adb:93</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_340_16" TARGET="main">Get_Itemindex</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_532_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:532</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_540_16" TARGET="main">Get_Menu_Mark - terminal_interface-curses-menus.adb:540</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_67_14" TARGET="main">Get_Number - terminal_interface-curses-termcap.ads:67</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_68_13" TARGET="main">Get_Number - terminal_interface-curses-terminfo.ads:68</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1070_16" TARGET="main">Get_Page</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_758_16" TARGET="main">Get_Pattern</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_713_16" TARGET="main">Get_Spacing</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_73_14" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:73</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_76_13" TARGET="main">Get_String - terminal_interface-curses-termcap.ads:76</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_57_14" TARGET="main">Get_String - terminal_interface-curses-terminfo.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_48_13" TARGET="main">Get_Window - terminal_interface-curses-putwin.ads:48</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_62_13" TARGET="main">Get_Window - terminal_interface-curses-text_io.ads:62</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>H</TITLE></HEAD>
<BODY>
<H2>Functions - H</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#909_16" TARGET="main">Halfdelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2210_16" TARGET="main">Hascolors</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#599_16" TARGET="main">Haskey</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2103_16" TARGET="main">Has_Ic</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2115_16" TARGET="main">Has_Il</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#60_13" TARGET="main">Has_String</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#94_16" TARGET="main">Hidepanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_910_16" TARGET="main">Halfdelay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2217_16" TARGET="main">Hascolors</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_600_16" TARGET="main">Haskey</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2110_16" TARGET="main">Has_Ic</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2122_16" TARGET="main">Has_Il</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_60_13" TARGET="main">Has_String</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_95_16" TARGET="main">Hidepanel</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>I</TITLE></HEAD>
<BODY>
<H2>Functions - I</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1041_16" TARGET="main">IDC_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1029_16" TARGET="main">IDL_Ok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1065_16" TARGET="main">Immedok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2225_16" TARGET="main">Initcolor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2171_16" TARGET="main">Initpair</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#152_16" TARGET="main">Initscr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#921_16" TARGET="main">Intrflush</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#67_13" TARGET="main">IOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#175_16" TARGET="main">Isendwin</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#50_13" TARGET="main">Is_MinusOne_Pointer</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1118_16" TARGET="main">Is_New</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#127_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:127</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#252_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:252</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#260_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:260</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#859_16" TARGET="main">Item_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#233_16" TARGET="main">Item_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#213_16" TARGET="main">Item_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#210_16" TARGET="main">Item_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#867_16" TARGET="main">Item_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#64_16" TARGET="main">Item_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#167_16" TARGET="main">Item_Val</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#180_16" TARGET="main">Item_Vis</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1045_16" TARGET="main">IDC_Ok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1033_16" TARGET="main">IDL_Ok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1069_16" TARGET="main">Immedok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2232_16" TARGET="main">Initcolor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2178_16" TARGET="main">Initpair</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_153_16" TARGET="main">Initscr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_922_16" TARGET="main">Intrflush</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_68_13" TARGET="main">IOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_176_16" TARGET="main">Isendwin</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_50_13" TARGET="main">Is_MinusOne_Pointer</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1119_16" TARGET="main">Is_New</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_128_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:128</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_253_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:253</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_261_16" TARGET="main">Itemname - terminal_interface-curses-menus.adb:261</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_860_16" TARGET="main">Item_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_234_16" TARGET="main">Item_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_214_16" TARGET="main">Item_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_211_16" TARGET="main">Item_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_868_16" TARGET="main">Item_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16" TARGET="main">Item_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_168_16" TARGET="main">Item_Val</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_181_16" TARGET="main">Item_Vis</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>K</TITLE></HEAD>
<BODY>
<H2>Functions - K</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#116_16" TARGET="main">Keyname</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2014_16" TARGET="main">Keyok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#892_16" TARGET="main">Keypad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2095_16" TARGET="main">Killchar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_117_16" TARGET="main">Keyname</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2021_16" TARGET="main">Keyok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_893_16" TARGET="main">Keypad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2102_16" TARGET="main">Killchar</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>L</TITLE></HEAD>
<BODY>
<H2>Functions - L</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1053_16" TARGET="main">Leave_Ok</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#101_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:101</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#102_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:102</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#77_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:77</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#78_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:78</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#171_16" TARGET="main">Lnk_Field</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2137_16" TARGET="main">Longname - terminal_interface-curses.adb:2137</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2145_16" TARGET="main">Longname - terminal_interface-curses.adb:2145</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1057_16" TARGET="main">Leave_Ok</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_101_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:101</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_102_13" TARGET="main">Line - terminal_interface-curses-text_io.ads:102</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_77_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:77</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_78_13" TARGET="main">Line_Length - terminal_interface-curses-text_io.ads:78</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_172_16" TARGET="main">Lnk_Field</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2144_16" TARGET="main">Longname - terminal_interface-curses.adb:2144</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2152_16" TARGET="main">Longname - terminal_interface-curses.adb:2152</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>M</TITLE></HEAD>
<BODY>
<H2>Functions - M</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#73_13" TARGET="main">Make_Enumeration_Type</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#607_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:607</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#617_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:617</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#786_16" TARGET="main">Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#568_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:568</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#578_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:578</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#646_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:646</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#656_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:656</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#875_16" TARGET="main">Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#413_16" TARGET="main">Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#393_16" TARGET="main">Menu_Opts_Off</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#390_16" TARGET="main">Menu_Opts_On</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#681_16" TARGET="main">Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#469_16" TARGET="main">Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#883_16" TARGET="main">Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#63_16" TARGET="main">Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#445_16" TARGET="main">Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#881_16" TARGET="main">Meta</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#112_16" TARGET="main">MMask</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#59_13" TARGET="main">MOS_2_CInt</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#208_16" TARGET="main">Mouseinterval</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#54_16" TARGET="main">Mouse_Avail</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#785_16" TARGET="main">Move - terminal_interface-curses-forms.adb:785</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#131_16" TARGET="main">Move - terminal_interface-curses-panels.adb:131</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#402_16" TARGET="main">Mvderwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#228_16" TARGET="main">mvwaddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1608_16" TARGET="main">Mvwdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#388_16" TARGET="main">Mvwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1632_16" TARGET="main">Mvwinch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1657_16" TARGET="main">Mvwinsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1696_16" TARGET="main">Mvwinsnstr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#915_16" TARGET="main">M_Post - terminal_interface-curses-forms.adb:915</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#353_16" TARGET="main">M_Post - terminal_interface-curses-menus.adb:353</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#642_16" TARGET="main">M_Scale - terminal_interface-curses-forms.adb:642</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#482_16" TARGET="main">M_Scale - terminal_interface-curses-menus.adb:482</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#917_16" TARGET="main">M_Unpost - terminal_interface-curses-forms.adb:917</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#355_16" TARGET="main">M_Unpost - terminal_interface-curses-menus.adb:355</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_608_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:608</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_618_16" TARGET="main">Menu_Back - terminal_interface-curses-menus.adb:618</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_787_16" TARGET="main">Menu_Fmt</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_569_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:569</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_579_16" TARGET="main">Menu_Fore - terminal_interface-curses-menus.adb:579</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_647_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:647</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_657_16" TARGET="main">Menu_Grey - terminal_interface-curses-menus.adb:657</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_876_16" TARGET="main">Menu_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_414_16" TARGET="main">Menu_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_394_16" TARGET="main">Menu_Opts_Off</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_391_16" TARGET="main">Menu_Opts_On</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_682_16" TARGET="main">Menu_Pad</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_470_16" TARGET="main">Menu_Sub</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_884_16" TARGET="main">Menu_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16" TARGET="main">Menu_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_446_16" TARGET="main">Menu_Win</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_882_16" TARGET="main">Meta</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_113_16" TARGET="main">MMask</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_60_13" TARGET="main">MOS_2_CInt</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_214_16" TARGET="main">Mouseinterval</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_55_16" TARGET="main">Mouse_Avail</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_786_16" TARGET="main">Move - terminal_interface-curses-forms.adb:786</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_132_16" TARGET="main">Move - terminal_interface-curses-panels.adb:132</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_403_16" TARGET="main">Mvderwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_229_16" TARGET="main">mvwaddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1614_16" TARGET="main">Mvwdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_389_16" TARGET="main">Mvwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1638_16" TARGET="main">Mvwinch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1663_16" TARGET="main">Mvwinsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1702_16" TARGET="main">Mvwinsnstr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_916_16" TARGET="main">M_Post - terminal_interface-curses-forms.adb:916</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_354_16" TARGET="main">M_Post - terminal_interface-curses-menus.adb:354</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_643_16" TARGET="main">M_Scale - terminal_interface-curses-forms.adb:643</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_483_16" TARGET="main">M_Scale - terminal_interface-curses-menus.adb:483</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_918_16" TARGET="main">M_Unpost - terminal_interface-curses-forms.adb:918</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_356_16" TARGET="main">M_Unpost - terminal_interface-curses-menus.adb:356</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>N</TITLE></HEAD>
<BODY>
<H2>Functions - N</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2356_16" TARGET="main">Napms</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#115_16" TARGET="main">Newfield</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#803_16" TARGET="main">NewForm</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#97_16" TARGET="main">Newitem</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#938_16" TARGET="main">Newmenu</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1455_16" TARGET="main">Newpad</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#50_16" TARGET="main">Newpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#286_16" TARGET="main">Newwin</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#86_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:86</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#87_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:87</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#89_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:89</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#90_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:90</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#60_13" TARGET="main">Next</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#996_16" TARGET="main">NL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#825_16" TARGET="main">NoCbreak</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#949_16" TARGET="main">Nodelay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#863_16" TARGET="main">NoEcho</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#998_16" TARGET="main">NoNL</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#844_16" TARGET="main">NoRaw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#984_16" TARGET="main">Notimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#935_17" TARGET="main">No_Qiflush</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2363_16" TARGET="main">Napms</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_116_16" TARGET="main">Newfield</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_804_16" TARGET="main">NewForm</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_98_16" TARGET="main">Newitem</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_939_16" TARGET="main">Newmenu</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1461_16" TARGET="main">Newpad</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_51_16" TARGET="main">Newpanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_287_16" TARGET="main">Newwin</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_86_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:86</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_87_14" TARGET="main">New_Line - terminal_interface-curses-text_io.ads:87</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_89_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:89</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_90_14" TARGET="main">New_Page - terminal_interface-curses-text_io.ads:90</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13" TARGET="main">Next</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1000_16" TARGET="main">NL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_826_16" TARGET="main">NoCbreak</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_953_16" TARGET="main">Nodelay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_864_16" TARGET="main">NoEcho</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1002_16" TARGET="main">NoNL</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_845_16" TARGET="main">NoRaw</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_988_16" TARGET="main">Notimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_936_17" TARGET="main">No_Qiflush</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>O</TITLE></HEAD>
<BODY>
<H2>Functions - O</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#58_17" TARGET="main">Output</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1359_16" TARGET="main">Overlay</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1347_16" TARGET="main">Overwrite</A>
+<LI><A HREF="../terminal_interface-curses-text_io-aux__adb.htm#ref_58_17" TARGET="main">Output</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1363_16" TARGET="main">Overlay</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1351_16" TARGET="main">Overwrite</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>P</TITLE></HEAD>
<BODY>
<H2>Functions - P</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#80_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:80</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#81_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:81</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2193_16" TARGET="main">Paircontent</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#143_16" TARGET="main">Panel_Hidden</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#65_16" TARGET="main">Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#104_16" TARGET="main">Panel_Win</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1559_16" TARGET="main">Pechochar</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1534_16" TARGET="main">Pnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#940_16" TARGET="main">Pos_Form_Cursor</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#498_16" TARGET="main">Pos_Menu_Cursor</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1504_16" TARGET="main">Prefresh</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#67_13" TARGET="main">Previous</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#54_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:54</A>
-<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#61_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:61</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#50_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#57_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14" TARGET="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14" TARGET="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:55</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#50_14" TARGET="main">Put - terminal_interface-curses-text_io-fixed_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#57_14" TARGET="main">Put - terminal_interface-curses-text_io-fixed_io.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#50_14" TARGET="main">Put - terminal_interface-curses-text_io-float_io.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#57_14" TARGET="main">Put - terminal_interface-curses-text_io-float_io.ads:57</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#49_14" TARGET="main">Put - terminal_interface-curses-text_io-integer_io.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#55_14" TARGET="main">Put - terminal_interface-curses-text_io-integer_io.ads:55</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#49_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#55_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:55</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#108_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:108</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#109_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:109</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#115_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:115</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#116_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:116</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#143_16" TARGET="main">putp</A>
-<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#53_16" TARGET="main">putwin</A>
-<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#47_14" TARGET="main">Put_Buf</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#118_14" TARGET="main">Put_Line - terminal_interface-curses-text_io.ads:118</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#122_14" TARGET="main">Put_Line - terminal_interface-curses-text_io.ads:122</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#76_14" TARGET="main">Put_String</A>
-<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#45_14" TARGET="main">Put_Window</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_80_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:80</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_81_13" TARGET="main">Page_Length - terminal_interface-curses-text_io.ads:81</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2200_16" TARGET="main">Paircontent</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_144_16" TARGET="main">Panel_Hidden</A>
+<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_65_16" TARGET="main">Panel_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_105_16" TARGET="main">Panel_Win</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1565_16" TARGET="main">Pechochar</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1540_16" TARGET="main">Pnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_941_16" TARGET="main">Pos_Form_Cursor</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_499_16" TARGET="main">Pos_Menu_Cursor</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1510_16" TARGET="main">Prefresh</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13" TARGET="main">Previous</A>
+<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:54</A>
+<LI><A HREF="../terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14" TARGET="main">Put - terminal_interface-curses-text_io-complex_io.ads:61</A>
+<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14" TARGET="main">Put - terminal_interface-curses-text_io-decimal_io.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14" TARGET="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14" TARGET="main">Put - terminal_interface-curses-text_io-enumeration_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-fixed_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14" TARGET="main">Put - terminal_interface-curses-text_io-fixed_io.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14" TARGET="main">Put - terminal_interface-curses-text_io-float_io.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14" TARGET="main">Put - terminal_interface-curses-text_io-float_io.ads:57</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14" TARGET="main">Put - terminal_interface-curses-text_io-integer_io.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14" TARGET="main">Put - terminal_interface-curses-text_io-integer_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14" TARGET="main">Put - terminal_interface-curses-text_io-modular_io.ads:55</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_108_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:108</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_109_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:109</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_115_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:115</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_116_14" TARGET="main">Put - terminal_interface-curses-text_io.ads:116</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_143_16" TARGET="main">putp</A>
+<LI><A HREF="../terminal_interface-curses-putwin__adb.htm#ref_53_16" TARGET="main">putwin</A>
+<LI><A HREF="../terminal_interface-curses-text_io-aux__ads.htm#ref_47_14" TARGET="main">Put_Buf</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_118_14" TARGET="main">Put_Line - terminal_interface-curses-text_io.ads:118</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_122_14" TARGET="main">Put_Line - terminal_interface-curses-text_io.ads:122</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__ads.htm#ref_76_14" TARGET="main">Put_String</A>
+<LI><A HREF="../terminal_interface-curses-putwin__ads.htm#ref_45_14" TARGET="main">Put_Window</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Q</TITLE></HEAD>
<BODY>
<H2>Functions - Q</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#933_17" TARGET="main">Qiflush</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_934_17" TARGET="main">Qiflush</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>R</TITLE></HEAD>
<BODY>
<H2>Functions - R</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#842_16" TARGET="main">Raw</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1141_16" TARGET="main">Redrawwin</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14" TARGET="main">Release - terminal_interface-curses-forms-field_types-enumeration.ads:77</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1133_17" TARGET="main">Release - terminal_interface-curses-forms.adb:1133</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#994_17" TARGET="main">Release - terminal_interface-curses-menus.adb:994</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#52_17" TARGET="main">Release_String</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#118_16" TARGET="main">Replace_Pan</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#79_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:79</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#87_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:87</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2321_16" TARGET="main">Resetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2293_16" TARGET="main">Reset_Prog_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2295_16" TARGET="main">Reset_Shell_Mode</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2332_16" TARGET="main">Ripoffline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_843_16" TARGET="main">Raw</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1145_16" TARGET="main">Redrawwin</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14" TARGET="main">Release - terminal_interface-curses-forms-field_types-enumeration.ads:77</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1134_17" TARGET="main">Release - terminal_interface-curses-forms.adb:1134</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_995_17" TARGET="main">Release - terminal_interface-curses-menus.adb:995</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_52_17" TARGET="main">Release_String</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_119_16" TARGET="main">Replace_Pan</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_80_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:80</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_88_16" TARGET="main">Request_Name - terminal_interface-curses-menus.adb:88</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2328_16" TARGET="main">Resetty</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2300_16" TARGET="main">Reset_Prog_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2302_16" TARGET="main">Reset_Shell_Mode</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2339_16" TARGET="main">Ripoffline</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>S</TITLE></HEAD>
<BODY>
<H2>Functions - S</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2311_16" TARGET="main">Savetty</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1077_16" TARGET="main">Scrollok</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2493_16" TARGET="main">scr_dump</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2519_16" TARGET="main">scr_init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2506_16" TARGET="main">scr_restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2532_16" TARGET="main">scr_set</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#92_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:92</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#93_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:93</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1025_16" TARGET="main">Set_Current_Fld</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#286_16" TARGET="main">Set_Curr_Item</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#447_16" TARGET="main">Set_Field_Back</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#403_16" TARGET="main">Set_Field_Fore</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#664_16" TARGET="main">Set_Field_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#195_16" TARGET="main">Set_Field_Just</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#309_16" TARGET="main">Set_Field_Max</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#329_16" TARGET="main">Set_Field_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#489_16" TARGET="main">Set_Field_Pad</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#680_16" TARGET="main">Set_Field_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alpha.ads:49</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alphanumeric.ads:50</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-enumeration.ads:84</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-intfield.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-ipv4_address.ads:47</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-numeric.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-regexp.ads:51</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#70_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-user.ads:70</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#57_16" TARGET="main">Set_Field_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#230_16" TARGET="main">Set_Fld_Buffer</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#277_16" TARGET="main">Set_Fld_Status</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#97_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:97</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-intfield.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:54</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:56</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#55_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:55</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#151_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:151</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#696_16" TARGET="main">Set_Form_Init</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#844_16" TARGET="main">Set_Form_Opts</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#612_16" TARGET="main">Set_Form_Sub</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#712_16" TARGET="main">Set_Form_Term</A>
-<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#58_16" TARGET="main">Set_Form_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#584_16" TARGET="main">Set_Form_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#732_16" TARGET="main">Set_Frm_Fields</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1055_16" TARGET="main">Set_Frm_Page</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#54_16" TARGET="main">Set_Ftyp</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#892_16" TARGET="main">Set_Items</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#804_16" TARGET="main">Set_Item_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#193_16" TARGET="main">Set_Item_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#818_16" TARGET="main">Set_Item_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#51_16" TARGET="main">Set_Item_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#154_16" TARGET="main">Set_Item_Val</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#95_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:95</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#96_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:96</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#513_16" TARGET="main">Set_Mark</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#590_16" TARGET="main">Set_Menu_Back</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#767_16" TARGET="main">Set_Menu_Fmt</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#551_16" TARGET="main">Set_Menu_Fore</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#628_16" TARGET="main">Set_Menu_Grey</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#832_16" TARGET="main">Set_Menu_Init</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#373_16" TARGET="main">Set_Menu_Opts</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#666_16" TARGET="main">Set_Menu_Pad</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#456_16" TARGET="main">Set_Menu_Sub</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#846_16" TARGET="main">Set_Menu_Term</A>
-<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#50_16" TARGET="main">Set_Menu_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#432_16" TARGET="main">Set_Menu_Win</A>
-<LI><A HREF="../terminal_interface-curses-forms__adb.htm#1104_16" TARGET="main">Set_Page</A>
-<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#54_16" TARGET="main">Set_Panel_Userptr</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#735_16" TARGET="main">Set_Pattern</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#692_16" TARGET="main">Set_Spacing</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#313_16" TARGET="main">Set_Toprow</A>
-<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#59_14" TARGET="main">Set_Window</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#84_16" TARGET="main">Showpanel</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1982_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1982</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1992_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1992</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1946_16" TARGET="main">Slk_Attroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1944_16" TARGET="main">Slk_Attron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1968_16" TARGET="main">Slk_Attrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1912_16" TARGET="main">Slk_Clear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2002_16" TARGET="main">Slk_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1846_16" TARGET="main">Slk_Init</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1896_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1896</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1904_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1904</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1885_16" TARGET="main">Slk_Noutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1875_16" TARGET="main">Slk_Refresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1922_16" TARGET="main">Slk_Restore</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1858_16" TARGET="main">Slk_Set</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1932_16" TARGET="main">Slk_Touch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1474_16" TARGET="main">Subpad</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#322_16" TARGET="main">Subwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#415_16" TARGET="main">Syncok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2318_16" TARGET="main">Savetty</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1081_16" TARGET="main">Scrollok</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2500_16" TARGET="main">scr_dump</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2526_16" TARGET="main">scr_init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2513_16" TARGET="main">scr_restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2539_16" TARGET="main">scr_set</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_92_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:92</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_93_14" TARGET="main">Set_Col - terminal_interface-curses-text_io.ads:93</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1026_16" TARGET="main">Set_Current_Fld</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_287_16" TARGET="main">Set_Curr_Item</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_448_16" TARGET="main">Set_Field_Back</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_404_16" TARGET="main">Set_Field_Fore</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_665_16" TARGET="main">Set_Field_Init</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_196_16" TARGET="main">Set_Field_Just</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_310_16" TARGET="main">Set_Field_Max</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_330_16" TARGET="main">Set_Field_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_490_16" TARGET="main">Set_Field_Pad</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_681_16" TARGET="main">Set_Field_Term</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alpha.ads:49</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-alphanumeric.ads:50</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-enumeration.ads:84</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-intfield.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-ipv4_address.ads:47</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-numeric.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-regexp.ads:51</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14" TARGET="main">Set_Field_Type - terminal_interface-curses-forms-field_types-user.ads:70</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16" TARGET="main">Set_Field_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_231_16" TARGET="main">Set_Fld_Buffer</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_278_16" TARGET="main">Set_Fld_Status</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alpha.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-alphanumeric.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-enumeration.adb:97</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-intfield.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_54_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-ipv4_address.adb:54</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-numeric.adb:56</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types-user.adb:56</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_152_16" TARGET="main">Set_Fld_Type - terminal_interface-curses-forms-field_types.adb:152</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_697_16" TARGET="main">Set_Form_Init</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_845_16" TARGET="main">Set_Form_Opts</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_613_16" TARGET="main">Set_Form_Sub</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_713_16" TARGET="main">Set_Form_Term</A>
+<LI><A HREF="../terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16" TARGET="main">Set_Form_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_585_16" TARGET="main">Set_Form_Win</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_733_16" TARGET="main">Set_Frm_Fields</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1056_16" TARGET="main">Set_Frm_Page</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_54_16" TARGET="main">Set_Ftyp</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_893_16" TARGET="main">Set_Items</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_805_16" TARGET="main">Set_Item_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_194_16" TARGET="main">Set_Item_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_819_16" TARGET="main">Set_Item_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16" TARGET="main">Set_Item_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_155_16" TARGET="main">Set_Item_Val</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_95_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:95</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_96_14" TARGET="main">Set_Line - terminal_interface-curses-text_io.ads:96</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_514_16" TARGET="main">Set_Mark</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_591_16" TARGET="main">Set_Menu_Back</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_768_16" TARGET="main">Set_Menu_Fmt</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_552_16" TARGET="main">Set_Menu_Fore</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_629_16" TARGET="main">Set_Menu_Grey</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_833_16" TARGET="main">Set_Menu_Init</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_374_16" TARGET="main">Set_Menu_Opts</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_667_16" TARGET="main">Set_Menu_Pad</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_457_16" TARGET="main">Set_Menu_Sub</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_847_16" TARGET="main">Set_Menu_Term</A>
+<LI><A HREF="../terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16" TARGET="main">Set_Menu_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_433_16" TARGET="main">Set_Menu_Win</A>
+<LI><A HREF="../terminal_interface-curses-forms__adb.htm#ref_1105_16" TARGET="main">Set_Page</A>
+<LI><A HREF="../terminal_interface-curses-panels-user_data__adb.htm#ref_54_16" TARGET="main">Set_Panel_Userptr</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_736_16" TARGET="main">Set_Pattern</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_693_16" TARGET="main">Set_Spacing</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_314_16" TARGET="main">Set_Toprow</A>
+<LI><A HREF="../terminal_interface-curses-text_io__ads.htm#ref_59_14" TARGET="main">Set_Window</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_85_16" TARGET="main">Showpanel</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1989_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1989</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1999_16" TARGET="main">Slk_Attr - terminal_interface-curses.adb:1999</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1953_16" TARGET="main">Slk_Attroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1951_16" TARGET="main">Slk_Attron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1975_16" TARGET="main">Slk_Attrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1919_16" TARGET="main">Slk_Clear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2009_16" TARGET="main">Slk_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1853_16" TARGET="main">Slk_Init</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1903_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1903</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1911_16" TARGET="main">Slk_Label - terminal_interface-curses.adb:1911</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1892_16" TARGET="main">Slk_Noutrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1882_16" TARGET="main">Slk_Refresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1929_16" TARGET="main">Slk_Restore</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1865_16" TARGET="main">Slk_Set</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1939_16" TARGET="main">Slk_Touch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1480_16" TARGET="main">Subpad</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_323_16" TARGET="main">Subwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_416_16" TARGET="main">Syncok</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>T</TITLE></HEAD>
<BODY>
<H2>Functions - T</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2127_16" TARGET="main">Termattrs</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2153_16" TARGET="main">Termname - terminal_interface-curses.adb:2153</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2161_16" TARGET="main">Termname - terminal_interface-curses.adb:2161</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#50_16" TARGET="main">tgetent</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#70_16" TARGET="main">tgetflag</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#88_16" TARGET="main">tgetnum</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#107_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:107</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#128_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:128</A>
-<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#150_16" TARGET="main">tgoto</A>
-<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#53_13" TARGET="main">TGoto</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#69_16" TARGET="main">tigetflag</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#87_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:87</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#108_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:108</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#127_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:127</A>
-<LI><A HREF="../terminal_interface-curses-panels__adb.htm#74_16" TARGET="main">Toppanel</A>
-<LI><A HREF="../terminal_interface-curses-menus__adb.htm#326_16" TARGET="main">Toprow</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#106_16" TARGET="main">To_Access</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm#49_13" TARGET="main">To_Argument_Access - terminal_interface-curses-forms-field_types-user-choice.adb:49</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#80_13" TARGET="main">To_Argument_Access - terminal_interface-curses-forms-field_types-user.adb:80</A>
-<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#55_13" TARGET="main">To_Argument_Access - terminal_interface-curses-forms-field_types.adb:55</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#75_16" TARGET="main">To_Pointer</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#55_16" TARGET="main">To_Weird</A>
-<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#140_16" TARGET="main">tputs</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2420_16" TARGET="main">Transform</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2134_16" TARGET="main">Termattrs</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2160_16" TARGET="main">Termname - terminal_interface-curses.adb:2160</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2168_16" TARGET="main">Termname - terminal_interface-curses.adb:2168</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_51_16" TARGET="main">tgetent</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_71_16" TARGET="main">tgetflag</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_89_16" TARGET="main">tgetnum</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_108_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:108</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_129_16" TARGET="main">tgetstr - terminal_interface-curses-termcap.adb:129</A>
+<LI><A HREF="../terminal_interface-curses-termcap__adb.htm#ref_151_16" TARGET="main">tgoto</A>
+<LI><A HREF="../terminal_interface-curses-termcap__ads.htm#ref_53_13" TARGET="main">TGoto</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_69_16" TARGET="main">tigetflag</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_87_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:87</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_108_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:108</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_127_16" TARGET="main">tigetstr - terminal_interface-curses-terminfo.adb:127</A>
+<LI><A HREF="../terminal_interface-curses-panels__adb.htm#ref_75_16" TARGET="main">Toppanel</A>
+<LI><A HREF="../terminal_interface-curses-menus__adb.htm#ref_327_16" TARGET="main">Toprow</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_107_16" TARGET="main">To_Access</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13" TARGET="main">To_Argument_Access - terminal_interface-curses-forms-field_types-user-choice.adb:50</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_13" TARGET="main">To_Argument_Access - terminal_interface-curses-forms-field_types-user.adb:82</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types__adb.htm#ref_56_13" TARGET="main">To_Argument_Access - terminal_interface-curses-forms-field_types.adb:56</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_76_16" TARGET="main">To_Pointer</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_55_16" TARGET="main">To_Weird</A>
+<LI><A HREF="../terminal_interface-curses-terminfo__adb.htm#ref_140_16" TARGET="main">tputs</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2427_16" TARGET="main">Transform</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>U</TITLE></HEAD>
<BODY>
<H2>Functions - U</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2043_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2043</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2051_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2051</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#589_16" TARGET="main">Ungetch</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#183_16" TARGET="main">Ungetmouse</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2478_16" TARGET="main">use_extended_namesC</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2050_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2050</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2058_16" TARGET="main">Unctrl - terminal_interface-curses.adb:2058</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_590_16" TARGET="main">Ungetch</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_189_16" TARGET="main">Ungetmouse</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2485_16" TARGET="main">use_extended_namesC</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>V</TITLE></HEAD>
<BODY>
<H2>Functions - V</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13" TARGET="main">Value</A>
+<LI><A HREF="../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13" TARGET="main">Value</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>W</TITLE></HEAD>
<BODY>
<H2>Functions - W</H2>
<A HREF="../funcs.htm" TARGET="_self">[index]</A>
<UL COMPACT TYPE=DISC>
-<LI><A HREF="../terminal_interface-curses__adb.htm#203_16" TARGET="main">Waddch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#459_16" TARGET="main">Waddchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#428_16" TARGET="main">Waddnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#707_16" TARGET="main">Wattrget - terminal_interface-curses.adb:707</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#730_16" TARGET="main">Wattrget - terminal_interface-curses.adb:730</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#666_16" TARGET="main">Wattroff</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#663_16" TARGET="main">Wattron</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#691_16" TARGET="main">Wattrset</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1210_17" TARGET="main">WBackground</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#500_16" TARGET="main">Wborder</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1220_16" TARGET="main">WChangeBkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#771_16" TARGET="main">Wchgat</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1178_16" TARGET="main">Wclear</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1188_16" TARGET="main">Wclearbot</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1198_16" TARGET="main">Wcleareol</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1595_16" TARGET="main">Wdelch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#306_16" TARGET="main">Wdelwin</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#260_16" TARGET="main">Wechochar</A>
-<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#194_16" TARGET="main">Wenclose</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1168_16" TARGET="main">Werase</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1231_16" TARGET="main">Wgetbkgd</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#575_16" TARGET="main">Wgetch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1806_16" TARGET="main">Wgetnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#542_16" TARGET="main">Whline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1621_16" TARGET="main">Winch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1759_16" TARGET="main">Winchnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1717_16" TARGET="main">Winnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1643_16" TARGET="main">Winsch</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1372_16" TARGET="main">Winsdelln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1675_16" TARGET="main">Winsnstr</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1284_16" TARGET="main">WLineTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#189_16" TARGET="main">Wmove</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1131_16" TARGET="main">Wnoutrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1154_16" TARGET="main">Wredrawln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1120_16" TARGET="main">Wrefresh</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#2546_16" TARGET="main">wresize</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1583_16" TARGET="main">Wscrl</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1097_16" TARGET="main">Wsetscrreg</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#753_16" TARGET="main">Wset_Color</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#643_16" TARGET="main">wstandend</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#641_16" TARGET="main">wstandout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#961_16" TARGET="main">Wtimeout</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1242_16" TARGET="main">Wtouchln</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#559_16" TARGET="main">Wvline</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#1297_16" TARGET="main">WWinTouched</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#90_13" TARGET="main">W_Get_Byte</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#65_13" TARGET="main">W_Get_Element</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#88_13" TARGET="main">W_Get_Int</A>
-<LI><A HREF="../terminal_interface-curses__adb.htm#89_13" TARGET="main">W_Get_Short</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_204_16" TARGET="main">Waddch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_460_16" TARGET="main">Waddchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_429_16" TARGET="main">Waddnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_708_16" TARGET="main">Wattrget - terminal_interface-curses.adb:708</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_731_16" TARGET="main">Wattrget - terminal_interface-curses.adb:731</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_667_16" TARGET="main">Wattroff</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_664_16" TARGET="main">Wattron</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_692_16" TARGET="main">Wattrset</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1214_17" TARGET="main">WBackground</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_501_16" TARGET="main">Wborder</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1224_16" TARGET="main">WChangeBkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_772_16" TARGET="main">Wchgat</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1182_16" TARGET="main">Wclear</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1192_16" TARGET="main">Wclearbot</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1202_16" TARGET="main">Wcleareol</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1601_16" TARGET="main">Wdelch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_307_16" TARGET="main">Wdelwin</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_261_16" TARGET="main">Wechochar</A>
+<LI><A HREF="../terminal_interface-curses-mouse__adb.htm#ref_200_16" TARGET="main">Wenclose</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1172_16" TARGET="main">Werase</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1235_16" TARGET="main">Wgetbkgd</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_576_16" TARGET="main">Wgetch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1813_16" TARGET="main">Wgetnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_543_16" TARGET="main">Whline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1627_16" TARGET="main">Winch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1765_16" TARGET="main">Winchnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1723_16" TARGET="main">Winnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1649_16" TARGET="main">Winsch</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1376_16" TARGET="main">Winsdelln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1681_16" TARGET="main">Winsnstr</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1288_16" TARGET="main">WLineTouched</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_190_16" TARGET="main">Wmove</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1135_16" TARGET="main">Wnoutrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1158_16" TARGET="main">Wredrawln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1124_16" TARGET="main">Wrefresh</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_2553_16" TARGET="main">wresize</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1589_16" TARGET="main">Wscrl</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1101_16" TARGET="main">Wsetscrreg</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_754_16" TARGET="main">Wset_Color</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_644_16" TARGET="main">wstandend</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_642_16" TARGET="main">wstandout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_965_16" TARGET="main">Wtimeout</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1246_16" TARGET="main">Wtouchln</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_560_16" TARGET="main">Wvline</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_1301_16" TARGET="main">WWinTouched</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_91_13" TARGET="main">W_Get_Byte</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_66_13" TARGET="main">W_Get_Element</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_89_13" TARGET="main">W_Get_Int</A>
+<LI><A HREF="../terminal_interface-curses__adb.htm#ref_90_13" TARGET="main">W_Get_Short</A>
</UL></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<HTML>
<HEAD><TITLE>Source Browser</TITLE></HEAD>
-<FRAMESET COLS='250,*'>
-<NOFRAME>
+<FRAMESET COLS="250,*">
+<NOFRAMES>
<H2 ALIGN=CENTER>Files</H2>
<A HREF="files/T.htm">[T]</A>
-</UL>
<HR>
<H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
<A HREF="funcs/A.htm">[A]</A>
<A HREF="funcs/B.htm">[B]</A>
<A HREF="funcs/C.htm">[C]</A>
<A HREF="funcs/U.htm">[U]</A>
<A HREF="funcs/V.htm">[V]</A>
<A HREF="funcs/W.htm">[W]</A>
-</UL>
-</NOFRAME>
-<FRAMESET ROWS='50%,50%'>
+</NOFRAMES>
+<FRAMESET ROWS="50%,50%">
<FRAME NAME=files SRC=files.htm>
<FRAME NAME=funcs SRC=funcs.htm>
</FRAMESET>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE></TITLE></HEAD>
<BODY>
<P ALIGN=right><A HREF="main.htm" TARGET="_top">[No frame version is here]</A><P><H2 ALIGN=CENTER>Files</H2>
<A HREF="files/T.htm">[T]</A>
-</UL>
<HR><H2 ALIGN=CENTER>Functions/Procedures</H2>
-<A HREF="funcs/ .htm">[ ]</A>
<A HREF="funcs/A.htm">[A]</A>
<A HREF="funcs/B.htm">[B]</A>
<A HREF="funcs/C.htm">[C]</A>
<A HREF="funcs/U.htm">[U]</A>
<A HREF="funcs/V.htm">[V]</A>
<A HREF="funcs/W.htm">[W]</A>
-</UL>
<HR>
You should start your browsing with one of these files:
<UL>
<LI><A HREF="terminal_interface-curses-trace__ads.htm">terminal_interface-curses-trace.ads</A>
<LI><A HREF="terminal_interface-curses__ads.htm">terminal_interface-curses.ads</A>
<LI><A HREF="terminal_interface__ads.htm">terminal_interface.ads</A>
-</BODY></HTML>
\ No newline at end of file
+</UL>
+</BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-aux.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_41_40" HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A></FONT> <b>is</b>
<FONT COLOR=green><EM>--</EM></FONT>
<FONT COLOR=green><EM>-- Some helpers</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A><FONT COLOR=red><A NAME="44_14"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A> : <b>in</b> chars_ptr;
- <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_44_27" HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A></FONT> : <b>in</b> chars_ptr;
+ <FONT COLOR=red><A NAME="ref_45_27" HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A></FONT> : <b>out</b> String)
<b>is</b>
<FONT COLOR=green><EM>-- Fill the string with the characters referenced by the</EM></FONT>
<FONT COLOR=green><EM>-- chars_ptr.</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=red><A NAME="50_7">Len</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_50_7">Len</A></FONT> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A> /= Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A>));
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'Length < <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A> /= Null_Ptr <b>then</b>
+ <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'Length < <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
<b>declare</b>
- <FONT COLOR=red><A NAME="58_13">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A>);
+ <FONT COLOR=red><A NAME="ref_58_13">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#58_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#116_27">Cp</A>);
- <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#58_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#58_13">S</A>'<b>Range</b>);
+ <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> := Value (<A HREF="terminal_interface-curses-aux__ads.htm#ref_116_27">Cp</A>);
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First .. (<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> - 1)) := <A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A> (<A HREF="terminal_interface-curses-aux__adb.htm#ref_58_13">S</A>'<b>Range</b>);
<b>end</b>;
<b>else</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> := 0;
+ <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> := 0;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A> < <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#50_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#117_27">Str</A>'Last) := (<b>others</b> => ' ');
+ <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A> < <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'Length <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A> ((<A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'First + <A HREF="terminal_interface-curses-aux__adb.htm#ref_50_7">Len</A>) .. <A HREF="terminal_interface-curses-aux__ads.htm#ref_117_27">Str</A>'Last) := (<b>others</b> => ' ');
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A><A HREF="terminal_interface-curses-aux__ads.htm#116_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A>;
- <b>function</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A> : chars_ptr) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_73_13" HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A></FONT> (<FONT COLOR=red><A NAME="ref_73_26" HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A></FONT> : chars_ptr) <b>return</b> String
<b>is</b>
- <FONT COLOR=red><A NAME="75_7">Len</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_75_7">Len</A></FONT> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A> /= Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A>));
- <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A> = 0 <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A> /= Null_Ptr <b>then</b>
+ <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A> := Natural (Strlen (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A> = 0 <b>then</b>
<b>return</b> "";
<b>else</b>
<b>declare</b>
- <FONT COLOR=red><A NAME="83_16">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#75_7">Len</A>);
+ <FONT COLOR=red><A NAME="ref_83_16">S</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-aux__adb.htm#ref_75_7">Len</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#83_16">S</A>);
- <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#83_16">S</A>;
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_26">Cp</A>, <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-aux__adb.htm#ref_83_16">S</A>;
<b>end</b>;
<b>end</b> <b>if</b>;
<b>else</b>
<b>return</b> "";
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A><A HREF="terminal_interface-curses-aux__ads.htm#121_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A><FONT COLOR=red><A NAME="94_14"></A></FONT> (<A HREF="terminal_interface-curses-aux__ads.htm#96_29">Code</A> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_94_14" HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A></FONT> (<FONT COLOR=red><A NAME="ref_94_29" HREF="terminal_interface-curses-aux__ads.htm#ref_96_29">Code</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>)
<b>is</b>
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#96_29">Code</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> => <b>null</b>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#81_4">E_System_Error</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#388_4">Eti_System_Error</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#82_4">E_Bad_Argument</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#389_4">Eti_Bad_Argument</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#83_4">E_Posted</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#390_4">Eti_Posted</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#84_4">E_Connected</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#391_4">Eti_Connected</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#85_4">E_Bad_State</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#392_4">Eti_Bad_State</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#86_4">E_No_Room</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#393_4">Eti_No_Room</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#87_4">E_Not_Posted</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#394_4">Eti_Not_Posted</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#88_4">E_Unknown_Command</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#395_4">Eti_Unknown_Command</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_No_Match</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#396_4">Eti_No_Match</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#90_4">E_Not_Selectable</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#397_4">Eti_Not_Selectable</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#91_4">E_Not_Connected</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#398_4">Eti_Not_Connected</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#92_4">E_Request_Denied</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#399_4">Eti_Request_Denied</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#93_4">E_Invalid_Field</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#400_4">Eti_Invalid_Field</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#94_4">E_Current</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#401_4">Eti_Current</A>;
+ <b>case</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_29">Code</A> <b>is</b>
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> => <b>null</b>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_81_4">E_System_Error</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_4">Eti_System_Error</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_82_4">E_Bad_Argument</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_390_4">Eti_Bad_Argument</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_83_4">E_Posted</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_391_4">Eti_Posted</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_84_4">E_Connected</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_392_4">Eti_Connected</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_85_4">E_Bad_State</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_393_4">Eti_Bad_State</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_86_4">E_No_Room</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_394_4">Eti_No_Room</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_87_4">E_Not_Posted</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_395_4">Eti_Not_Posted</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_396_4">Eti_Unknown_Command</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_397_4">Eti_No_Match</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_398_4">Eti_Not_Selectable</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_91_4">E_Not_Connected</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_399_4">Eti_Not_Connected</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_400_4">Eti_Request_Denied</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_4">E_Invalid_Field</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_401_4">Eti_Invalid_Field</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_94_4">E_Current</A> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_402_4">Eti_Current</A>;
<b>end</b> <b>case</b>;
- <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A><A HREF="terminal_interface-curses-aux__ads.htm#96_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A><A HREF="terminal_interface-curses-aux__ads.htm#50_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-aux.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-aux.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="unchconv__ads.htm#22_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">System</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="unchconv__ads.htm#ref_22_10">Interfaces</A>.C.Strings; <b>use</b> Interfaces.C.Strings;
<b>with</b> Unchecked_Conversion;
<b>package</b> Terminal_Interface.Curses.Aux <b>is</b>
<b>use</b> <b>type</b> Interfaces.C.int;
- <b>subtype</b> <FONT COLOR=red><A NAME="56_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
- <b>subtype</b> <FONT COLOR=red><A NAME="57_12">C_Short</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short;
- <b>subtype</b> <FONT COLOR=red><A NAME="58_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.long;
- <b>subtype</b> <FONT COLOR=red><A NAME="59_12">C_Size_T</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.size_t;
- <b>subtype</b> <FONT COLOR=red><A NAME="60_12">C_UInt</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned;
- <b>subtype</b> <FONT COLOR=red><A NAME="61_12">C_ULong</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned_long;
- <b>subtype</b> C_Char_Ptr <b>is</b> Interfaces.C.Strings.chars_ptr;
- <b>type</b> C_Void_Ptr <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#60_12">System</A>.Address;
- <b>type</b> C_Chtype <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#60_12">C_ULong</A>;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_56_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_57_12">C_Short</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">C_Long_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.long;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_59_12">C_Size_T</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.size_t;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_60_12">C_UInt</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.unsigned;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_61_12">C_ULong</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.unsigned_long;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_62_12">C_Char_Ptr</A></FONT> <b>is</b> Interfaces.C.Strings.chars_ptr;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_63_12">C_Void_Ptr</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">System</A>.Address;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_64_12">C_Chtype</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_60_12">C_ULong</A>;
<b>type</b> C_AttrType <b>is</b> <b>new</b> C_ULong;
<FONT COLOR=green><EM>-- This is how those constants are defined in ncurses. I see them also</EM></FONT>
<FONT COLOR=green><EM>-- could be that this is quite general, but please check with your curses.</EM></FONT>
<FONT COLOR=green><EM>-- This is critical, because curses sometime mixes boolean returns with</EM></FONT>
<FONT COLOR=green><EM>-- returning an error status.</EM></FONT>
- <FONT COLOR=red><A NAME="72_4">Curses_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := 0;
+ <FONT COLOR=red><A NAME="ref_72_4">Curses_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 0;
Curses_Err : <b>constant</b> C_Int := -1;
- <FONT COLOR=red><A NAME="75_4">Curses_True</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := 1;
+ <FONT COLOR=red><A NAME="ref_75_4">Curses_True</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := 1;
Curses_False : <b>constant</b> C_Int := 0;
<FONT COLOR=green><EM>-- Eti_Error: type for error codes returned by the menu and form subsystem</EM></FONT>
<b>subtype</b> Eti_Error <b>is</b> C_Int <b>range</b> -14 .. 0;
- <FONT COLOR=red><A NAME="81_4">E_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := 0;
- <FONT COLOR=red><A NAME="82_4">E_System_Error</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -1;
- <FONT COLOR=red><A NAME="83_4">E_Bad_Argument</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -2;
- <FONT COLOR=red><A NAME="84_4">E_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -3;
- <FONT COLOR=red><A NAME="85_4">E_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -4;
- <FONT COLOR=red><A NAME="86_4">E_Bad_State</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -5;
- <FONT COLOR=red><A NAME="87_4">E_No_Room</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -6;
- <FONT COLOR=red><A NAME="88_4">E_Not_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -7;
- <FONT COLOR=red><A NAME="89_4">E_Unknown_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -8;
- <FONT COLOR=red><A NAME="90_4">E_No_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -9;
- <FONT COLOR=red><A NAME="91_4">E_Not_Selectable</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -10;
- <FONT COLOR=red><A NAME="92_4">E_Not_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -11;
- <FONT COLOR=red><A NAME="93_4">E_Request_Denied</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -12;
- <FONT COLOR=red><A NAME="94_4">E_Invalid_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := -13;
+ <FONT COLOR=red><A NAME="ref_81_4">E_Ok</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := 0;
+ <FONT COLOR=red><A NAME="ref_82_4">E_System_Error</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -1;
+ <FONT COLOR=red><A NAME="ref_83_4">E_Bad_Argument</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -2;
+ <FONT COLOR=red><A NAME="ref_84_4">E_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -3;
+ <FONT COLOR=red><A NAME="ref_85_4">E_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -4;
+ <FONT COLOR=red><A NAME="ref_86_4">E_Bad_State</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -5;
+ <FONT COLOR=red><A NAME="ref_87_4">E_No_Room</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -6;
+ <FONT COLOR=red><A NAME="ref_88_4">E_Not_Posted</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -7;
+ <FONT COLOR=red><A NAME="ref_89_4">E_Unknown_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -8;
+ <FONT COLOR=red><A NAME="ref_90_4">E_No_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -9;
+ <FONT COLOR=red><A NAME="ref_91_4">E_Not_Selectable</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -10;
+ <FONT COLOR=red><A NAME="ref_92_4">E_Not_Connected</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -11;
+ <FONT COLOR=red><A NAME="ref_93_4">E_Request_Denied</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -12;
+ <FONT COLOR=red><A NAME="ref_94_4">E_Invalid_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := -13;
E_Current : <b>constant</b> Eti_Error := -14;
<b>procedure</b> Eti_Exception (Code : Eti_Error);
<FONT COLOR=green><EM>--</EM></FONT>
<FONT COLOR=green><EM>-- Some helpers</EM></FONT>
<b>function</b> Chtype_To_AttrChar <b>is</b> <b>new</b>
- Unchecked_Conversion (Source => <A HREF="terminal_interface-curses__ads.htm#351_9">C_Chtype</A>,
- <FONT COLOR=red><A NAME="104_13"> </A></FONT> Target => Attributed_Character);
+ Unchecked_Conversion (Source => <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_Chtype</A>,
+ <FONT COLOR=red><A NAME="ref_104_13"> </A></FONT> Target => Attributed_Character);
<b>function</b> AttrChar_To_Chtype <b>is</b> <b>new</b>
- Unchecked_Conversion (Source => Attributed_Character,
+ Unchecked_Conversion (Source => <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">Attributed_Character</A>,
Target => C_Chtype);
<b>function</b> AttrChar_To_AttrType <b>is</b> <b>new</b>
- Unchecked_Conversion (Source => Attributed_Character,
+ Unchecked_Conversion (Source => <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">Attributed_Character</A>,
Target => C_AttrType);
<b>function</b> AttrType_To_AttrChar <b>is</b> <b>new</b>
- Unchecked_Conversion (Source => <A HREF="terminal_interface-curses__ads.htm#351_9">C_AttrType</A>,
+ Unchecked_Conversion (Source => <A HREF="terminal_interface-curses__ads.htm#ref_352_9">C_AttrType</A>,
Target => Attributed_Character);
- <b>procedure</b> Fill_String (<FONT COLOR=red><A NAME="117_27">Cp</A></FONT> : <b>in</b> chars_ptr;
+ <b>procedure</b> Fill_String (<FONT COLOR=red><A NAME="ref_117_27" HREF="terminal_interface-curses-aux__adb.htm#ref_45_27">Cp</A></FONT> : <b>in</b> chars_ptr;
Str : <b>out</b> String);
<FONT COLOR=green><EM>-- Fill the Str parameter with the string denoted by the chars_ptr</EM></FONT>
<FONT COLOR=green><EM>-- C-Style string.</EM></FONT>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.8 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A> : <b>in</b> Alpha_Field)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="51_7">C_Alpha_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#51_7">C_Alpha_Field_Type</A>, "TYPE_ALPHA");
+ <FONT COLOR=red><A NAME="ref_51_7">C_Alpha_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_51_7">C_Alpha_Field_Type</A>, "TYPE_ALPHA");
- <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_30">Fld</A>;
- <FONT COLOR=red><A NAME="55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#51_7">C_Alpha_Field_Type</A>;
- <FONT COLOR=red><A NAME="56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_51_7">C_Alpha_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
- <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#56_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#46_9">Minimum_Field_Width</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#59_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_56_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_46_9">Minimum_Field_Width</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_59_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#50_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_50_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_49_14">Set_Field_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alpha.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alpha.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">Alpha</A></FONT> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_44_58">Alpha</A></FONT> <b>is</b>
+ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>);
- <b>type</b> Alpha_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Alpha_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>
<b>with</b> <b>record</b>
- <FONT COLOR=red><A NAME="46_9">Minimum_Field_Width</A></FONT> : Natural := 0;
+ <FONT COLOR=red><A NAME="ref_46_9">Minimum_Field_Width</A></FONT> : Natural := 0;
<b>end</b> <b>record</b>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<FONT COLOR=red><A NAME="49_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="50_30">Typ</A></FONT> : <b>in</b> Alpha_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_48_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alpha__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_44_9">Alpha_Field</A>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">Alpha</A><A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#ref_41_53">Alpha</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.8 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A> : <b>in</b> AlphaNumeric_Field)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="51_7">C_AlphaNumeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#51_7">C_AlphaNumeric_Field_Type</A>, "TYPE_ALNUM");
+ <FONT COLOR=red><A NAME="ref_51_7">C_AlphaNumeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_51_7">C_AlphaNumeric_Field_Type</A>, "TYPE_ALNUM");
- <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_30">Fld</A>;
- <FONT COLOR=red><A NAME="55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#51_7">C_AlphaNumeric_Field_Type</A>;
- <FONT COLOR=red><A NAME="56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_51_7">C_AlphaNumeric_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
- <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#56_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#47_9">Minimum_Field_Width</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#59_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_56_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_47_9">Minimum_Field_Width</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_59_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#51_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_51_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_50_14">Set_Field_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-alphanumeric.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-alphanumeric.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">AlphaNumeric</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_44_58">AlphaNumeric</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A>);
+ (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>);
- <b>type</b> AlphaNumeric_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_45_9">AlphaNumeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>
<b>with</b> <b>record</b>
- <FONT COLOR=red><A NAME="47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
+ <FONT COLOR=red><A NAME="ref_47_9">Minimum_Field_Width</A></FONT> : Natural := 0;
<b>end</b> <b>record</b>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="50_14"></A></FONT> (<FONT COLOR=red><A NAME="50_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="51_30">Typ</A></FONT> : <b>in</b> AlphaNumeric_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_48_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-alphanumeric__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_45_9">AlphaNumeric_Field</A>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">AlphaNumeric</A><A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#ref_41_53">AlphaNumeric</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.7 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<FONT COLOR=red><A NAME="ref_44_70" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A></FONT> <b>is</b>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_21">Set</A> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_46">Mixed_Case</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#49_21">Case_Sensitive</A> : Boolean := False;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#50_21">Must_Be_Unique</A> : Boolean := False)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_46_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_46_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>;
+ <FONT COLOR=red><A NAME="ref_47_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A></FONT> : Boolean := False;
+ <FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A></FONT> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>
<b>is</b>
- <FONT COLOR=red><A NAME="50_7">I</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'First) + 1);
- <FONT COLOR=red><A NAME="51_7">J</A></FONT> : Positive := 1;
+ <FONT COLOR=red><A NAME="ref_51_7">I</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Last) - <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'First) + 1);
+ <FONT COLOR=red><A NAME="ref_52_7">J</A></FONT> : Positive := 1;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Case_Sensitive := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#49_21">Case_Sensitive</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Match_Must_Be_Unique := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#50_21">Must_Be_Unique</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Case_Sensitive := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_49_21">Case_Sensitive</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Match_Must_Be_Unique := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_50_21">Must_Be_Unique</A>;
- <b>for</b> <FONT COLOR=red><A NAME="56_11">E</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'<b>Range</b> <b>loop</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>) := <b>new</b> String'(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Image (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#56_11">E</A>)));
+ <b>for</b> <FONT COLOR=red><A NAME="ref_57_11">E</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'<b>Range</b> <b>loop</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>) := <b>new</b> String'(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Image (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_57_11">E</A>));
<FONT COLOR=green><EM>-- The Image attribute defaults to upper case, so we have to handle</EM></FONT>
<FONT COLOR=green><EM>-- only the other ones...</EM></FONT>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_21">Set</A> /= <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_34">Upper_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b> := To_Lower (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_21">Set</A> = <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_46">Mixed_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b>'First) :=
- To_Upper (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A>).<b>all</b>'First));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A> /= <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_34">Upper_Case</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b> := To_Lower (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_21">Set</A> = <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b>'First) :=
+ To_Upper (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>)(<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>.Names (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A>).<b>all</b>'First));
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#51_7">J</A> + 1;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_52_7">J</A> + 1;
<b>end</b> <b>loop</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#50_7">I</A>, True);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13">Create</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#48_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_51_7">I</A>, True);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_48_13">Create</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13">Value</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_20">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_20">Buf</A> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_74_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_74_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_75_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#54_20">Buf</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13">Value</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#53_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>'Value (<A HREF="terminal_interface-curses-forms__ads.htm#ref_368_13">Get_Buffer</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_20">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_54_20">Buf</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_53_13">Value</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration-ada.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration-ada.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">T</A></FONT> <b>is</b> (<>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">T</A></FONT> <b>is</b> (<>);
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<FONT COLOR=red><A NAME="44_65">Ada</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<FONT COLOR=red><A NAME="ref_44_65" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_44_70">Ada</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A>);
+ (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>);
- <b>function</b> <FONT COLOR=red><A NAME="48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="48_21">Set</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#50_46">Mixed_Case</A>;
- <FONT COLOR=red><A NAME="49_21">Case_Sensitive</A></FONT> : Boolean := False;
- <FONT COLOR=red><A NAME="50_21">Must_Be_Unique</A></FONT> : Boolean := False)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_46_21">Set</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_9">Type_Set</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_50_46">Mixed_Case</A>;
+ <FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_47_21">Case_Sensitive</A></FONT> : Boolean := False;
+ <FONT COLOR=red><A NAME="ref_50_21" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_48_21">Must_Be_Unique</A></FONT> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>;
- <b>function</b> <FONT COLOR=red><A NAME="53_13">Value</A></FONT> (<FONT COLOR=red><A NAME="53_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="54_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#42_9">T</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_53_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_74_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_54_20" HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#ref_75_20">Buf</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_42_9">T</A>;
<FONT COLOR=green><EM>-- Translate the content of the fields buffer - indicated by the</EM></FONT>
<FONT COLOR=green><EM>-- buffer number - into an enumeration value. If the buffer is empty</EM></FONT>
<FONT COLOR=green><EM>-- or the content is invalid, a Constraint_Error is raises.</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">Ada</A><A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#44_65">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#ref_44_65">Ada</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A></FONT> <b>is</b>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Auto_Release_Names</A> : Boolean := False)
- <b>return</b> Enumeration_Field
+ <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_48_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
+ <FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A></FONT> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>
<b>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="52_17">Release_String</A></FONT> <b>is</b>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_52_17">Release_String</A></FONT> <b>is</b>
<b>new</b> Ada.Unchecked_Deallocation (String,
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#47_9">String_Access</A>);
- <FONT COLOR=red><A NAME="55_7">E</A></FONT> : Enumeration_Field;
- <FONT COLOR=red><A NAME="56_7">L</A></FONT> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_27">C</A>);
- <FONT COLOR=red><A NAME="57_7">S</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#47_9">String_Access</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>);
+ <FONT COLOR=red><A NAME="ref_55_7">E</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>;
+ <FONT COLOR=red><A NAME="ref_56_7">L</A></FONT> : <b>constant</b> size_t := 1 + size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>);
+ <FONT COLOR=red><A NAME="ref_57_7">S</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#93_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#58_10">Case_Sensitive</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#94_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#59_10">Match_Must_Be_Unique</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> := <b>new</b> chars_ptr_array (size_t (1) .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">L</A>);
- <b>for</b> <FONT COLOR=red><A NAME="62_11">I</A></FONT> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">L</A> - 1) <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>) = <b>null</b> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_93_10">Case_Sensitive</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_58_10">Case_Sensitive</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Match_Must_Be_Unique</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_59_10">Match_Must_Be_Unique</A>;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> := <b>new</b> chars_ptr_array (size_t (1) .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A>);
+ <b>for</b> <FONT COLOR=red><A NAME="ref_62_11">I</A></FONT> <b>in</b> 1 .. Positive (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A> - 1) <b>loop</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>) = <b>null</b> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>)) := New_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>).<b>all</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#65_21">Auto_Release_Names</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#57_7">S</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#62_11">I</A>);
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#52_17">Release_String</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#57_7">S</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> (size_t (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>)) := New_String (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>).<b>all</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_65_21">Auto_Release_Names</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">S</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_21">Info</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_57_10">Names</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_62_11">I</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_52_17">Release_String</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_57_7">S</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#56_7">L</A>) := Null_Ptr;
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#55_7">E</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_56_7">L</A>) := Null_Ptr;
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_55_7">E</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14">Release</A><FONT COLOR=red><A NAME="76_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#59_10">Enumeration_Field</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_76_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A></FONT> (<FONT COLOR=red><A NAME="ref_76_23" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="78_7">I</A></FONT> : size_t := 0;
- <FONT COLOR=red><A NAME="79_7">P</A></FONT> : chars_ptr;
+ <FONT COLOR=red><A NAME="ref_78_7">I</A></FONT> : size_t := 0;
+ <FONT COLOR=red><A NAME="ref_79_7">P</A></FONT> : chars_ptr;
<b>begin</b>
<b>loop</b>
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">P</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A>);
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">P</A> = Null_Ptr;
- Free (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#79_7">P</A>);
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A>) := Null_Ptr;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#78_7">I</A> + 1;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">P</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A>);
+ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">P</A> = Null_Ptr;
+ Free (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_79_7">P</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A>) := Null_Ptr;
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_78_7">I</A> + 1;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> := <b>null</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14">Release</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_23">Enum</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> := <b>null</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_77_14">Release</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14">Set_Field_Type</A><FONT COLOR=red><A NAME="91_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#59_10">Enumeration_Field</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_91_14" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_91_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_92_30" HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="94_7">C_Enum_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#94_7">C_Enum_Type</A>, "TYPE_ENUM");
+ <FONT COLOR=red><A NAME="ref_94_7">C_Enum_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_7">C_Enum_Type</A>, "TYPE_ENUM");
- <b>function</b> <FONT COLOR=red><A NAME="97_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="97_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_30">Fld</A>;
- <FONT COLOR=red><A NAME="98_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#94_7">C_Enum_Type</A>;
- <FONT COLOR=red><A NAME="99_30">Arg1</A></FONT> : chars_ptr_array;
- <FONT COLOR=red><A NAME="100_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <FONT COLOR=red><A NAME="101_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#97_16">Set_Fld_Type</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_97_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_97_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_98_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_94_7">C_Enum_Type</A>;
+ <FONT COLOR=red><A NAME="ref_99_30">Arg1</A></FONT> : chars_ptr_array;
+ <FONT COLOR=red><A NAME="ref_100_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_101_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_16">Set_Fld_Type</A>, "set_field_type");
- <FONT COLOR=red><A NAME="104_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_104_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A> = <b>null</b> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A> = <b>null</b> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#104_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#97_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#99_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#95_10">Arr</A>.<b>all</b>,
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#100_30">Arg2</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#93_10">Case_Sensitive</A>)),
- <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#101_30">Arg3</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (Boolean'Pos
- (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#94_10">Match_Must_Be_Unique</A>)));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#104_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#104_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_104_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_97_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_99_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_95_10">Arr</A>.<b>all</b>,
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_100_30">Arg2</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_93_10">Case_Sensitive</A>)),
+ <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_101_30">Arg3</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos
+ (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_94_10">Match_Must_Be_Unique</A>)));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_104_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_104_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#85_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#84_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_85_30">Typ</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_84_14">Set_Field_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-enumeration.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-enumeration.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="43_53">Enumeration</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_43_53" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_46_58">Enumeration</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A>);
+ (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>);
- <b>type</b> <FONT COLOR=red><A NAME="47_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_47_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
<FONT COLOR=green><EM>-- Type_Set is used by the child package Ada</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="50_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="50_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="50_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="50_46">Mixed_Case</A></FONT>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_50_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_50_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_50_46">Mixed_Case</A></FONT>);
- <b>type</b> <FONT COLOR=red><A NAME="52_9">Enum_Array</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> <>)
- <b>of</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#47_9">String_Access</A>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_52_9">Enum_Array</A></FONT> <b>is</b> <b>array</b> (Positive <b>range</b> <>)
+ <b>of</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_47_9">String_Access</A>;
- <b>type</b> <FONT COLOR=red><A NAME="55_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="55_27">C</A></FONT> : Positive) <b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_55_9">Enumeration_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_55_27">C</A></FONT> : Positive) <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="57_10">Names</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#52_9">Enum_Array</A> (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_27">C</A>);
- <FONT COLOR=red><A NAME="58_10">Case_Sensitive</A></FONT> : Boolean := False;
- <FONT COLOR=red><A NAME="59_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">;</A>
+ <FONT COLOR=red><A NAME="ref_57_10">Names</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_52_9">Enum_Array</A> (1 .. <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_27">C</A>);
+ <FONT COLOR=red><A NAME="ref_58_10">Case_Sensitive</A></FONT> : Boolean := False;
+ <FONT COLOR=red><A NAME="ref_59_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
+ <b>end</b> <b>record</b>;
- <b>type</b> Enumeration_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b> <b>private</b>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_62_9">Enumeration_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>private</b>;
- <b>function</b> <FONT COLOR=red><A NAME="64_13">Create</A></FONT> (<FONT COLOR=red><A NAME="64_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A>;
- <FONT COLOR=red><A NAME="65_21">Auto_Release_Names</A></FONT> : Boolean := False)
- <b>return</b> Enumeration_Field;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_64_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_48_21">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
+ <FONT COLOR=red><A NAME="ref_65_21" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_49_21">Auto_Release_Names</A></FONT> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>;
<FONT COLOR=green><EM>-- Make an fieldtype from the info. Enumerations are special, because</EM></FONT>
<FONT COLOR=green><EM>-- they normally don't copy the enum values into a private store, so</EM></FONT>
<FONT COLOR=green><EM>-- we have to care for the lifetime of the info we provide.</EM></FONT>
<FONT COLOR=green><EM>-- The Auto_Release_Names flag may be used to automatically releases</EM></FONT>
<FONT COLOR=green><EM>-- the strings in the Names array of the Enumeration_Info.</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="73_13">Make_Enumeration_Type</A></FONT> (<FONT COLOR=red><A NAME="73_36">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#55_9">Enumeration_Info</A>;
- <FONT COLOR=red><A NAME="74_36">Auto_Release_Names</A></FONT> : Boolean := False)
- <b>return</b> Enumeration_Field <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#64_13">Create</A>;
+ <b>function</b> Make_Enumeration_Type (<FONT COLOR=red><A NAME="ref_73_36">Info</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_55_9">Enumeration_Info</A>;
+ <FONT COLOR=red><A NAME="ref_74_36">Auto_Release_Names</A></FONT> : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>renames</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_64_13">Create</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#76_14">Release</A><FONT COLOR=red><A NAME="77_14"></A></FONT> (<FONT COLOR=red><A NAME="77_23">Enum</A></FONT> : <b>in</b> <b>out</b> Enumeration_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_14">Release</A></FONT> (<FONT COLOR=red><A NAME="ref_77_23" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_76_23">Enum</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>);
<FONT COLOR=green><EM>-- But we may want to release the field to release the memory allocated</EM></FONT>
<FONT COLOR=green><EM>-- by it internally. After that the Enumeration field is no longer usable.</EM></FONT>
<FONT COLOR=green><EM>-- The next type defintions are all ncurses extensions. They are typically</EM></FONT>
<FONT COLOR=green><EM>-- not available in other curses implementations.</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#91_14">Set_Field_Type</A><FONT COLOR=red><A NAME="84_14"></A></FONT> (<FONT COLOR=red><A NAME="84_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="85_30">Typ</A></FONT> : <b>in</b> Enumeration_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_84_14" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_84_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_91_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_85_30" HREF="terminal_interface-curses-forms-field_types-enumeration__adb.htm#ref_92_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A>);
<b>pragma</b> Inline (Set_Field_Type);
<b>private</b>
- <b>type</b> <FONT COLOR=red><A NAME="89_9">CPA_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.chars_ptr_array;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_89_9">CPA_Access</A></FONT> <b>is</b> <b>access</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings.chars_ptr_array;
- <b>type</b> Enumeration_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b>
+ <b>type</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_62_9">Enumeration_Field</A> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
<b>record</b>
- <FONT COLOR=red><A NAME="93_10">Case_Sensitive</A></FONT> : Boolean := False;
- <FONT COLOR=red><A NAME="94_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
- <FONT COLOR=red><A NAME="95_10">Arr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#89_9">CPA_Access</A> := <b>null</b>;
+ <FONT COLOR=red><A NAME="ref_93_10">Case_Sensitive</A></FONT> : Boolean := False;
+ <FONT COLOR=red><A NAME="ref_94_10">Match_Must_Be_Unique</A></FONT> : Boolean := False;
+ <FONT COLOR=red><A NAME="ref_95_10">Arr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_89_9">CPA_Access</A> := <b>null</b>;
<b>end</b> <b>record</b>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">Enumeration</A><A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#ref_43_53">Enumeration</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.8 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A> : <b>in</b> Integer_Field)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="51_7">C_Integer_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#51_7">C_Integer_Field_Type</A>, "TYPE_INTEGER");
+ <FONT COLOR=red><A NAME="ref_51_7">C_Integer_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_7">C_Integer_Field_Type</A>, "TYPE_INTEGER");
- <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_30">Fld</A>;
- <FONT COLOR=red><A NAME="55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#51_7">C_Integer_Field_Type</A>;
- <FONT COLOR=red><A NAME="56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <FONT COLOR=red><A NAME="57_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A>;
- <FONT COLOR=red><A NAME="58_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_51_7">C_Integer_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_56_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_57_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>;
+ <FONT COLOR=red><A NAME="ref_58_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
- <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#56_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#46_10">Precision</A>),
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#57_30">Arg2</A> => <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#47_10">Lower_Limit</A>),
- <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#58_30">Arg3</A> => <A HREF="terminal_interface-curses-aux__ads.htm#57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#48_10">Upper_Limit</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#61_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_54_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_56_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_46_10">Precision</A>),
+ <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_57_30">Arg2</A> => <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_47_10">Lower_Limit</A>),
+ <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_58_30">Arg3</A> => <A HREF="terminal_interface-curses-aux__ads.htm#ref_57_12">C_Long_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_48_10">Upper_Limit</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_61_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#52_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#51_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_52_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_51_14">Set_Field_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-intfield.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-intfield.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">IntField</A></FONT> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_44_58">IntField</A></FONT> <b>is</b>
+ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>);
- <b>type</b> Integer_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Integer_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
<b>record</b>
- <FONT COLOR=red><A NAME="46_10">Precision</A></FONT> : Natural;
- <FONT COLOR=red><A NAME="47_10">Lower_Limit</A></FONT> : Integer;
- <FONT COLOR=red><A NAME="48_10">Upper_Limit</A></FONT> : Integer;
+ <FONT COLOR=red><A NAME="ref_46_10">Precision</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_47_10">Lower_Limit</A></FONT> : Integer;
+ <FONT COLOR=red><A NAME="ref_48_10">Upper_Limit</A></FONT> : Integer;
<b>end</b> <b>record</b>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<FONT COLOR=red><A NAME="51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="52_30">Typ</A></FONT> : <b>in</b> Integer_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_48_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-intfield__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_44_9">Integer_Field</A>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">IntField</A><A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-intfield__ads.htm#ref_41_53">IntField</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.8 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Typ</A> : <b>in</b> Internet_V4_Address_Field)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="51_7">C_IPV4_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#51_7">C_IPV4_Field_Type</A>, "TYPE_IPV4");
+ <FONT COLOR=red><A NAME="ref_51_7">C_IPV4_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_51_7">C_IPV4_Field_Type</A>, "TYPE_IPV4");
- <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_30">Fld</A>;
- <FONT COLOR=red><A NAME="55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#51_7">C_IPV4_Field_Type</A>)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16">Set_Fld_Type</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_54_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_55_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_51_7">C_IPV4_Field_Type</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_54_16">Set_Fld_Type</A>, "set_field_type");
- <FONT COLOR=red><A NAME="59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_59_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#54_16">Set_Fld_Type</A>;
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#59_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_59_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_54_16">Set_Fld_Type</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_59_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_59_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#48_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#47_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_48_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_47_14">Set_Field_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-ipv4_address.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-ipv4_address.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">IPV4_Address</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_44_58">IPV4_Address</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A>);
+ (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>);
- <b>type</b> Internet_V4_Address_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_45_9">Internet_V4_Address_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="47_14"></A></FONT> (<FONT COLOR=red><A NAME="47_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="48_30">Typ</A></FONT> : <b>in</b> Internet_V4_Address_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_48_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-ipv4_address__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_45_9">Internet_V4_Address_Field</A>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">IPV4_Address</A><A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#ref_41_53">IPV4_Address</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.9 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14">Set_Field_Type</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A> : <b>in</b> Numeric_Field)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_48_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_49_30" HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>)
<b>is</b>
- <b>type</b> Double <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.double;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_51_12">Double</A></FONT> <b>is</b> <b>new</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.double;
- <FONT COLOR=red><A NAME="53_7">C_Numeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#53_7">C_Numeric_Field_Type</A>, "TYPE_NUMERIC");
+ <FONT COLOR=red><A NAME="ref_53_7">C_Numeric_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_7">C_Numeric_Field_Type</A>, "TYPE_NUMERIC");
- <b>function</b> <FONT COLOR=red><A NAME="56_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="56_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_30">Fld</A>;
- <FONT COLOR=red><A NAME="57_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#53_7">C_Numeric_Field_Type</A>;
- <FONT COLOR=red><A NAME="58_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <FONT COLOR=red><A NAME="59_30">Arg2</A></FONT> : Double;
- <FONT COLOR=red><A NAME="60_30">Arg3</A></FONT> : Double) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16">Set_Fld_Type</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_56_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_56_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_57_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_53_7">C_Numeric_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_58_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_59_30">Arg2</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A>;
+ <FONT COLOR=red><A NAME="ref_60_30">Arg3</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16">Set_Fld_Type</A>, "set_field_type");
- <FONT COLOR=red><A NAME="63_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_63_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#63_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#58_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#46_10">Precision</A>),
- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#59_30">Arg2</A> => Double (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#47_10">Lower_Limit</A>),
- <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#60_30">Arg3</A> => Double (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#48_10">Upper_Limit</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#63_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#63_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_63_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_58_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_46_10">Precision</A>),
+ <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_59_30">Arg2</A> => <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_47_10">Lower_Limit</A>),
+ <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_60_30">Arg3</A> => <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_51_12">Double</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_48_10">Upper_Limit</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_63_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_63_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#52_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#51_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_52_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_51_14">Set_Field_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-numeric.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-numeric.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">Numeric</A></FONT> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_44_58">Numeric</A></FONT> <b>is</b>
+ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>);
- <b>type</b> Numeric_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">Numeric_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
<b>record</b>
- <FONT COLOR=red><A NAME="46_10">Precision</A></FONT> : Natural;
- <FONT COLOR=red><A NAME="47_10">Lower_Limit</A></FONT> : Float;
- <FONT COLOR=red><A NAME="48_10">Upper_Limit</A></FONT> : Float;
+ <FONT COLOR=red><A NAME="ref_46_10">Precision</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_47_10">Lower_Limit</A></FONT> : Float;
+ <FONT COLOR=red><A NAME="ref_48_10">Upper_Limit</A></FONT> : Float;
<b>end</b> <b>record</b>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#48_14">Set_Field_Type</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<FONT COLOR=red><A NAME="51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="52_30">Typ</A></FONT> : <b>in</b> Numeric_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_48_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-numeric__adb.htm#ref_49_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_44_9">Numeric_Field</A>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">Numeric</A><A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-numeric__ads.htm#ref_41_53">Numeric</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.8 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_44_58" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A></FONT> <b>is</b>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14">Set_Field_Type</A><FONT COLOR=red><A NAME="46_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A> : <b>in</b> Regular_Expression_Field)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_46_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_47_30" HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="49_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_49_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char;
- <FONT COLOR=red><A NAME="51_7">C_Regexp_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#51_7">C_Regexp_Field_Type</A>, "TYPE_REGEXP");
+ <FONT COLOR=red><A NAME="ref_51_7">C_Regexp_Field_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_7">C_Regexp_Field_Type</A>, "TYPE_REGEXP");
- <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Ftyp</A></FONT> (<FONT COLOR=red><A NAME="54_26">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_30">Fld</A>;
- <FONT COLOR=red><A NAME="55_26">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#51_7">C_Regexp_Field_Type</A>;
- <FONT COLOR=red><A NAME="56_26">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#49_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#54_16">Set_Ftyp</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Ftyp</A></FONT> (<FONT COLOR=red><A NAME="ref_54_26">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_55_26">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_51_7">C_Regexp_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_56_26">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_49_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_54_16">Set_Ftyp</A>, "set_field_type");
- <FONT COLOR=red><A NAME="59_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#48_10">Regular_Expression</A>.<b>all</b>'Length);
- <FONT COLOR=red><A NAME="60_7">Len</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_59_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>'Length);
+ <FONT COLOR=red><A NAME="ref_60_7">Len</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#48_10">Regular_Expression</A>.<b>all</b>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#59_7">Txt</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#60_7">Len</A>);
- <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#54_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#56_26">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#59_7">Txt</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#59_7">Txt</A>'First)'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#61_7">Res</A>);
+ To_C (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_48_10">Regular_Expression</A>.<b>all</b>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_59_7">Txt</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_60_7">Len</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_54_16">Set_Ftyp</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_56_26">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_59_7">Txt</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_59_7">Txt</A>'First)'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_61_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#52_30">Typ</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#51_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A> (<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_30">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_52_30">Typ</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_51_14">Set_Field_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-regexp.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-regexp.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="41_53">RegExp</A></FONT> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_41_53" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_44_58">RegExp</A></FONT> <b>is</b>
+ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>);
- <b>type</b> <FONT COLOR=red><A NAME="44_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">String_Access</A></FONT> <b>is</b> <b>access</b> String;
- <b>type</b> Regular_Expression_Field <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_46_9">Regular_Expression_Field</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b>
<b>record</b>
- <FONT COLOR=red><A NAME="48_10">Regular_Expression</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#44_9">String_Access</A>;
+ <FONT COLOR=red><A NAME="ref_48_10">Regular_Expression</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_44_9">String_Access</A>;
<b>end</b> <b>record</b>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#46_14">Set_Field_Type</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<FONT COLOR=red><A NAME="51_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="52_30">Typ</A></FONT> : <b>in</b> Regular_Expression_Field);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_46_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_52_30" HREF="terminal_interface-curses-forms-field_types-regexp__adb.htm#ref_47_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_46_9">Regular_Expression_Field</A>);
<b>pragma</b> Inline (Set_Field_Type);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">RegExp</A><A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#41_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-regexp__ads.htm#ref_41_53">RegExp</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Unchecked_Conversion;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>.<FONT COLOR=red><A NAME="ref_46_63" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>function</b> <FONT COLOR=red><A NAME="49_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
- (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_50_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+ (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_27">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_27">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_53_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_54_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_83_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="55_7">Result</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="56_7">Udf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A>
- (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#49_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#83_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+ <FONT COLOR=red><A NAME="ref_56_7">Result</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_57_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A>
+ (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_83_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#55_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#60_13">Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#56_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#55_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_56_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_60_13">Next</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_57_7">Udf</A>.<b>all</b>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_56_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13">Generic_Next</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_27">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_27">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_65_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_65_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_66_27" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_90_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="67_7">Result</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="68_7">Udf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#57_9">User_Defined_Field_Type_With_Choice_Access</A>
- (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#49_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#90_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+ <FONT COLOR=red><A NAME="ref_68_7">Result</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_69_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_57_9">User_Defined_Field_Type_With_Choice_Access</A>
+ (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_50_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_90_27">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#67_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#67_13">Previous</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#68_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#67_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_68_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_67_13">Previous</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_27">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_69_7">Udf</A>.<b>all</b>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_68_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13">Generic_Prev</A>;
<FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13">C_Generic_Choice</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_79_13" HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
<b>is</b>
- <FONT COLOR=red><A NAME="80_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <FONT COLOR=red><A NAME="81_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_81_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_82_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_82_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13">Generic_Field_Check</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_82_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_82_7">T</A>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#80_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_82_7">T</A>,
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13">Generic_Next</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13">Generic_Prev</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_81_7">Res</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#81_7">T</A>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> := <A HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_82_7">T</A>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13">C_Generic_Choice</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#80_13">;</A>
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_80_13">C_Generic_Choice</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user-choice.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user-choice.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<FONT COLOR=red><A NAME="43_58">Choice</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>.<FONT COLOR=red><A NAME="ref_43_58" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_46_63">Choice</A></FONT> <b>is</b>
<b>pragma</b> Preelaborate
- (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A>);
+ (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A>);
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
- <b>subtype</b> <FONT COLOR=red><A NAME="48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>type</b> User_Defined_Field_Type_With_Choice <b>is</b> <b>abstract</b> <b>new</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#48_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">User_Defined_Field_Type_With_Choice</A></FONT> <b>is</b> <b>abstract</b> <b>new</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
<FONT COLOR=green><EM>-- This is the root of the mechanism we use to create field types in</EM></FONT>
<FONT COLOR=green><EM>-- Ada95 that allow the prev/next mechanism. You should your own type</EM></FONT>
<FONT COLOR=green><EM>-- derive from this one and implement the Field_Check, Character_Check</EM></FONT>
<FONT COLOR=green><EM>-- Next and Previous functions for your own type.</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="57_9">User_Defined_Field_Type_With_Choice_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
- User_Defined_Field_Type_With_Choice'Class;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_57_9">User_Defined_Field_Type_With_Choice_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>'Class;
- <b>function</b> <FONT COLOR=red><A NAME="60_13">Next</A></FONT>
- (<FONT COLOR=red><A NAME="61_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="62_7">Typ</A></FONT> : User_Defined_Field_Type_With_Choice) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_60_13">Next</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_61_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_62_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
<FONT COLOR=green><EM>-- If True is returned, the function successfully generated a next</EM></FONT>
<FONT COLOR=green><EM>-- value into the fields buffer.</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="67_13">Previous</A></FONT>
- (<FONT COLOR=red><A NAME="68_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="69_7">Typ</A></FONT> : User_Defined_Field_Type_With_Choice) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_67_13">Previous</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_68_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_69_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_50_9">User_Defined_Field_Type_With_Choice</A>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
<FONT COLOR=green><EM>-- If True is returned, the function successfully generated a previous</EM></FONT>
<FONT COLOR=green><EM>-- value into the fields buffer.</EM></FONT>
<FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<b>private</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>function</b> <FONT COLOR=red><A NAME="80_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_80_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_79_13">C_Generic_Choice</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
- <b>function</b> <FONT COLOR=red><A NAME="82_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="82_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="83_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#82_13">Generic_Next</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_82_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_13">Generic_Next</A></FONT> (<FONT COLOR=red><A NAME="ref_82_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_53_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_83_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_54_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_82_13">Generic_Next</A>);
<FONT COLOR=green><EM>-- This is the generic next Choice_Function for the low-level fieldtype</EM></FONT>
<FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivates. It routes</EM></FONT>
<FONT COLOR=green><EM>-- the call to the Next implementation for the type.</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="89_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="89_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="90_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#48_12">C_Int</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#89_13">Generic_Prev</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_89_13" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_13">Generic_Prev</A></FONT> (<FONT COLOR=red><A NAME="ref_89_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_65_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_90_27" HREF="terminal_interface-curses-forms-field_types-user-choice__adb.htm#ref_66_27">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_48_12">C_Int</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_89_13">Generic_Prev</A>);
<FONT COLOR=green><EM>-- This is the generic prev Choice_Function for the low-level fieldtype</EM></FONT>
<FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivates. It routes</EM></FONT>
<FONT COLOR=green><EM>-- the call to the Previous implementation for the type.</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">Choice</A><A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>.<A HREF="terminal_interface-curses-forms-field_types-user-choice__ads.htm#ref_43_58">Choice</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Unchecked_Conversion;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_46_58" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_14">Set_Field_Type</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#71_30">Typ</A> : <b>in</b> User_Defined_Field_Type)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_50_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_51_30" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="52_16">Allocate_Arg</A></FONT> (T : User_Defined_Field_Type'Class)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_53_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_64_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_53_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_64_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>;
- <b>function</b> <FONT COLOR=red><A NAME="55_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="55_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_30">Fld</A>;
- <FONT COLOR=red><A NAME="56_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">C_Generic_Type</A>;
- <FONT COLOR=red><A NAME="57_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#55_16">Set_Fld_Type</A>, "set_field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_56_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_56_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_30">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_57_30">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">C_Generic_Type</A>;
+ <FONT COLOR=red><A NAME="ref_58_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16">Set_Fld_Type</A>, "set_field_type");
- <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_62_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">Allocate_Arg</A> (T : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">User_Defined_Field_Type</A>'Class)
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_64_16" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Allocate_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_64_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_30">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>
<b>is</b>
- <FONT COLOR=red><A NAME="66_10">Ptr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#63_9">Field_Type_Access</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">User_Defined_Field_Type</A>'Class'(T);
+ <FONT COLOR=red><A NAME="ref_67_10">Ptr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>
+ := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_30">T</A>);
<b>begin</b>
- <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#211_9">Argument</A>'(Usr => System.Null_Address,
- Typ => <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#66_10">Ptr</A>,
- Cft => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">Allocate_Arg</A><A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">;</A>
+ <b>return</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(Usr => System.Null_Address,
+ Typ => <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_67_10">Ptr</A>,
+ Cft => <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Allocate_Arg</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#61_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#55_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#57_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#52_16">Allocate_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#71_30">Typ</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#61_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_62_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_56_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_58_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_53_16">Allocate_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_71_30">Typ</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_62_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_14">Set_Field_Type</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#70_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_70_14">Set_Field_Type</A>;
- <b>function</b> <FONT COLOR=red><A NAME="80_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
- (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_82_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+ (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_34">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_34">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_85_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_85_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_86_34" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_84_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="86_7">Result</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="87_7">Udf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#80_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#84_34">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+ <FONT COLOR=red><A NAME="ref_88_7">Result</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_89_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_84_34">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#86_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#56_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#87_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#86_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_88_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_56_13">Field_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_34">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_89_7">Udf</A>.<b>all</b>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_88_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13">Generic_Field_Check</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_33">Ch</A> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_33">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_96_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_33">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_97_33" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_91_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="97_7">Result</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="98_7">Udf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> :=
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#53_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#80_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#91_33">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+ <FONT COLOR=red><A NAME="ref_99_7">Result</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_100_7">Udf</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> :=
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_53_9">User_Defined_Field_Type_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_82_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_91_33">Usr</A>).<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#97_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#63_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#98_7">Udf</A>.<b>all</b>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#97_7">Result</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">;</A>
+ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_99_7">Result</A> := <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_63_13">Character_Check</A> (Character'Val (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_33">Ch</A>), <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_100_7">Udf</A>.<b>all</b>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_99_7">Result</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A>;
<FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">C_Generic_Type</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_109_13" HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">C_Generic_Type</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
<b>is</b>
- <FONT COLOR=red><A NAME="109_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <FONT COLOR=red><A NAME="110_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_111_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_112_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_112_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13">Generic_Field_Check</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_112_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#109_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#109_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#109_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_112_7">T</A>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_111_7">Res</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#110_7">T</A>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> := <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_112_7">T</A>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">C_Generic_Type</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#81_13">;</A>
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_81_13">C_Generic_Type</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types-user.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types-user.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<FONT COLOR=red><A NAME="43_53">User</A></FONT> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A>);
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
- <b>subtype</b> <FONT COLOR=red><A NAME="46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<FONT COLOR=red><A NAME="ref_43_53" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_46_58">User</A></FONT> <b>is</b>
+ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>);
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_46_12">C_Int</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>type</b> User_Defined_Field_Type <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_48_9">User_Defined_Field_Type</A></FONT> <b>is</b> <b>abstract</b> <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A> <b>with</b> <b>null</b> <b>record</b>;
<FONT COLOR=green><EM>-- This is the root of the mechanism we use to create field types in</EM></FONT>
<FONT COLOR=green><EM>-- Ada95. You should your own type derive from this one and implement</EM></FONT>
<FONT COLOR=green><EM>-- the Field_Check and Character_Check functions for your own type.</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="53_9">User_Defined_Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
- User_Defined_Field_Type'Class;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">User_Defined_Field_Type_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b>
+ <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>'Class;
- <b>function</b> <FONT COLOR=red><A NAME="56_13">Field_Check</A></FONT>
- (<FONT COLOR=red><A NAME="57_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="58_7">Typ</A></FONT> : User_Defined_Field_Type) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_56_13">Field_Check</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_57_7">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_58_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
<FONT COLOR=green><EM>-- If True is returned, the field is considered valid, otherwise it is</EM></FONT>
<FONT COLOR=green><EM>-- invalid.</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="63_13">Character_Check</A></FONT>
- (<FONT COLOR=red><A NAME="64_7">Ch</A></FONT> : Character;
- <FONT COLOR=red><A NAME="65_7">Typ</A></FONT> : User_Defined_Field_Type) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_63_13">Character_Check</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_64_7">Ch</A></FONT> : Character;
+ <FONT COLOR=red><A NAME="ref_65_7">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>) <b>return</b> Boolean
<b>is</b> <b>abstract</b>;
<FONT COLOR=green><EM>-- If True is returned, the character is considered as valid for the</EM></FONT>
<FONT COLOR=green><EM>-- field, otherwise as invalid.</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types-user__adb.htm#49_14">Set_Field_Type</A><FONT COLOR=red><A NAME="70_14"></A></FONT> (<FONT COLOR=red><A NAME="70_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="71_30">Typ</A></FONT> : <b>in</b> User_Defined_Field_Type);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_14">Set_Field_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_70_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_50_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_71_30" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_51_30">Typ</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_48_9">User_Defined_Field_Type</A>);
<FONT COLOR=green><EM>-- This should work for all types derived from User_Defined_Field_Type.</EM></FONT>
<FONT COLOR=green><EM>-- No need to reimplement it for your derived type.</EM></FONT>
<FONT COLOR=green><EM>-- | Private Part.</EM></FONT>
<FONT COLOR=green><EM>-- | Used by the Choice child package.</EM></FONT>
<b>private</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>function</b> <FONT COLOR=red><A NAME="81_13">C_Generic_Type</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_81_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_109_13">C_Generic_Type</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
- <b>function</b> <FONT COLOR=red><A NAME="83_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="83_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="84_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#83_13">Generic_Field_Check</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_83_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_13">Generic_Field_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_83_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_85_34">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_84_34" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_86_34">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_83_13">Generic_Field_Check</A>);
<FONT COLOR=green><EM>-- This is the generic Field_Check_Function for the low-level fieldtype</EM></FONT>
<FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivates. It routes</EM></FONT>
<FONT COLOR=green><EM>-- the call to the Field_Check implementation for the type.</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="90_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="90_33">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
- <FONT COLOR=red><A NAME="91_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#90_13">Generic_Char_Check</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_90_13" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_96_13">Generic_Char_Check</A></FONT> (<FONT COLOR=red><A NAME="ref_90_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_96_33">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_91_33" HREF="terminal_interface-curses-forms-field_types-user__adb.htm#ref_97_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_90_13">Generic_Char_Check</A>);
<FONT COLOR=green><EM>-- This is the generic Char_Check_Function for the low-level fieldtype</EM></FONT>
<FONT COLOR=green><EM>-- representing all the User_Defined_Field_Type derivates. It routes</EM></FONT>
<FONT COLOR=green><EM>-- the call to the Character_Check implementation for the type.</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">User</A><A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#43_53">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>.<A HREF="terminal_interface-curses-forms-field_types-user__ads.htm#ref_43_53">User</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.17 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>with</b> Ada.Unchecked_Deallocation;
<b>with</b> Ada.Unchecked_Conversion;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_fieldtype.3x</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<FONT COLOR=red><A NAME="ref_51_46" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
<b>use</b> <b>type</b> System.Address;
- <b>function</b> <FONT COLOR=red><A NAME="55_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
- (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_56_13">To_Argument_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+ (System.Address, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
- <b>function</b> <FONT COLOR=red><A NAME="58_13">Get_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="58_28">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A>, "field_type");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_59_13">Get_Fieldtype</A></FONT> (<FONT COLOR=red><A NAME="ref_59_28">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A>, "field_type");
- <b>function</b> <FONT COLOR=red><A NAME="61_13">Get_Arg</A></FONT> (<FONT COLOR=red><A NAME="61_22">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> System.Address;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#61_13">Get_Arg</A>, "field_arg");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_62_13">Get_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_62_22">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> System.Address;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</A>, "field_arg");
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_field_validation.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_13">Get_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_23">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#63_9">Field_Type_Access</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_71_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_71_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>
<b>is</b>
- <FONT COLOR=red><A NAME="72_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_23">Fld</A>);
- <FONT COLOR=red><A NAME="73_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>;
+ <FONT COLOR=red><A NAME="ref_73_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_74_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
<b>return</b> <b>null</b>;
<b>else</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> <b>or</b> <b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#141_4">M_Generic_Type</A> <b>or</b> <b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> <b>or</b> <b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#72_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#142_4">M_Generic_Choice</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_23">Fld</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Arg</A> = <b>null</b> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> <b>or</b> <b>else</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_141_4">M_Generic_Type</A> <b>or</b> <b>else</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> <b>or</b> <b>else</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_73_7">Low_Level</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_142_4">M_Generic_Choice</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_23">Fld</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</A> = <b>null</b> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#73_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>;
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_74_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>;
<b>end</b> <b>if</b>;
<b>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_13">Get_Type</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#79_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_79_13">Get_Type</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_23">Args</A> : System.Address) <b>return</b> System.Address
+ <b>function</b> <FONT COLOR=red><A NAME="ref_95_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_95_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_23">Args</A></FONT> : System.Address) <b>return</b> System.Address
<b>is</b>
<FONT COLOR=green><EM>-- Actually args is a double indirected pointer to the arguments</EM></FONT>
<FONT COLOR=green><EM>-- of a C variable argument list. In theory it is now quite</EM></FONT>
<FONT COLOR=green><EM>-- we know its size and for the first arg we don't care about</EM></FONT>
<FONT COLOR=green><EM>-- into which stack direction we have to proceed. We simply</EM></FONT>
<FONT COLOR=green><EM>-- resolve the double indirection and thats it.</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="105_12">V</A></FONT> <b>is</b> <b>access</b> <b>all</b> System.Address;
- <b>function</b> <FONT COLOR=red><A NAME="106_16">To_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion (System.Address,
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#105_12">V</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_106_12">V</A></FONT> <b>is</b> <b>access</b> <b>all</b> System.Address;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_107_16">To_Access</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion (System.Address,
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_106_12">V</A>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#106_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#106_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_23">Args</A>).<b>all</b>).<b>all</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_107_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_107_16">To_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_23">Args</A>).<b>all</b>).<b>all</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_23">Usr</A> : System.Address) <b>return</b> System.Address
+ <b>function</b> <FONT COLOR=red><A NAME="ref_113_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_113_23" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A></FONT> : System.Address) <b>return</b> System.Address
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_23">Usr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_23">Usr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A><FONT COLOR=red><A NAME="118_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_24">Usr</A> : <b>in</b> System.Address)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_119_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A></FONT> (<FONT COLOR=red><A NAME="ref_119_24" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A></FONT> : <b>in</b> System.Address)
<b>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="120_17">Free_Type</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#63_9">Field_Type_Access</A>);
- <b>procedure</b> <FONT COLOR=red><A NAME="122_17">Freeargs</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#211_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_121_17">Free_Type</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_63_9">Field_Type_Access</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_123_17">Freeargs</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+ (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>, <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>);
- <FONT COLOR=red><A NAME="125_7">To_Be_Free</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_24">Usr</A>);
- <FONT COLOR=red><A NAME="126_7">Low_Level</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_126_7">To_Be_Free</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_24">Usr</A>);
+ <FONT COLOR=red><A NAME="ref_127_7">Low_Level</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A> /= <b>null</b> <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> /= System.Null_Address <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>;
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Freearg</A> /= <b>null</b> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#126_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#126_10">Freearg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A> /= <b>null</b> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> /= System.Null_Address <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_127_7">Low_Level</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_127_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Freearg</A> /= <b>null</b> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_127_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_126_10">Freearg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#120_17">Free_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_121_17">Free_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#122_17">Freeargs</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#125_7">To_Be_Free</A>);
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_123_17">Freeargs</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_126_7">To_Be_Free</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A><FONT COLOR=red><A NAME="143_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- Typ : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>'Class;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_144_14" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A></FONT> (<FONT COLOR=red><A NAME="ref_144_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_145_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class;
+ <FONT COLOR=red><A NAME="ref_146_28" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="147_7">Usr_Arg</A></FONT> : System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#61_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>);
- <FONT COLOR=red><A NAME="148_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>);
- <FONT COLOR=red><A NAME="149_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>;
- <FONT COLOR=red><A NAME="150_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>function</b> <FONT COLOR=red><A NAME="151_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="151_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>;
- <FONT COLOR=red><A NAME="152_30">Cf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A>;
- <FONT COLOR=red><A NAME="153_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#151_16">Set_Fld_Type</A>, "set_field_type");
+ <FONT COLOR=red><A NAME="ref_148_7">Usr_Arg</A></FONT> : <b>constant</b> System.Address := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_62_13">Get_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_149_7">Low_Level</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_150_7">Arg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>;
+ <FONT COLOR=red><A NAME="ref_151_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_152_16">Set_Fld_Type</A></FONT> (<FONT COLOR=red><A NAME="ref_152_30">F</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>;
+ <FONT COLOR=red><A NAME="ref_153_30">Cf</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A>;
+ <FONT COLOR=red><A NAME="ref_154_30">Arg1</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_152_16">Set_Fld_Type</A>, "set_field_type");
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_149_7">Low_Level</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_153_28">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#211_9">Argument</A>'(Usr => System.Null_Address,
- Typ => <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field_Type</A>'Class'(Typ),
- Cft => <A HREF="terminal_interface-curses-forms-field_types__adb.htm#58_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_28">Fld</A>));
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#147_7">Usr_Arg</A> /= System.Null_Address <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#125_10">Copyarg</A> /= <b>null</b> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#148_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#125_10">Copyarg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#147_7">Usr_Arg</A>);
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_150_7">Arg</A> := <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_211_9">Argument</A>'(Usr => System.Null_Address,
+ Typ => <b>new</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field_Type</A>'Class'(<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_152_28">Typ</A>),
+ Cft => <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_59_13">Get_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_28">Fld</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_148_7">Usr_Arg</A> /= System.Null_Address <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_149_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_125_10">Copyarg</A> /= <b>null</b> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_150_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_149_7">Low_Level</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_125_10">Copyarg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_148_7">Usr_Arg</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#147_7">Usr_Arg</A>;
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_150_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_148_7">Usr_Arg</A>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#151_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#153_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__adb.htm#149_7">Arg</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#150_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_151_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_152_16">Set_Fld_Type</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_154_30">Arg1</A> => <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_150_7">Arg</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_151_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_151_7">Res</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">Wrap_Builtin</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#151_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_151_14">Wrap_Builtin</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_33">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_33">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_180_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_180_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_33">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_181_33" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="182_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_33">Usr</A>);
+ <FONT COLOR=red><A NAME="ref_183_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_178_33">Usr</A>);
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#127_10">Fcheck</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#127_10">Fcheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_33">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#182_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Fcheck</A> /= <b>null</b> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_127_10">Fcheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_33">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_183_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_32">Ch</A> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_32">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_194_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_194_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_32">Ch</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_195_32" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="196_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_32">Usr</A>);
+ <FONT COLOR=red><A NAME="ref_197_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_186_32">Usr</A>);
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#128_10">Ccheck</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#128_10">Ccheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_32">Ch</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#196_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Ccheck</A> /= <b>null</b> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_128_10">Ccheck</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_32">Ch</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_197_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Next_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_26">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_208_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_208_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_209_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="210_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_26">Usr</A>);
+ <FONT COLOR=red><A NAME="ref_211_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_194_26">Usr</A>);
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_10">Next</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_10">Next</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#210_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Next</A> /= <b>null</b> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_10">Next</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_211_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Next_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Prev_Router</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_26">Usr</A> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12">C_Int</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_222_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A></FONT> (<FONT COLOR=red><A NAME="ref_222_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_223_26" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12">C_Int</A>
<b>is</b>
- <FONT COLOR=red><A NAME="224_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#55_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_26">Usr</A>);
+ <FONT COLOR=red><A NAME="ref_225_7">Arg</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_216_9">Argument_Access</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_56_13">To_Argument_Access</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_202_26">Usr</A>);
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>
- <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#212_7">Typ</A> /= <b>null</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_16">Prev</A> /= <b>null</b> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#129_16">Prev</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#224_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#213_7">Usr</A>);
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>
+ <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_212_7">Typ</A> /= <b>null</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_16">Prev</A> /= <b>null</b> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_214_7">Cft</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_129_16">Prev</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_26">Fld</A>, <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_225_7">Arg</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_213_7">Usr</A>);
<b>else</b>
<b>return</b> 1;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Prev_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>;
<FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_238_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
<b>is</b>
- <FONT COLOR=red><A NAME="239_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <FONT COLOR=red><A NAME="240_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_240_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_241_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_241_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_241_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#239_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#239_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#239_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_240_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_241_7">T</A>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_240_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_240_7">Res</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#240_7">T</A>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_241_7">T</A>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#143_4">M_Builtin_Router</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">C_Builtin_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">;</A>
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_143_4">M_Builtin_Router</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">C_Builtin_Router</A>;
<FONT COLOR=green><EM>-- -----------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_265_13" HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>
<b>is</b>
- <FONT COLOR=red><A NAME="266_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <FONT COLOR=red><A NAME="267_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_267_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_268_7">T</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13">Field_Check_Router</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13">Char_Check_Router</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_268_7">T</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_222_13">New_Fieldtype</A> (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13">Field_Check_Router</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13">Char_Check_Router</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_268_7">T</A> = <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#162_13">Make_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Copy_Arg</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Free_Arg</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_227_13">Set_Fieldtype_Arg</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_268_7">T</A>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_162_13">Make_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Copy_Arg</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Free_Arg</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Next_Router</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Prev_Router</A>'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#266_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_7">Res</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_234_13">Set_Fieldtype_Choice</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_268_7">T</A>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Next_Router</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Prev_Router</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_267_7">Res</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#267_7">T</A>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> := <A HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_268_7">T</A>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#134_4">Null_Field_Type</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#144_4">M_Choice_Router</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">C_Choice_Router</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">;</A>
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A> /= <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_134_4">Null_Field_Type</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_144_4">M_Choice_Router</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_149_13">C_Choice_Router</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">Field_Types</A><A HREF="terminal_interface-curses-forms-field_types__ads.htm#43_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_43_41">Field_Types</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_types.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_types.ads </H1></DIV><HR>
<b>package</b> Terminal_Interface.Curses.Forms.Field_Types <b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
- <b>use</b> <b>type</b><FONT COLOR=red><A NAME="46_12"> </A></FONT>Interfaces.C.int;
+ <b>use</b> <b>type</b><FONT COLOR=red><A NAME="ref_46_12"> </A></FONT>Interfaces.C.int;
<b>subtype</b> C_Int <b>is</b> Interfaces.C.int;
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<b>type</b> Field_Type_Access <b>is</b> <b>access</b> <b>all</b> Field_Type'Class;
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="67_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>;
+ <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="ref_67_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
Fld_Type : <b>in</b> Field_Type) <b>is</b> <b>abstract</b>;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></FONT>
<FONT COLOR=green><EM>-- But: we hide the vararg mechanism of the C interface. You always</EM></FONT>
<b>procedure</b> (Usr : System.Address);
<b>pragma</b> Convention (C, Freearg_Function);
- <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="105_29"> </A></FONT><b>is</b> <b>access</b>
+ <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="ref_105_29"> </A></FONT><b>is</b> <b>access</b>
<b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Field_Check_Function);
- <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="109_28"> </A></FONT><b>is</b> <b>access</b>
- <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">;</A> Usr : System.Address) <b>return</b> C_Int;
+ <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="ref_109_28"> </A></FONT><b>is</b> <b>access</b>
+ <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">;</A> Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Char_Check_Function);
<b>type</b> Choice_Function <b>is</b> <b>access</b>
<FONT COLOR=green><EM>-- |</EM></FONT>
<b>type</b> Low_Level_Field_Type <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="122_10">Status</A></FONT> : <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short;
- <FONT COLOR=red><A NAME="123_10">Ref_Count</A></FONT> : Interfaces.C.long;
- <FONT COLOR=red><A NAME="124_10">Left</A></FONT>, Right : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#92_9">System</A>.Address;
- <FONT COLOR=red><A NAME="125_10">Makearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#96_9">Makearg_Function</A>;
- <FONT COLOR=red><A NAME="126_10">Copyarg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#100_9">Copyarg_Function</A>;
- <FONT COLOR=red><A NAME="127_10">Freearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#104_9">Freearg_Function</A>;
- <FONT COLOR=red><A NAME="128_10">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">Field_Check_Function</A>;
- <FONT COLOR=red><A NAME="129_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="129_16"> </A></FONT>: <A HREF="terminal_interface-curses-forms-field_types__ads.htm#112_9">Char_Check_Function</A>;
+ <FONT COLOR=red><A NAME="ref_122_10">Status</A></FONT> : <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short;
+ <FONT COLOR=red><A NAME="ref_123_10">Ref_Count</A></FONT> : Interfaces.C.long;
+ <FONT COLOR=red><A NAME="ref_124_10">Left</A></FONT>, Right : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">System</A>.Address;
+ <FONT COLOR=red><A NAME="ref_125_10">Makearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A>;
+ <FONT COLOR=red><A NAME="ref_126_10">Copyarg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A>;
+ <FONT COLOR=red><A NAME="ref_127_10">Freearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_104_9">Freearg_Function</A>;
+ <FONT COLOR=red><A NAME="ref_128_10">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
+ <FONT COLOR=red><A NAME="ref_129_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="ref_129_16"> </A></FONT>: <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_112_9">Char_Check_Function</A>;
Next, Prev : Choice_Function;
<b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Low_Level_Field_Type);
<FONT COLOR=green><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT>
<FONT COLOR=green><EM>-- | will result in a Form_Exception is function Get_Type.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <FONT COLOR=red><A NAME="142_4">M_Generic_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>;
- <FONT COLOR=red><A NAME="143_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>;
- <FONT COLOR=red><A NAME="144_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>;
+ <FONT COLOR=red><A NAME="ref_142_4">M_Generic_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+ <FONT COLOR=red><A NAME="ref_143_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
+ <FONT COLOR=red><A NAME="ref_144_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A> := <b>null</b>;
M_Choice_Router : C_Field_Type := <b>null</b>;
<FONT COLOR=green><EM>-- Two wrapper functions to access those low-level fieldtypes defined</EM></FONT>
<FONT COLOR=green><EM>-- in this package.</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="149_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_149_13" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_265_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">C_Field_Type</A>;
<b>function</b> C_Choice_Router <b>return</b> C_Field_Type;
- <b>procedure</b> Wrap_Builtin (Fld : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>;
- <FONT COLOR=red><A NAME="153_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">;</A>
+ <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="ref_152_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_145_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_52_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_153_28" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_146_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_148_13">;</A>
Cft : C_Field_Type := C_Builtin_Router);
<FONT COLOR=green><EM>-- This procedure has to be called by the Set_Field_Type implementation</EM></FONT>
<FONT COLOR=green><EM>-- for builtin low-level fieldtypes to replace it by an Ada95</EM></FONT>
<FONT COLOR=green><EM>-- This is the Makearg_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
- <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13"> </A>: System.Address) <b>return</b> System.Address;
+ <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13"> </A>: System.Address) <b>return</b> System.Address;
<b>pragma</b> Convention (C, Copy_Arg);
<FONT COLOR=green><EM>-- This is the Copyarg_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
<FONT COLOR=green><EM>-- This is the Freearg_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
- <b>function</b> Field_Check_Router (<FONT COLOR=red><A NAME="178_33">Fld</A></FONT> : Field;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13"> </A> Usr : System.Address) <b>return</b> C_Int;
+ <b>function</b> Field_Check_Router (<FONT COLOR=red><A NAME="ref_178_33" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_181_33">Fld</A></FONT> : Field;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_177_13"> </A> Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Field_Check_Router);
<FONT COLOR=green><EM>-- This is the Field_Check_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT>
<FONT COLOR=green><EM>-- function.</EM></FONT>
- <b>function</b> Char_Check_Router (<FONT COLOR=red><A NAME="186_32">Ch</A></FONT> : C_Int;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13"> </A> Usr : System.Address) <b>return</b> C_Int;
+ <b>function</b> Char_Check_Router (<FONT COLOR=red><A NAME="ref_186_32" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_195_32">Ch</A></FONT> : C_Int;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_185_13"> </A> Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Char_Check_Router);
<FONT COLOR=green><EM>-- This is the Char_Check_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT>
<FONT COLOR=green><EM>-- function.</EM></FONT>
- <b>function</b> Next_Router (<FONT COLOR=red><A NAME="194_26">Fld</A></FONT> : Field;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Usr</A> : System.Address) <b>return</b> C_Int;
+ <b>function</b> Next_Router (<FONT COLOR=red><A NAME="ref_194_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_209_26">Fld</A></FONT> : Field;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_193_13">Usr</A> : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Next_Router);
<FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level next_choice</EM></FONT>
<FONT COLOR=green><EM>-- function.</EM></FONT>
- <b>function</b> Prev_Router (<FONT COLOR=red><A NAME="202_26">Fld</A></FONT> : Field;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Usr</A> : System.Address) <b>return</b> C_Int;
+ <b>function</b> Prev_Router (<FONT COLOR=red><A NAME="ref_202_26" HREF="terminal_interface-curses-forms-field_types__adb.htm#ref_223_26">Fld</A></FONT> : Field;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_201_13">Usr</A> : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Prev_Router);
<FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- This is the Argument structure maintained by all low-level field types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
<b>type</b> Argument <b>is</b> <b>record</b>
- <FONT COLOR=red><A NAME="213_7">Typ</A></FONT> : Field_Type_Access; <FONT COLOR=green><EM>-- the Field_Type creating this record</EM></FONT>
- <FONT COLOR=red><A NAME="214_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">System</A>.Address; <FONT COLOR=green><EM>-- original arg for builtin low-level types</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_213_7">Typ</A></FONT> : Field_Type_Access; <FONT COLOR=green><EM>-- the Field_Type creating this record</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_214_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9">System</A>.Address; <FONT COLOR=green><EM>-- original arg for builtin low-level types</EM></FONT>
Cft : C_Field_Type; <FONT COLOR=green><EM>-- the original low-level type</EM></FONT>
<b>end</b> <b>record</b>;
<b>type</b> Argument_Access <b>is</b> <b>access</b> <b>all</b> Argument;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- | Some Imports of libform routines to deal with low-level fieldtypes.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="223_28">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">Field_Check_Function</A>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9"> </A> Ccheck : Char_Check_Function)
+ <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="ref_223_28">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_108_9">Field_Check_Function</A>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_132_9"> </A> Ccheck : Char_Check_Function)
<b>return</b> C_Field_Type;
<b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
- <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="228_32">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#92_9">C_Field_Type</A>;
- <FONT COLOR=red><A NAME="229_32">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#96_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Make_Arg</A>'<b>Access</b>;
- <FONT COLOR=red><A NAME="230_32">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#100_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Copy_Arg</A>'<b>Access</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12"> </A> Fre : Freearg_Function := Free_Arg'<b>Access</b>)
+ <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="ref_228_32">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_92_9">C_Field_Type</A>;
+ <FONT COLOR=red><A NAME="ref_229_32">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_96_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_167_13">Make_Arg</A>'<b>Access</b>;
+ <FONT COLOR=red><A NAME="ref_230_32">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_100_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_172_14">Copy_Arg</A>'<b>Access</b>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A> Fre : Freearg_Function := Free_Arg'<b>Access</b>)
<b>return</b> C_Int;
<b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
- <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="235_35">Cft</A></FONT> : <FONT COLOR=red><A NAME="235_41">C_Field_Type</A></FONT>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12"> </A> Next, Prev : Choice_Function)
+ <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="ref_235_35">Cft</A></FONT> : <FONT COLOR=red><A NAME="ref_235_41">C_Field_Type</A></FONT>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#ref_46_12"> </A> Next, Prev : Choice_Function)
<b>return</b> C_Int;
<b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_field_userptr.3x</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_41">Field_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<FONT COLOR=red><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A></FONT> <b>is</b>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="54_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_29">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_54_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="57_16">Set_Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="57_35">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="58_35">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#57_16">Set_Field_Userptr</A>, "set_field_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_57_16">Set_Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_57_35">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_58_35">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Set_Field_Userptr</A>, "set_field_userptr");
- <FONT COLOR=red><A NAME="61_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#57_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#54_29">Data</A>);
+ <FONT COLOR=red><A NAME="ref_61_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_57_16">Set_Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_29">Fld</A>, <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_54_29">Data</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#61_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_61_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#53_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_53_14">Set_User_Data</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_28">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_70_13" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_70_28" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="72_16">Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="72_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#72_16">Field_Userptr</A>, "field_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_72_16">Field_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_72_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Field_Userptr</A>, "field_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#72_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_28">Fld</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_72_16">Field_Userptr</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_28">Fld</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="78_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_29">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_78_14" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_78_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_29">Fld</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#59_14">;</A>
+ <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_29">Fld</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_59_14">Get_User_Data</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_41">Field_User_Data</A><A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_45_41">Field_User_Data</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-field_user_data.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-field_user_data.ads </H1></DIV><HR>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#48_35">;</A>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">;</A>
<b>package</b> Terminal_Interface.Curses.Forms.Field_User_Data <b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">Field</A>;
+ <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_55_29">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
Data : <b>in</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">set_field_userptr</A></EM></FONT>
<b>pragma</b> Inline (Set_User_Data);
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#44_9">Field</A>;
+ <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-field_user_data__adb.htm#ref_79_29">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_user_data__ads.htm#ref_44_9">Field</A>;
Data : <b>out</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_userptr.3x.html">field_userptr</A></EM></FONT>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- | man page form__userptr.3x</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_41">Form_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<FONT COLOR=red><A NAME="ref_48_46" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="55_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_29">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_55_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_56_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="58_16">Set_Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="58_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="59_34">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#58_16">Set_Form_Userptr</A>, "set_form_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_58_16">Set_Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_58_34">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_59_34">Data</A></FONT> : <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Set_Form_Userptr</A>, "set_form_userptr");
- <FONT COLOR=red><A NAME="62_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#58_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#54_29">Data</A>);
+ <FONT COLOR=red><A NAME="ref_62_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_58_16">Set_Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_29">Frm</A>, <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_54_29">Data</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#62_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_62_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#53_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_53_14">Set_User_Data</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_28">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_71_13" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_71_28" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="73_16">Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="73_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#73_16">Form_Userptr</A>, "form_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_73_16">Form_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_73_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Form_Userptr</A>, "form_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#73_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_28">Frm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_73_16">Form_Userptr</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_28">Frm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="79_14"></A></FONT> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_29">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_79_14" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_79_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_80_29" HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_29">Frm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#59_14">;</A>
+ <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_29">Frm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_59_14">Get_User_Data</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_41">Form_User_Data</A><A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>.<A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_45_41">Form_User_Data</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms-form_user_data.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms-form_user_data.ads </H1></DIV><HR>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#48_35">;</A>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">;</A>
<b>package</b> Terminal_Interface.Curses.Forms.Form_User_Data <b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">Form</A>;
+ <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_56_29">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
Data : <b>in</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">set_form_userptr</A></EM></FONT>
<b>pragma</b> Inline (Set_User_Data);
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#44_9">Form</A>;
+ <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-forms-form_user_data__adb.htm#ref_80_29">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-form_user_data__ads.htm#ref_44_9">Form</A>;
Data : <b>out</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_userptr.3x.html">form_userptr</A></EM></FONT>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.22 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.25 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Unchecked_Deallocation;
<b>with</b> Ada.Unchecked_Conversion;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_51_40" HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A></FONT> <b>is</b>
- <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+ <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
- <b>type</b> <FONT COLOR=red><A NAME="54_9">C_Field_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <b>package</b> <FONT COLOR=red><A NAME="55_12">F_Array</A></FONT> <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>, <A HREF="terminal_interface-curses-forms__adb.htm#54_9">C_Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_55_9">C_Field_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_56_12">F_Array</A></FONT> <b>is</b> <b>new</b>
+ <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_55_9">C_Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>);
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- subtype chars_ptr is Interfaces.C.Strings.chars_ptr;</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="64_13">FOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_65_13">FOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
- <b>function</b> <FONT COLOR=red><A NAME="68_13">CInt_2_FOS</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
- <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_69_13">CInt_2_FOS</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>);
- <b>function</b> <FONT COLOR=red><A NAME="72_13">FrmOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_73_13">FrmOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
- <b>function</b> <FONT COLOR=red><A NAME="76_13">CInt_2_FrmOS</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
- <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_77_13">CInt_2_FrmOS</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#278_14">Request_Name</A><FONT COLOR=red><A NAME="80_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#278_28">Key</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#279_28">Name</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_81_14" HREF="terminal_interface-curses-forms__ads.htm#ref_276_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_81_28" HREF="terminal_interface-curses-forms__ads.htm#ref_276_28">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A>;
+ <FONT COLOR=red><A NAME="ref_82_33" HREF="terminal_interface-curses-forms__ads.htm#ref_277_28">Name</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="83_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="83_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#83_16">Form_Request_Name</A>, "form_request_name");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_84_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_84_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Form_Request_Name</A>, "form_request_name");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#83_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#278_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#279_28">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#278_14">Request_Name</A><A HREF="terminal_interface-curses-forms__ads.htm#278_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_84_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_276_28">Key</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_277_28">Name</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_276_14">Request_Name</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#281_14">Request_Name</A> (<A HREF="terminal_interface-curses-forms__ads.htm#281_28">Key</A> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_90_13" HREF="terminal_interface-curses-forms__ads.htm#ref_279_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_90_27" HREF="terminal_interface-curses-forms__ads.htm#ref_279_28">Key</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="91_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="91_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#91_16">Form_Request_Name</A>, "form_request_name");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_92_16">Form_Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_92_35">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Form_Request_Name</A>, "form_request_name");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#91_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#281_28">Key</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#281_14">Request_Name</A><A HREF="terminal_interface-curses-forms__ads.htm#281_14">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_92_16">Form_Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_279_28">Key</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_279_14">Request_Name</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#295_13">Create</A> (<A HREF="terminal_interface-curses-forms__ads.htm#295_21">Height</A> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#296_21">Width</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#297_21">Top</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#298_21">Left</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#299_21">Off_Screen</A> : Natural := 0;
- <A HREF="terminal_interface-curses-forms__ads.htm#300_21">More_Buffers</A> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First)
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_108_13" HREF="terminal_interface-curses-forms__ads.htm#ref_293_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_108_21" HREF="terminal_interface-curses-forms__ads.htm#ref_293_21">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_109_21" HREF="terminal_interface-curses-forms__ads.htm#ref_294_21">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_110_21" HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_111_21" HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_112_21" HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Off_Screen</A></FONT> : Natural := 0;
+ <FONT COLOR=red><A NAME="ref_113_21" HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">More_Buffers</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First)
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="115_16">Newfield</A></FONT> (<FONT COLOR=red><A NAME="115_26">H</A></FONT>, <FONT COLOR=red><A NAME="115_29">W</A></FONT>, <FONT COLOR=red><A NAME="115_32">T</A></FONT>, <FONT COLOR=red><A NAME="115_35">L</A></FONT>, <FONT COLOR=red><A NAME="115_38">O</A></FONT>, <FONT COLOR=red><A NAME="115_41">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#115_16">Newfield</A>, "new_field");
- <FONT COLOR=red><A NAME="117_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#115_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#295_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#296_21">Width</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#297_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#298_21">Left</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#299_21">Off_Screen</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#300_21">More_Buffers</A>));
+ <b>function</b> <FONT COLOR=red><A NAME="ref_116_16">Newfield</A></FONT> (<FONT COLOR=red><A NAME="ref_116_26">H</A></FONT>, <FONT COLOR=red><A NAME="ref_116_29">W</A></FONT>, <FONT COLOR=red><A NAME="ref_116_32">T</A></FONT>, <FONT COLOR=red><A NAME="ref_116_35">L</A></FONT>, <FONT COLOR=red><A NAME="ref_116_38">O</A></FONT>, <FONT COLOR=red><A NAME="ref_116_41">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Newfield</A>, "new_field");
+ <FONT COLOR=red><A NAME="ref_118_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_116_16">Newfield</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_293_21">Height</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_294_21">Width</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_295_21">Top</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_296_21">Left</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_297_21">Off_Screen</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_298_21">More_Buffers</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#117_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_118_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#117_7">Fld</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#295_13">Create</A><A HREF="terminal_interface-curses-forms__ads.htm#295_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_118_7">Fld</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_293_13">Create</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#317_14">Delete</A><FONT COLOR=red><A NAME="130_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#317_22">Fld</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_315_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_131_22" HREF="terminal_interface-curses-forms__ads.htm#ref_315_22">Fld</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="132_16">Free_Field</A></FONT> (<FONT COLOR=red><A NAME="132_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#132_16">Free_Field</A>, "free_field");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_133_16">Free_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_133_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Free_Field</A>, "free_field");
- <FONT COLOR=red><A NAME="135_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_136_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#132_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#317_22">Fld</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#135_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_133_16">Free_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_315_22">Fld</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_136_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__ads.htm#317_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#317_14">Delete</A><A HREF="terminal_interface-curses-forms__ads.htm#317_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_315_22">Fld</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_315_14">Delete</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#323_13">Duplicate</A> (<A HREF="terminal_interface-curses-forms__ads.htm#323_24">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#324_24">Top</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#325_24">Left</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_147_13" HREF="terminal_interface-curses-forms__ads.htm#ref_321_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_147_24" HREF="terminal_interface-curses-forms__ads.htm#ref_321_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_148_24" HREF="terminal_interface-curses-forms__ads.htm#ref_322_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_149_24" HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="150_16">Dup_Field</A></FONT> (<FONT COLOR=red><A NAME="150_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="151_27">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="152_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#150_16">Dup_Field</A>, "dup_field");
-
- <FONT COLOR=red><A NAME="155_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#150_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#323_24">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#324_24">Top</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#325_24">Left</A>));
+ <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">Dup_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_151_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_152_27">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_153_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Dup_Field</A>, "dup_field");
+
+ <FONT COLOR=red><A NAME="ref_156_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_151_16">Dup_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_321_24">Fld</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_322_24">Top</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_323_24">Left</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#155_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#155_7">F</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#323_13">Duplicate</A><A HREF="terminal_interface-curses-forms__ads.htm#323_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_156_7">F</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_321_13">Duplicate</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#330_13">Link</A> (<A HREF="terminal_interface-curses-forms__ads.htm#330_19">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#331_19">Top</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#332_19">Left</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_168_13" HREF="terminal_interface-curses-forms__ads.htm#ref_328_13">Link</A></FONT> (<FONT COLOR=red><A NAME="ref_168_19" HREF="terminal_interface-curses-forms__ads.htm#ref_328_19">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_169_19" HREF="terminal_interface-curses-forms__ads.htm#ref_329_19">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_170_19" HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Left</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="171_16">Lnk_Field</A></FONT> (<FONT COLOR=red><A NAME="171_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="172_27">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="173_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#171_16">Lnk_Field</A>, "link_field");
-
- <FONT COLOR=red><A NAME="176_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#171_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#330_19">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#331_19">Top</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#332_19">Left</A>));
+ <b>function</b> <FONT COLOR=red><A NAME="ref_172_16">Lnk_Field</A></FONT> (<FONT COLOR=red><A NAME="ref_172_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_173_27">Top</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_174_27">Left</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Lnk_Field</A>, "link_field");
+
+ <FONT COLOR=red><A NAME="ref_177_7">F</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_172_16">Lnk_Field</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_328_19">Fld</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_329_19">Top</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_330_19">Left</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#176_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_177_7">F</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#176_7">F</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#330_13">Link</A><A HREF="terminal_interface-curses-forms__ads.htm#330_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_177_7">F</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_328_13">Link</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_field_just.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#341_14">Set_Justification</A><FONT COLOR=red><A NAME="192_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#341_33">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#342_33">Just</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#61_33">None</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_193_14" HREF="terminal_interface-curses-forms__ads.htm#ref_339_14">Set_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_193_33" HREF="terminal_interface-curses-forms__ads.htm#ref_339_33">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_194_33" HREF="terminal_interface-curses-forms__ads.htm#ref_340_33">Just</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field_Justification</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_33">None</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="195_16">Set_Field_Just</A></FONT> (<FONT COLOR=red><A NAME="195_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="196_32">Just</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#195_16">Set_Field_Just</A>, "set_field_just");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_196_16">Set_Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_196_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_197_32">Just</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Set_Field_Just</A>, "set_field_just");
- <FONT COLOR=red><A NAME="199_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> :=
- <A HREF="terminal_interface-curses-forms__adb.htm#195_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#341_33">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#342_33">Just</A>)));
+ <FONT COLOR=red><A NAME="ref_200_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> :=
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_196_16">Set_Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_339_33">Fld</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field_Justification</A>'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_340_33">Just</A>)));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#199_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#199_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_200_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_200_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#341_14">Set_Justification</A><A HREF="terminal_interface-curses-forms__ads.htm#341_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_339_14">Set_Justification</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#347_13">Get_Justification</A> (<A HREF="terminal_interface-curses-forms__ads.htm#347_32">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_211_13" HREF="terminal_interface-curses-forms__ads.htm#ref_345_13">Get_Justification</A></FONT> (<FONT COLOR=red><A NAME="ref_211_32" HREF="terminal_interface-curses-forms__ads.htm#ref_345_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field_Justification</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="212_16">Field_Just</A></FONT> (<FONT COLOR=red><A NAME="212_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#212_16">Field_Just</A>, "field_just");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_213_16">Field_Just</A></FONT> (<FONT COLOR=red><A NAME="ref_213_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Field_Just</A>, "field_just");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#212_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#347_32">Fld</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#347_13">Get_Justification</A><A HREF="terminal_interface-curses-forms__ads.htm#347_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field_Justification</A>'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_213_16">Field_Just</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_345_32">Fld</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_345_13">Get_Justification</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_field_buffer.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#356_14">Set_Buffer</A><FONT COLOR=red><A NAME="224_14"></A></FONT>
- (<A HREF="terminal_interface-curses-forms__ads.htm#357_7">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#358_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First;
- <A HREF="terminal_interface-curses-forms__ads.htm#359_7">Str</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_225_14" HREF="terminal_interface-curses-forms__ads.htm#ref_354_14">Set_Buffer</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses-forms__ads.htm#ref_355_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses-forms__ads.htm#ref_356_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First;
+ <FONT COLOR=red><A NAME="ref_228_7" HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Str</A></FONT> : <b>in</b> String)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="229_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
- <b>function</b> <FONT COLOR=red><A NAME="230_16">Set_Fld_Buffer</A></FONT> (<FONT COLOR=red><A NAME="230_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="231_34">Bufnum</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="232_34">S</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#229_12">Char_Ptr</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#230_16">Set_Fld_Buffer</A>, "set_field_buffer");
-
- <FONT COLOR=red><A NAME="236_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms__ads.htm#359_7">Str</A>'Length);
- <FONT COLOR=red><A NAME="237_7">Len</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="238_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_230_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_231_16">Set_Fld_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_231_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_232_34">Bufnum</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_233_34">S</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_230_12">Char_Ptr</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Set_Fld_Buffer</A>, "set_field_buffer");
+
+ <FONT COLOR=red><A NAME="ref_237_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_238_7">Len</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_239_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-forms__ads.htm#359_7">Str</A>, <A HREF="terminal_interface-curses-forms__adb.htm#236_7">Txt</A>, <A HREF="terminal_interface-curses-forms__adb.htm#237_7">Len</A>);
- <A HREF="terminal_interface-curses-forms__adb.htm#238_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#230_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#357_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#358_7">Buffer</A>), <A HREF="terminal_interface-curses-forms__adb.htm#236_7">Txt</A> (<A HREF="terminal_interface-curses-forms__adb.htm#236_7">Txt</A>'First)'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#238_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#238_7">Res</A>);
+ To_C (<A HREF="terminal_interface-curses-forms__ads.htm#ref_357_7">Str</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_238_7">Len</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_231_16">Set_Fld_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_355_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_356_7">Buffer</A>), <A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_237_7">Txt</A>'First)'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_239_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#356_14">Set_Buffer</A><A HREF="terminal_interface-curses-forms__ads.htm#356_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_354_14">Set_Buffer</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#364_14">Get_Buffer</A><FONT COLOR=red><A NAME="249_14"></A></FONT>
- (<A HREF="terminal_interface-curses-forms__ads.htm#365_7">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#366_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First;
- <A HREF="terminal_interface-curses-forms__ads.htm#367_7">Str</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-forms__ads.htm#ref_362_14">Get_Buffer</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_251_7" HREF="terminal_interface-curses-forms__ads.htm#ref_363_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_252_7" HREF="terminal_interface-curses-forms__ads.htm#ref_364_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First;
+ <FONT COLOR=red><A NAME="ref_253_7" HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Str</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="254_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="254_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="255_30">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#254_16">Field_Buffer</A>, "field_buffer");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_255_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_255_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_256_30">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Field_Buffer</A>, "field_buffer");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#254_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#365_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#366_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#367_7">Str</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#364_14">Get_Buffer</A><A HREF="terminal_interface-curses-forms__ads.htm#364_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_255_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_363_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_364_7">Buffer</A>)), <A HREF="terminal_interface-curses-forms__ads.htm#ref_365_7">Str</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_362_14">Get_Buffer</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A>
- (<A HREF="terminal_interface-curses-forms__ads.htm#371_7">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#372_7">Buffer</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>'First) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_262_13" HREF="terminal_interface-curses-forms__ads.htm#ref_368_13">Get_Buffer</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_263_7" HREF="terminal_interface-curses-forms__ads.htm#ref_369_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_264_7" HREF="terminal_interface-curses-forms__ads.htm#ref_370_7">Buffer</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>'First) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="265_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="265_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="266_30">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#265_16">Field_Buffer</A>, "field_buffer");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_266_16">Field_Buffer</A></FONT> (<FONT COLOR=red><A NAME="ref_266_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_267_30">B</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Field_Buffer</A>, "field_buffer");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#265_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#371_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#372_7">Buffer</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#370_13">Get_Buffer</A><A HREF="terminal_interface-curses-forms__ads.htm#370_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_266_16">Field_Buffer</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_369_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_370_7">Buffer</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_368_13">Get_Buffer</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#378_14">Set_Status</A><FONT COLOR=red><A NAME="274_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#378_26">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#379_26">Status</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_275_14" HREF="terminal_interface-curses-forms__ads.htm#ref_376_14">Set_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_275_26" HREF="terminal_interface-curses-forms__ads.htm#ref_376_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-forms__ads.htm#ref_377_26">Status</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="277_16">Set_Fld_Status</A></FONT> (<FONT COLOR=red><A NAME="277_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="278_32">St</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#277_16">Set_Fld_Status</A>, "set_field_status");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Set_Fld_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_278_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_279_32">St</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Set_Fld_Status</A>, "set_field_status");
- <FONT COLOR=red><A NAME="281_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#277_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#378_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#379_26">Status</A>));
+ <FONT COLOR=red><A NAME="ref_282_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_278_16">Set_Fld_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_376_26">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_377_26">Status</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#281_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_282_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#378_14">Set_Status</A><A HREF="terminal_interface-curses-forms__ads.htm#378_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_376_14">Set_Status</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#384_13">Changed</A> (<A HREF="terminal_interface-curses-forms__ads.htm#384_22">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_291_13" HREF="terminal_interface-curses-forms__ads.htm#ref_382_13">Changed</A></FONT> (<FONT COLOR=red><A NAME="ref_291_22" HREF="terminal_interface-curses-forms__ads.htm#ref_382_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="292_16">Field_Status</A></FONT> (<FONT COLOR=red><A NAME="292_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#292_16">Field_Status</A>, "field_status");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_293_16">Field_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_293_30">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Field_Status</A>, "field_status");
- <FONT COLOR=red><A NAME="295_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#292_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#384_22">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_296_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_293_16">Field_Status</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_382_22">Fld</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#295_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_296_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#384_13">Changed</A><A HREF="terminal_interface-curses-forms__ads.htm#384_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_382_13">Changed</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#389_14">Set_Maximum_Size</A><FONT COLOR=red><A NAME="306_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#389_32">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#390_32">Max</A> : <b>in</b> Natural := 0)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_307_14" HREF="terminal_interface-curses-forms__ads.htm#ref_387_14">Set_Maximum_Size</A></FONT> (<FONT COLOR=red><A NAME="ref_307_32" HREF="terminal_interface-curses-forms__ads.htm#ref_387_32">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_308_32" HREF="terminal_interface-curses-forms__ads.htm#ref_388_32">Max</A></FONT> : <b>in</b> Natural := 0)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="309_16">Set_Field_Max</A></FONT> (<FONT COLOR=red><A NAME="309_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="310_31">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#309_16">Set_Field_Max</A>, "set_max_field");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_310_16">Set_Field_Max</A></FONT> (<FONT COLOR=red><A NAME="ref_310_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_311_31">M</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Set_Field_Max</A>, "set_max_field");
- <FONT COLOR=red><A NAME="313_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#309_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#389_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#390_32">Max</A>));
+ <FONT COLOR=red><A NAME="ref_314_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_310_16">Set_Field_Max</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_387_32">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_388_32">Max</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#313_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#313_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_314_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_314_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#389_14">Set_Maximum_Size</A><A HREF="terminal_interface-curses-forms__ads.htm#389_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_387_14">Set_Maximum_Size</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_field_opts.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#399_14">Set_Options</A><FONT COLOR=red><A NAME="326_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#399_27">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#400_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_327_14" HREF="terminal_interface-curses-forms__ads.htm#ref_397_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_327_27" HREF="terminal_interface-curses-forms__ads.htm#ref_397_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_328_27" HREF="terminal_interface-curses-forms__ads.htm#ref_398_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="329_16">Set_Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="329_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="330_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#329_16">Set_Field_Opts</A>, "set_field_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_330_16">Set_Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_330_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_331_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Set_Field_Opts</A>, "set_field_opts");
- <FONT COLOR=red><A NAME="333_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#64_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#400_27">Options</A>);
- <FONT COLOR=red><A NAME="334_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_334_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_65_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_398_27">Options</A>);
+ <FONT COLOR=red><A NAME="ref_335_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#334_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#329_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#399_27">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#333_7">Opt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#334_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#334_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_330_16">Set_Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_397_27">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_334_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_335_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#399_14">Set_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#399_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_397_14">Set_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#405_14">Switch_Options</A><FONT COLOR=red><A NAME="344_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#405_30">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#406_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#407_30">On</A> : Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_345_14" HREF="terminal_interface-curses-forms__ads.htm#ref_403_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_345_30" HREF="terminal_interface-curses-forms__ads.htm#ref_403_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_346_30" HREF="terminal_interface-curses-forms__ads.htm#ref_404_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_347_30" HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">On</A></FONT> : Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="348_16">Field_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="348_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="349_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#348_16">Field_Opts_On</A>, "field_opts_on");
- <b>function</b> <FONT COLOR=red><A NAME="351_16">Field_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="351_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="352_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#351_16">Field_Opts_Off</A>, "field_opts_off");
-
- <FONT COLOR=red><A NAME="355_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <FONT COLOR=red><A NAME="356_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#64_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#406_30">Options</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_349_16">Field_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_349_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_350_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Field_Opts_On</A>, "field_opts_on");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_352_16">Field_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_352_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_353_32">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Field_Opts_Off</A>, "field_opts_off");
+
+ <FONT COLOR=red><A NAME="ref_356_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_357_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_65_13">FOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_404_30">Options</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#407_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#348_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#356_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_405_30">On</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_349_16">Field_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_403_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#351_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#405_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#356_7">Opt</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_352_16">Field_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_403_30">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_357_7">Opt</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#355_7">Err</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_356_7">Err</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#405_14">Switch_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#405_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_403_14">Switch_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#413_14">Get_Options</A><FONT COLOR=red><A NAME="370_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#413_27">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#414_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-forms__ads.htm#ref_411_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-forms__ads.htm#ref_411_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-forms__ads.htm#ref_412_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="373_16">Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="373_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#373_16">Field_Opts</A>, "field_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Field_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Field_Opts</A>, "field_opts");
- <FONT COLOR=red><A NAME="376_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#373_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#413_27">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_377_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_374_16">Field_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_411_27">Fld</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#414_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#68_13">CInt_2_FOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#376_7">Res</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#413_14">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#413_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_412_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_69_13">CInt_2_FOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_377_7">Res</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_411_14">Get_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#418_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#418_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>)
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_384_13" HREF="terminal_interface-curses-forms__ads.htm#ref_416_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_384_26" HREF="terminal_interface-curses-forms__ads.htm#ref_416_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>
<b>is</b>
- <FONT COLOR=red><A NAME="386_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_387_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#413_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#418_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#386_7">Fos</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#386_7">Fos</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#418_13">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#418_13">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_411_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_416_26">Fld</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_387_7">Fos</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_387_7">Fos</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_416_13">Get_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_field_attributes.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#428_14">Set_Foreground</A><FONT COLOR=red><A NAME="398_14"></A></FONT>
- (<A HREF="terminal_interface-curses-forms__ads.htm#429_7">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#430_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#431_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses-forms__ads.htm#ref_426_14">Set_Foreground</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_400_7" HREF="terminal_interface-curses-forms__ads.htm#ref_427_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_401_7" HREF="terminal_interface-curses-forms__ads.htm#ref_428_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_402_7" HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="403_16">Set_Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="403_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="404_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#403_16">Set_Field_Fore</A>, "set_field_fore");
-
- <FONT COLOR=red><A NAME="407_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Color => <A HREF="terminal_interface-curses-forms__ads.htm#431_7">Color</A>,
- Attr => <A HREF="terminal_interface-curses-forms__ads.htm#430_7">Fore</A>);
- <FONT COLOR=red><A NAME="410_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> :=
- <A HREF="terminal_interface-curses-forms__adb.htm#403_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#429_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#407_7">Ch</A>));
+ <b>function</b> <FONT COLOR=red><A NAME="ref_404_16">Set_Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_404_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_405_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Set_Field_Fore</A>, "set_field_fore");
+
+ <FONT COLOR=red><A NAME="ref_408_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Color => <A HREF="terminal_interface-curses-forms__ads.htm#ref_429_7">Color</A>,
+ Attr => <A HREF="terminal_interface-curses-forms__ads.htm#ref_428_7">Fore</A>);
+ <FONT COLOR=red><A NAME="ref_411_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> :=
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_404_16">Set_Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_427_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_408_7">Ch</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#410_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#410_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_411_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_411_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#428_14">Set_Foreground</A><A HREF="terminal_interface-curses-forms__ads.htm#428_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_426_14">Set_Foreground</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#436_14">Foreground</A><FONT COLOR=red><A NAME="420_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#436_26">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#437_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_421_14" HREF="terminal_interface-curses-forms__ads.htm#ref_434_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_421_26" HREF="terminal_interface-curses-forms__ads.htm#ref_434_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-forms__ads.htm#ref_435_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="423_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="423_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#423_16">Field_Fore</A>, "field_fore");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_424_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_424_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Field_Fore</A>, "field_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#437_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#423_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#436_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#436_14">Foreground</A><A HREF="terminal_interface-curses-forms__ads.htm#436_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_435_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_424_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_434_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_434_14">Foreground</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#441_14">Foreground</A><FONT COLOR=red><A NAME="429_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#441_26">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#442_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#443_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-forms__ads.htm#ref_439_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-forms__ads.htm#ref_440_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+ <FONT COLOR=red><A NAME="ref_432_26" HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="433_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="433_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#433_16">Field_Fore</A>, "field_fore");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_434_16">Field_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_434_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A>, "field_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#442_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#433_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#441_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#443_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#433_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#441_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#441_14">Foreground</A><A HREF="terminal_interface-curses-forms__ads.htm#441_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_440_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_441_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_434_16">Field_Fore</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_439_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_439_14">Foreground</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#448_14">Set_Background</A><FONT COLOR=red><A NAME="442_14"></A></FONT>
- (<A HREF="terminal_interface-curses-forms__ads.htm#449_7">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#450_7">Back</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#451_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses-forms__ads.htm#ref_446_14">Set_Background</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-forms__ads.htm#ref_447_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-forms__ads.htm#ref_448_7">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="447_16">Set_Field_Back</A></FONT> (<FONT COLOR=red><A NAME="447_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="448_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#447_16">Set_Field_Back</A>, "set_field_back");
-
- <FONT COLOR=red><A NAME="451_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Color => <A HREF="terminal_interface-curses-forms__ads.htm#451_7">Color</A>,
- Attr => <A HREF="terminal_interface-curses-forms__ads.htm#450_7">Back</A>);
- <FONT COLOR=red><A NAME="454_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> :=
- <A HREF="terminal_interface-curses-forms__adb.htm#447_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#449_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#451_7">Ch</A>));
+ <b>function</b> <FONT COLOR=red><A NAME="ref_448_16">Set_Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_448_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_449_32">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Set_Field_Back</A>, "set_field_back");
+
+ <FONT COLOR=red><A NAME="ref_452_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Color => <A HREF="terminal_interface-curses-forms__ads.htm#ref_449_7">Color</A>,
+ Attr => <A HREF="terminal_interface-curses-forms__ads.htm#ref_448_7">Back</A>);
+ <FONT COLOR=red><A NAME="ref_455_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> :=
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_448_16">Set_Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_447_7">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_452_7">Ch</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#454_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#454_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_455_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_455_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#448_14">Set_Background</A><A HREF="terminal_interface-curses-forms__ads.htm#448_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_446_14">Set_Background</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#456_14">Background</A><FONT COLOR=red><A NAME="464_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#456_26">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#457_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_465_14" HREF="terminal_interface-curses-forms__ads.htm#ref_454_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_465_26" HREF="terminal_interface-curses-forms__ads.htm#ref_454_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_466_26" HREF="terminal_interface-curses-forms__ads.htm#ref_455_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="467_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="467_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#467_16">Field_Back</A>, "field_back");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_468_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_468_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Field_Back</A>, "field_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#457_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#467_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#456_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#456_14">Background</A><A HREF="terminal_interface-curses-forms__ads.htm#456_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_455_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_468_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_454_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_454_14">Background</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#461_14">Background</A><FONT COLOR=red><A NAME="473_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#461_26">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#462_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#463_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_474_14" HREF="terminal_interface-curses-forms__ads.htm#ref_459_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_474_26" HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_475_26" HREF="terminal_interface-curses-forms__ads.htm#ref_460_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+ <FONT COLOR=red><A NAME="ref_476_26" HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="477_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="477_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#477_16">Field_Back</A>, "field_back");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_478_16">Field_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_478_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A>, "field_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#462_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#477_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#461_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#463_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#477_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#461_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#461_14">Background</A><A HREF="terminal_interface-curses-forms__ads.htm#461_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_460_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_461_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_478_16">Field_Back</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_459_26">Fld</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_459_14">Background</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#468_14">Set_Pad_Character</A><FONT COLOR=red><A NAME="486_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#468_33">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#469_33">Pad</A> : <b>in</b> Character := <A HREF="terminal_interface-curses-forms__ads.htm#53_4">Space</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_487_14" HREF="terminal_interface-curses-forms__ads.htm#ref_466_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_487_33" HREF="terminal_interface-curses-forms__ads.htm#ref_466_33">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_488_33" HREF="terminal_interface-curses-forms__ads.htm#ref_467_33">Pad</A></FONT> : <b>in</b> Character := Space)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="489_16">Set_Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="489_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="490_31">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#489_16">Set_Field_Pad</A>, "set_field_pad");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_490_16">Set_Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_490_31">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_491_31">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Set_Field_Pad</A>, "set_field_pad");
- <FONT COLOR=red><A NAME="493_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#489_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#468_33">Fld</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#469_33">Pad</A>)));
+ <FONT COLOR=red><A NAME="ref_494_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_490_16">Set_Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_466_33">Fld</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_467_33">Pad</A>)));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#493_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#493_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_494_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_494_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#468_14">Set_Pad_Character</A><A HREF="terminal_interface-curses-forms__ads.htm#468_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_466_14">Set_Pad_Character</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#474_14">Pad_Character</A><FONT COLOR=red><A NAME="503_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#474_29">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#475_29">Pad</A> : <b>out</b> Character)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_504_14" HREF="terminal_interface-curses-forms__ads.htm#ref_472_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_504_29" HREF="terminal_interface-curses-forms__ads.htm#ref_472_29">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_505_29" HREF="terminal_interface-curses-forms__ads.htm#ref_473_29">Pad</A></FONT> : <b>out</b> Character)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="506_16">Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="506_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#506_16">Field_Pad</A>, "field_pad");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_507_16">Field_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_507_27">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Field_Pad</A>, "field_pad");
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#475_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#506_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#474_29">Fld</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#474_14">Pad_Character</A><A HREF="terminal_interface-curses-forms__ads.htm#474_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_473_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-forms__adb.htm#ref_507_16">Field_Pad</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_472_29">Fld</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_472_14">Pad_Character</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_field_info.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#484_14">Info</A><FONT COLOR=red><A NAME="518_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#484_20">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#485_20">Lines</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#486_20">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#487_20">First_Row</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#488_20">First_Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#489_20">Off_Screen</A> : <b>out</b> Natural;
- <A HREF="terminal_interface-curses-forms__ads.htm#490_20">Additional_Buffers</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_519_14" HREF="terminal_interface-curses-forms__ads.htm#ref_482_14">Info</A></FONT> (<FONT COLOR=red><A NAME="ref_519_20" HREF="terminal_interface-curses-forms__ads.htm#ref_482_20">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_520_20" HREF="terminal_interface-curses-forms__ads.htm#ref_483_20">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_521_20" HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_522_20" HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">First_Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_523_20" HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">First_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_524_20" HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">Off_Screen</A></FONT> : <b>out</b> Natural;
+ <FONT COLOR=red><A NAME="ref_525_20" HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Additional_Buffers</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="526_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="527_16">Fld_Info</A></FONT> (<FONT COLOR=red><A NAME="527_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <FONT COLOR=red><A NAME="528_26">L</A></FONT>, <FONT COLOR=red><A NAME="528_29">C</A></FONT>, <FONT COLOR=red><A NAME="528_32">Fr</A></FONT>, <FONT COLOR=red><A NAME="528_36">Fc</A></FONT>, <FONT COLOR=red><A NAME="528_40">Os</A></FONT>, <FONT COLOR=red><A NAME="528_44">Ab</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#526_12">C_Int_Access</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#527_16">Fld_Info</A>, "field_info");
-
- <FONT COLOR=red><A NAME="532_7">L</A></FONT>, <FONT COLOR=red><A NAME="532_10">C</A></FONT>, <FONT COLOR=red><A NAME="532_13">Fr</A></FONT>, <FONT COLOR=red><A NAME="532_17">Fc</A></FONT>, <FONT COLOR=red><A NAME="532_21">Os</A></FONT>, <FONT COLOR=red><A NAME="532_25">Ab</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="533_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#527_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#484_20">Fld</A>,
- <A HREF="terminal_interface-curses-forms__adb.htm#532_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#532_10">C</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms__adb.htm#532_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#532_17">Fc</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms__adb.htm#532_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#532_25">Ab</A>'<b>Access</b>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_527_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_528_16">Fld_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_528_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_529_26">L</A></FONT>, <FONT COLOR=red><A NAME="ref_529_29">C</A></FONT>, <FONT COLOR=red><A NAME="ref_529_32">Fr</A></FONT>, <FONT COLOR=red><A NAME="ref_529_36">Fc</A></FONT>, <FONT COLOR=red><A NAME="ref_529_40">Os</A></FONT>, <FONT COLOR=red><A NAME="ref_529_44">Ab</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_527_12">C_Int_Access</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld_Info</A>, "field_info");
+
+ <FONT COLOR=red><A NAME="ref_533_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_533_10">C</A></FONT>, <FONT COLOR=red><A NAME="ref_533_13">Fr</A></FONT>, <FONT COLOR=red><A NAME="ref_533_17">Fc</A></FONT>, <FONT COLOR=red><A NAME="ref_533_21">Os</A></FONT>, <FONT COLOR=red><A NAME="ref_533_25">Ab</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_534_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_528_16">Fld_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_482_20">Fld</A>,
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_10">C</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_13">Fr</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_17">Fc</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_21">Os</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_533_25">Ab</A>'<b>Access</b>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#533_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#533_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_534_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_534_7">Res</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#485_20">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_7">L</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#486_20">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_10">C</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#487_20">First_Row</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_13">Fr</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#488_20">First_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_17">Fc</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#489_20">Off_Screen</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#532_21">Os</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#490_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#532_25">Ab</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_483_20">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_7">L</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_484_20">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_10">C</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_485_20">First_Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_13">Fr</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_486_20">First_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_17">Fc</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_487_20">Off_Screen</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_21">Os</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_488_20">Additional_Buffers</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Buffer_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_533_25">Ab</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#484_14">Info</A><A HREF="terminal_interface-curses-forms__ads.htm#484_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_482_14">Info</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#495_14">Dynamic_Info</A><FONT COLOR=red><A NAME="552_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#495_28">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#496_28">Lines</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#497_28">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#498_28">Max</A> : <b>out</b> Natural)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_553_14" HREF="terminal_interface-curses-forms__ads.htm#ref_493_14">Dynamic_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_553_28" HREF="terminal_interface-curses-forms__ads.htm#ref_493_28">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_554_28" HREF="terminal_interface-curses-forms__ads.htm#ref_494_28">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_555_28" HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_556_28" HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Max</A></FONT> : <b>out</b> Natural)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="557_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="558_16">Dyn_Info</A></FONT> (<FONT COLOR=red><A NAME="558_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>; <FONT COLOR=red><A NAME="558_39">L</A></FONT>, <FONT COLOR=red><A NAME="558_42">C</A></FONT>, <FONT COLOR=red><A NAME="558_45">M</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#557_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#558_16">Dyn_Info</A>, "dynamic_field_info");
-
- <FONT COLOR=red><A NAME="561_7">L</A></FONT>, <FONT COLOR=red><A NAME="561_10">C</A></FONT>, <FONT COLOR=red><A NAME="561_13">M</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="562_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#558_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#495_28">Fld</A>,
- <A HREF="terminal_interface-curses-forms__adb.htm#561_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#561_10">C</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-forms__adb.htm#561_13">M</A>'<b>Access</b>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_558_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_559_16">Dyn_Info</A></FONT> (<FONT COLOR=red><A NAME="ref_559_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>; <FONT COLOR=red><A NAME="ref_559_39">L</A></FONT>, <FONT COLOR=red><A NAME="ref_559_42">C</A></FONT>, <FONT COLOR=red><A NAME="ref_559_45">M</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_558_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Dyn_Info</A>, "dynamic_field_info");
+
+ <FONT COLOR=red><A NAME="ref_562_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_562_10">C</A></FONT>, <FONT COLOR=red><A NAME="ref_562_13">M</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_563_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_559_16">Dyn_Info</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_493_28">Fld</A>,
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>'<b>Access</b>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#562_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#562_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_563_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_563_7">Res</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#496_28">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#561_7">L</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#497_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#561_10">C</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#498_28">Max</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#561_13">M</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_494_28">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_7">L</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_495_28">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_10">C</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_496_28">Max</A> := Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_562_13">M</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#495_14">Dynamic_Info</A><A HREF="terminal_interface-curses-forms__ads.htm#495_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_493_14">Dynamic_Info</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_win.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#507_14">Set_Window</A><FONT COLOR=red><A NAME="581_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#507_26">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#508_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_582_14" HREF="terminal_interface-curses-forms__ads.htm#ref_505_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_582_26" HREF="terminal_interface-curses-forms__ads.htm#ref_505_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_583_26" HREF="terminal_interface-curses-forms__ads.htm#ref_506_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="584_16">Set_Form_Win</A></FONT> (<FONT COLOR=red><A NAME="584_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="585_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#584_16">Set_Form_Win</A>, "set_form_win");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_585_16">Set_Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_585_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_586_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Set_Form_Win</A>, "set_form_win");
- <FONT COLOR=red><A NAME="588_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#584_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#507_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#508_26">Win</A>);
+ <FONT COLOR=red><A NAME="ref_589_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_585_16">Set_Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_505_26">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_506_26">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#588_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#588_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_589_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_589_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#507_14">Set_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#507_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_505_14">Set_Window</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#513_13">Get_Window</A> (<A HREF="terminal_interface-curses-forms__ads.htm#513_25">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses-forms__ads.htm#ref_511_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_598_25" HREF="terminal_interface-curses-forms__ads.htm#ref_511_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="599_16">Form_Win</A></FONT> (<FONT COLOR=red><A NAME="599_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#599_16">Form_Win</A>, "form_win");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Form_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_600_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Form_Win</A>, "form_win");
- <FONT COLOR=red><A NAME="602_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#599_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#513_25">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_603_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_600_16">Form_Win</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_511_25">Frm</A>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#602_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#513_13">Get_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#513_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_603_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_511_13">Get_Window</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#518_14">Set_Sub_Window</A><FONT COLOR=red><A NAME="609_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#518_30">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#519_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_610_14" HREF="terminal_interface-curses-forms__ads.htm#ref_516_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses-forms__ads.htm#ref_516_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_611_30" HREF="terminal_interface-curses-forms__ads.htm#ref_517_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="612_16">Set_Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="612_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="613_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#612_16">Set_Form_Sub</A>, "set_form_sub");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_613_16">Set_Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_613_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_614_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Set_Form_Sub</A>, "set_form_sub");
- <FONT COLOR=red><A NAME="616_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#612_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#518_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#519_30">Win</A>);
+ <FONT COLOR=red><A NAME="ref_617_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_613_16">Set_Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_516_30">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_517_30">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#616_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#616_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_617_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_617_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#518_14">Set_Sub_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#518_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_516_14">Set_Sub_Window</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#524_13">Get_Sub_Window</A> (<A HREF="terminal_interface-curses-forms__ads.htm#524_29">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_626_13" HREF="terminal_interface-curses-forms__ads.htm#ref_522_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_626_29" HREF="terminal_interface-curses-forms__ads.htm#ref_522_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="627_16">Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="627_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#627_16">Form_Sub</A>, "form_sub");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_628_16">Form_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_628_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Form_Sub</A>, "form_sub");
- <FONT COLOR=red><A NAME="630_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#627_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#524_29">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_631_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_628_16">Form_Sub</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_522_29">Frm</A>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#630_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#524_13">Get_Sub_Window</A><A HREF="terminal_interface-curses-forms__ads.htm#524_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_631_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_522_13">Get_Sub_Window</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#529_14">Scale</A><FONT COLOR=red><A NAME="637_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#529_21">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#530_21">Lines</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#531_21">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_638_14" HREF="terminal_interface-curses-forms__ads.htm#ref_527_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_638_21" HREF="terminal_interface-curses-forms__ads.htm#ref_527_21">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_639_21" HREF="terminal_interface-curses-forms__ads.htm#ref_528_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_640_21" HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="641_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="642_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="642_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="642_37">Yp</A></FONT>, <FONT COLOR=red><A NAME="642_41">Xp</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#641_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#642_16">M_Scale</A>, "scale_form");
+ <b>type</b> <FONT COLOR=red><A NAME="ref_642_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_643_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_643_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_643_37">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_643_41">Xp</A></FONT> : <A HREF="terminal_interface-curses-forms__adb.htm#ref_642_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">M_Scale</A>, "scale_form");
- <FONT COLOR=red><A NAME="645_7">X</A></FONT>, <FONT COLOR=red><A NAME="645_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="646_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#642_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#529_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#645_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#645_7">X</A>'<b>Access</b>);
+ <FONT COLOR=red><A NAME="ref_646_7">X</A></FONT>, <FONT COLOR=red><A NAME="ref_646_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_647_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_643_16">M_Scale</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_527_21">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>'<b>Access</b>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#646_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#646_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_647_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_647_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__ads.htm#530_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#645_10">Y</A>);
- <A HREF="terminal_interface-curses-forms__ads.htm#531_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#645_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#529_14">Scale</A><A HREF="terminal_interface-curses-forms__ads.htm#529_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_528_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_10">Y</A>);
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_529_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_646_7">X</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_527_14">Scale</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page menu_hook.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#543_14">Set_Field_Init_Hook</A><FONT COLOR=red><A NAME="661_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#543_35">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#544_35">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_662_14" HREF="terminal_interface-curses-forms__ads.htm#ref_541_14">Set_Field_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_662_35" HREF="terminal_interface-curses-forms__ads.htm#ref_541_35">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_663_35" HREF="terminal_interface-curses-forms__ads.htm#ref_542_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="664_16">Set_Field_Init</A></FONT> (<FONT COLOR=red><A NAME="664_32">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="665_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#664_16">Set_Field_Init</A>, "set_field_init");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_665_16">Set_Field_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_665_32">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_666_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Set_Field_Init</A>, "set_field_init");
- <FONT COLOR=red><A NAME="668_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#664_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#543_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#544_35">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_669_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_665_16">Set_Field_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_541_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_542_35">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#668_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#668_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_669_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_669_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#543_14">Set_Field_Init_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#543_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_541_14">Set_Field_Init_Hook</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#549_14">Set_Field_Term_Hook</A><FONT COLOR=red><A NAME="677_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#549_35">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#550_35">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_678_14" HREF="terminal_interface-curses-forms__ads.htm#ref_547_14">Set_Field_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_678_35" HREF="terminal_interface-curses-forms__ads.htm#ref_547_35">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_679_35" HREF="terminal_interface-curses-forms__ads.htm#ref_548_35">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="680_16">Set_Field_Term</A></FONT> (<FONT COLOR=red><A NAME="680_32">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="681_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#680_16">Set_Field_Term</A>, "set_field_term");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_681_16">Set_Field_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_681_32">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_682_32">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Set_Field_Term</A>, "set_field_term");
- <FONT COLOR=red><A NAME="684_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#680_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#549_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#550_35">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_685_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_681_16">Set_Field_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_547_35">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_548_35">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#684_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#684_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_685_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_685_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#549_14">Set_Field_Term_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#549_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_547_14">Set_Field_Term_Hook</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#555_14">Set_Form_Init_Hook</A><FONT COLOR=red><A NAME="693_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#555_34">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#556_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_694_14" HREF="terminal_interface-curses-forms__ads.htm#ref_553_14">Set_Form_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_694_34" HREF="terminal_interface-curses-forms__ads.htm#ref_553_34">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_695_34" HREF="terminal_interface-curses-forms__ads.htm#ref_554_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="696_16">Set_Form_Init</A></FONT> (<FONT COLOR=red><A NAME="696_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="697_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#696_16">Set_Form_Init</A>, "set_form_init");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_697_16">Set_Form_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_697_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_698_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Set_Form_Init</A>, "set_form_init");
- <FONT COLOR=red><A NAME="700_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#696_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#555_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#556_34">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_701_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_697_16">Set_Form_Init</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_553_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_554_34">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#700_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#700_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_701_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_701_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#555_14">Set_Form_Init_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#555_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_553_14">Set_Form_Init_Hook</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#561_14">Set_Form_Term_Hook</A><FONT COLOR=red><A NAME="709_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#561_34">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#562_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_710_14" HREF="terminal_interface-curses-forms__ads.htm#ref_559_14">Set_Form_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_710_34" HREF="terminal_interface-curses-forms__ads.htm#ref_559_34">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_711_34" HREF="terminal_interface-curses-forms__ads.htm#ref_560_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="712_16">Set_Form_Term</A></FONT> (<FONT COLOR=red><A NAME="712_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="713_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#712_16">Set_Form_Term</A>, "set_form_term");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_713_16">Set_Form_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_713_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_714_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Set_Form_Term</A>, "set_form_term");
- <FONT COLOR=red><A NAME="716_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#712_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#561_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#562_34">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_717_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_713_16">Set_Form_Term</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_559_34">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_560_34">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#716_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#716_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_717_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_717_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#561_14">Set_Form_Term_Hook</A><A HREF="terminal_interface-curses-forms__ads.htm#561_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_559_14">Set_Form_Term_Hook</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_fields.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#591_14">Redefine</A><FONT COLOR=red><A NAME="729_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#591_24">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_730_14" HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_730_24" HREF="terminal_interface-curses-forms__ads.htm#ref_589_24">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_731_24" HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="732_16">Set_Frm_Fields</A></FONT> (<FONT COLOR=red><A NAME="732_32">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="733_32">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#732_16">Set_Frm_Fields</A>, "set_form_fields");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_733_16">Set_Frm_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_733_32">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_734_32">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Set_Frm_Fields</A>, "set_form_fields");
- <FONT COLOR=red><A NAME="736_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_737_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#736_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#732_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#591_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#592_24">Flds</A>'First)'Address);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#736_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#736_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_733_16">Set_Frm_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_589_24">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_590_24">Flds</A>'First)'Address);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_737_7">Res</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#591_14">Redefine</A><A HREF="terminal_interface-curses-forms__ads.htm#591_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_589_14">Redefine</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#603_13">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#603_21">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#604_21">Index</A> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_752_13" HREF="terminal_interface-curses-forms__ads.htm#ref_601_13">Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_752_21" HREF="terminal_interface-curses-forms__ads.htm#ref_601_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_753_21" HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
<b>is</b>
- <b>use</b> <A HREF="terminal_interface-curses-forms__adb.htm#55_12">F_Array</A>;
+ <b>use</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_56_12">F_Array</A>;
- <b>function</b> <FONT COLOR=red><A NAME="756_16">C_Fields</A></FONT> (<FONT COLOR=red><A NAME="756_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Pointer;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#756_16">C_Fields</A>, "form_fields");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_757_16">C_Fields</A></FONT> (<FONT COLOR=red><A NAME="ref_757_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Pointer;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_757_16">C_Fields</A>, "form_fields");
- <FONT COLOR=red><A NAME="759_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-forms__adb.htm#756_16">C_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#603_21">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_760_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-forms__adb.htm#ref_757_16">C_Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_601_21">Frm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#604_21">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-forms__ads.htm#609_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#603_21">Frm</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-forms__ads.htm#ref_607_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_601_21">Frm</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A> := <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#604_21">Index</A>) - 1);
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#759_7">P</A>.<b>all</b>;
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_602_21">Index</A>) - 1);
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_760_7">P</A>.<b>all</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#603_13">Fields</A><A HREF="terminal_interface-curses-forms__ads.htm#603_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_601_13">Fields</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#609_13">Field_Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#609_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Natural
+ <b>function</b> <FONT COLOR=red><A NAME="ref_772_13" HREF="terminal_interface-curses-forms__ads.htm#ref_607_13">Field_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_772_26" HREF="terminal_interface-curses-forms__ads.htm#ref_607_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Natural
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="773_16">Count</A></FONT> (<FONT COLOR=red><A NAME="773_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#773_16">Count</A>, "field_count");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_774_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_774_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Count</A>, "field_count");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#773_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#609_26">Frm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#609_13">Field_Count</A><A HREF="terminal_interface-curses-forms__ads.htm#609_13">;</A>
+ <b>return</b> Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_774_16">Count</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_607_26">Frm</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_607_13">Field_Count</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#614_14">Move</A><FONT COLOR=red><A NAME="781_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#614_20">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#615_20">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#616_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-forms__ads.htm#ref_612_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_782_20" HREF="terminal_interface-curses-forms__ads.htm#ref_612_20">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_783_20" HREF="terminal_interface-curses-forms__ads.htm#ref_613_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_784_20" HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="785_16">Move</A></FONT> (<FONT COLOR=red><A NAME="785_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>; <FONT COLOR=red><A NAME="785_35">L</A></FONT>, <FONT COLOR=red><A NAME="785_38">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#785_16">Move</A>, "move_field");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_786_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_786_22">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>; <FONT COLOR=red><A NAME="ref_786_35">L</A></FONT>, <FONT COLOR=red><A NAME="ref_786_38">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Move</A>, "move_field");
- <FONT COLOR=red><A NAME="788_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#785_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#614_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#615_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#616_20">Column</A>));
+ <FONT COLOR=red><A NAME="ref_789_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_786_16">Move</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_612_20">Fld</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_613_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_614_20">Column</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#788_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#788_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_789_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_789_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#614_14">Move</A><A HREF="terminal_interface-curses-forms__ads.htm#614_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_612_14">Move</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_new.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#625_13">Create</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> : <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_802_13" HREF="terminal_interface-curses-forms__ads.htm#ref_623_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_802_21" HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="803_16">NewForm</A></FONT> (<FONT COLOR=red><A NAME="803_25">Fields</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#803_16">NewForm</A>, "new_form");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">NewForm</A></FONT> (<FONT COLOR=red><A NAME="ref_804_25">Fields</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">NewForm</A>, "new_form");
- <FONT COLOR=red><A NAME="806_7">M</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_807_7">M</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A>'Last) = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A>'Last) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#806_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#803_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#625_21">Fields</A>'First)'Address);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#806_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_804_16">NewForm</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_623_21">Fields</A>'First)'Address);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Form</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#806_7">M</A>;
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_807_7">M</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#625_13">Create</A><A HREF="terminal_interface-curses-forms__ads.htm#625_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_623_13">Create</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#636_14">Delete</A><FONT COLOR=red><A NAME="822_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#636_22">Frm</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_823_14" HREF="terminal_interface-curses-forms__ads.htm#ref_634_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_823_22" HREF="terminal_interface-curses-forms__ads.htm#ref_634_22">Frm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="824_16">Free</A></FONT> (<FONT COLOR=red><A NAME="824_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#824_16">Free</A>, "free_form");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_825_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_825_22">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Free</A>, "free_form");
- <FONT COLOR=red><A NAME="827_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#824_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#636_22">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_828_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_825_16">Free</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_634_22">Frm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#827_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#827_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_828_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_828_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__ads.htm#636_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#636_14">Delete</A><A HREF="terminal_interface-curses-forms__ads.htm#636_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_634_22">Frm</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Form</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_634_14">Delete</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_opts.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#646_14">Set_Options</A><FONT COLOR=red><A NAME="841_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#646_27">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#647_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_842_14" HREF="terminal_interface-curses-forms__ads.htm#ref_644_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_842_27" HREF="terminal_interface-curses-forms__ads.htm#ref_644_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_843_27" HREF="terminal_interface-curses-forms__ads.htm#ref_645_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="844_16">Set_Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="844_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="845_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#844_16">Set_Form_Opts</A>, "set_form_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">Set_Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_845_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_846_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Set_Form_Opts</A>, "set_form_opts");
- <FONT COLOR=red><A NAME="848_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#72_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#647_27">Options</A>);
- <FONT COLOR=red><A NAME="849_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_849_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_73_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_645_27">Options</A>);
+ <FONT COLOR=red><A NAME="ref_850_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#849_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#844_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#646_27">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#848_7">Opt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#849_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#849_7">Res</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_845_16">Set_Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_644_27">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_849_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_850_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#646_14">Set_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#646_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_644_14">Set_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#652_14">Switch_Options</A><FONT COLOR=red><A NAME="859_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#652_30">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#653_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#654_30">On</A> : Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses-forms__ads.htm#ref_650_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_860_30" HREF="terminal_interface-curses-forms__ads.htm#ref_650_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_861_30" HREF="terminal_interface-curses-forms__ads.htm#ref_651_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_862_30" HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">On</A></FONT> : Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="863_16">Form_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="863_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="864_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#863_16">Form_Opts_On</A>, "form_opts_on");
- <b>function</b> <FONT COLOR=red><A NAME="866_16">Form_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="866_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <FONT COLOR=red><A NAME="867_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#866_16">Form_Opts_Off</A>, "form_opts_off");
-
- <FONT COLOR=red><A NAME="870_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <FONT COLOR=red><A NAME="871_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#72_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#653_30">Options</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">Form_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_864_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_865_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Form_Opts_On</A>, "form_opts_on");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_867_16">Form_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_867_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_868_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Form_Opts_Off</A>, "form_opts_off");
+
+ <FONT COLOR=red><A NAME="ref_871_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_872_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_73_13">FrmOS_2_CInt</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_651_30">Options</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#654_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#870_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#863_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#871_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_652_30">On</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_864_16">Form_Opts_On</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_650_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#870_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#866_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#652_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#871_7">Opt</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_867_16">Form_Opts_Off</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_650_30">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_872_7">Opt</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#870_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#870_7">Err</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_871_7">Err</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#652_14">Switch_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#652_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_650_14">Switch_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#660_14">Get_Options</A><FONT COLOR=red><A NAME="885_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#660_27">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#661_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_886_14" HREF="terminal_interface-curses-forms__ads.htm#ref_658_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_886_27" HREF="terminal_interface-curses-forms__ads.htm#ref_658_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_887_27" HREF="terminal_interface-curses-forms__ads.htm#ref_659_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="888_16">Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="888_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#888_16">Form_Opts</A>, "form_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_889_16">Form_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_889_27">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Form_Opts</A>, "form_opts");
- <FONT COLOR=red><A NAME="891_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#888_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#660_27">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_892_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_889_16">Form_Opts</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_658_27">Frm</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#661_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#76_13">CInt_2_FrmOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#891_7">Res</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#660_14">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#660_14">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_659_27">Options</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_77_13">CInt_2_FrmOS</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_892_7">Res</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_658_14">Get_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#665_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#665_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_899_13" HREF="terminal_interface-curses-forms__ads.htm#ref_663_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_899_26" HREF="terminal_interface-curses-forms__ads.htm#ref_663_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>
<b>is</b>
- <FONT COLOR=red><A NAME="900_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_901_7">Fos</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#660_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#665_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#900_7">Fos</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#900_7">Fos</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#665_13">Get_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#665_13">;</A>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_658_14">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_663_26">Frm</A>, <A HREF="terminal_interface-curses-forms__adb.htm#ref_901_7">Fos</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_901_7">Fos</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_663_13">Get_Options</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_post.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#674_14">Post</A><FONT COLOR=red><A NAME="912_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#674_20">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#675_20">Post</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_913_14" HREF="terminal_interface-curses-forms__ads.htm#ref_672_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_913_20" HREF="terminal_interface-curses-forms__ads.htm#ref_672_20">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_914_20" HREF="terminal_interface-curses-forms__ads.htm#ref_673_20">Post</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="915_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="915_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#915_16">M_Post</A>, "post_form");
- <b>function</b> <FONT COLOR=red><A NAME="917_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="917_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#917_16">M_Unpost</A>, "unpost_form");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_916_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_916_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">M_Post</A>, "post_form");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_918_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="ref_918_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">M_Unpost</A>, "unpost_form");
- <FONT COLOR=red><A NAME="920_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_921_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#675_20">Post</A> <b>then</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#915_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#674_20">Frm</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_673_20">Post</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_916_16">M_Post</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_672_20">Frm</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#917_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#674_20">Frm</A>);
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_918_16">M_Unpost</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_672_20">Frm</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#920_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_921_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#674_14">Post</A><A HREF="terminal_interface-curses-forms__ads.htm#674_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_672_14">Post</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_cursor.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#685_14">Position_Cursor</A><FONT COLOR=red><A NAME="938_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#685_31">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_939_14" HREF="terminal_interface-curses-forms__ads.htm#ref_683_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_939_31" HREF="terminal_interface-curses-forms__ads.htm#ref_683_31">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="940_16">Pos_Form_Cursor</A></FONT> (<FONT COLOR=red><A NAME="940_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#940_16">Pos_Form_Cursor</A>, "pos_form_cursor");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_941_16">Pos_Form_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_941_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Pos_Form_Cursor</A>, "pos_form_cursor");
- <FONT COLOR=red><A NAME="943_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#940_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#685_31">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_944_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_941_16">Pos_Form_Cursor</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_683_31">Frm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#943_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#943_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_944_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_944_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#685_14">Position_Cursor</A><A HREF="terminal_interface-curses-forms__ads.htm#685_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_683_14">Position_Cursor</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_data.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#694_13">Data_Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#694_25">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_957_13" HREF="terminal_interface-curses-forms__ads.htm#ref_692_13">Data_Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_957_25" HREF="terminal_interface-curses-forms__ads.htm#ref_692_25">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="958_16">Ahead</A></FONT> (<FONT COLOR=red><A NAME="958_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#958_16">Ahead</A>, "data_ahead");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_959_16">Ahead</A></FONT> (<FONT COLOR=red><A NAME="ref_959_23">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Ahead</A>, "data_ahead");
- <FONT COLOR=red><A NAME="961_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#958_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#694_25">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_962_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_959_16">Ahead</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_692_25">Frm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#961_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_962_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#694_13">Data_Ahead</A><A HREF="terminal_interface-curses-forms__ads.htm#694_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_692_13">Data_Ahead</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#699_13">Data_Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#699_26">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_973_13" HREF="terminal_interface-curses-forms__ads.htm#ref_697_13">Data_Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_973_26" HREF="terminal_interface-curses-forms__ads.htm#ref_697_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="974_16">Behind</A></FONT> (<FONT COLOR=red><A NAME="974_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#974_16">Behind</A>, "data_behind");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_975_16">Behind</A></FONT> (<FONT COLOR=red><A NAME="ref_975_24">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Behind</A>, "data_behind");
- <FONT COLOR=red><A NAME="977_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#974_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#699_26">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_978_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_975_16">Behind</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_697_26">Frm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#977_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_978_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#699_13">Data_Behind</A><A HREF="terminal_interface-curses-forms__ads.htm#699_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_697_13">Data_Behind</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_driver.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#713_13">Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#713_21">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#714_21">Key</A> : <A HREF="terminal_interface-curses__ads.htm#67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#707_9">Driver_Result</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_993_13" HREF="terminal_interface-curses-forms__ads.htm#ref_711_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_993_21" HREF="terminal_interface-curses-forms__ads.htm#ref_711_21">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_994_21" HREF="terminal_interface-curses-forms__ads.htm#ref_712_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_705_9">Driver_Result</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="995_16">Frm_Driver</A></FONT> (<FONT COLOR=red><A NAME="995_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="995_40">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#995_16">Frm_Driver</A>, "form_driver");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_996_16">Frm_Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_996_28">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_996_40">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm_Driver</A>, "form_driver");
- <FONT COLOR=red><A NAME="998_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#995_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#713_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#714_21">Key</A>));
+ <FONT COLOR=red><A NAME="ref_999_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_996_16">Frm_Driver</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_711_21">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_712_21">Key</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#88_4">E_Unknown_Command</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#709_27">Unknown_Request</A>;
- <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#93_4">E_Invalid_Field</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#710_27">Invalid_Field</A>;
- <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#92_4">E_Request_Denied</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#708_27">Request_Denied</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_707_27">Unknown_Request</A>;
+ <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_93_4">E_Invalid_Field</A> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_708_27">Invalid_Field</A>;
+ <b>elsif</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_706_27">Request_Denied</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#998_7">R</A>);
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#707_27">Form_Ok</A>;
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_999_7">R</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_705_27">Form_Ok</A>;
<b>end</b> <b>if</b>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#707_27">Form_Ok</A>;
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_705_27">Form_Ok</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#713_13">Driver</A><A HREF="terminal_interface-curses-forms__ads.htm#713_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_711_13">Driver</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | man page form_page.3x</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#725_14">Set_Current</A><FONT COLOR=red><A NAME="1022_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#725_27">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#726_27">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1023_14" HREF="terminal_interface-curses-forms__ads.htm#ref_723_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1023_27" HREF="terminal_interface-curses-forms__ads.htm#ref_723_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_1024_27" HREF="terminal_interface-curses-forms__ads.htm#ref_724_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1025_16">Set_Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="1025_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="1025_45">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1025_16">Set_Current_Fld</A>, "set_current_field");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1026_16">Set_Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1026_33">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_1026_45">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Set_Current_Fld</A>, "set_current_field");
- <FONT COLOR=red><A NAME="1028_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1025_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#725_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#726_27">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_1029_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1026_16">Set_Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_723_27">Frm</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_724_27">Fld</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1028_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1028_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1029_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1029_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#725_14">Set_Current</A><A HREF="terminal_interface-curses-forms__ads.htm#725_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_723_14">Set_Current</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#731_13">Current</A> (<A HREF="terminal_interface-curses-forms__ads.htm#731_22">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1038_13" HREF="terminal_interface-curses-forms__ads.htm#ref_729_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_1038_22" HREF="terminal_interface-curses-forms__ads.htm#ref_729_22">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1039_16">Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="1039_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1039_16">Current_Fld</A>, "current_field");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1040_16">Current_Fld</A></FONT> (<FONT COLOR=red><A NAME="ref_1040_29">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Current_Fld</A>, "current_field");
- <FONT COLOR=red><A NAME="1042_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1039_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#731_22">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_1043_7">Fld</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1040_16">Current_Fld</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_729_22">Frm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1042_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1043_7">Fld</A> = <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#1042_7">Fld</A>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#731_13">Current</A><A HREF="terminal_interface-curses-forms__ads.htm#731_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1043_7">Fld</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_729_13">Current</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#736_14">Set_Page</A><FONT COLOR=red><A NAME="1052_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#736_24">Frm</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#737_24">Page</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses-forms__ads.htm#ref_734_14">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1053_24" HREF="terminal_interface-curses-forms__ads.htm#ref_734_24">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_1054_24" HREF="terminal_interface-curses-forms__ads.htm#ref_735_24">Page</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1055_16">Set_Frm_Page</A></FONT> (<FONT COLOR=red><A NAME="1055_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>; <FONT COLOR=red><A NAME="1055_42">Pg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1055_16">Set_Frm_Page</A>, "set_form_page");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1056_16">Set_Frm_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1056_30">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>; <FONT COLOR=red><A NAME="ref_1056_42">Pg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Set_Frm_Page</A>, "set_form_page");
- <FONT COLOR=red><A NAME="1058_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1055_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#736_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#737_24">Page</A>));
+ <FONT COLOR=red><A NAME="ref_1059_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1056_16">Set_Frm_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_734_24">Frm</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_735_24">Page</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1058_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1058_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1059_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1059_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#736_14">Set_Page</A><A HREF="terminal_interface-curses-forms__ads.htm#736_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_734_14">Set_Page</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#742_13">Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#742_19">Frm</A> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1068_13" HREF="terminal_interface-curses-forms__ads.htm#ref_740_13">Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1068_19" HREF="terminal_interface-curses-forms__ads.htm#ref_740_19">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1069_16">Get_Page</A></FONT> (<FONT COLOR=red><A NAME="1069_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1069_16">Get_Page</A>, "form_page");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1070_16">Get_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1070_26">Frm</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Form</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Get_Page</A>, "form_page");
- <FONT COLOR=red><A NAME="1072_7">P</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1069_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#742_19">Frm</A>);
+ <FONT COLOR=red><A NAME="ref_1073_7">P</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1070_16">Get_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_740_19">Frm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1072_7">P</A> < 0 <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A> < 0 <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1072_7">P</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Page_Number</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1073_7">P</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#742_13">Page</A><A HREF="terminal_interface-curses-forms__ads.htm#742_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_740_13">Page</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#747_13">Get_Index</A> (<A HREF="terminal_interface-curses-forms__ads.htm#747_24">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> Positive
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1082_13" HREF="terminal_interface-curses-forms__ads.htm#ref_745_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_1082_24" HREF="terminal_interface-curses-forms__ads.htm#ref_745_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> Positive
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1083_16">Get_Fieldindex</A></FONT> (<FONT COLOR=red><A NAME="1083_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1083_16">Get_Fieldindex</A>, "field_index");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1084_16">Get_Fieldindex</A></FONT> (<FONT COLOR=red><A NAME="ref_1084_32">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Get_Fieldindex</A>, "field_index");
- <FONT COLOR=red><A NAME="1086_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1083_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#747_24">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_1087_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1084_16">Get_Fieldindex</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_745_24">Fld</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1086_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#288_4">Form_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1087_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_286_4">Form_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#1086_7">Res</A>) + Positive'First);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#747_13">Get_Index</A><A HREF="terminal_interface-curses-forms__ads.htm#747_13">;</A>
+ <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1087_7">Res</A>) + Positive'First);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_745_13">Get_Index</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#759_14">Set_New_Page</A><FONT COLOR=red><A NAME="1101_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#759_28">Fld</A> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#760_28">New_Page</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1102_14" HREF="terminal_interface-curses-forms__ads.htm#ref_757_14">Set_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1102_28" HREF="terminal_interface-curses-forms__ads.htm#ref_757_28">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_1103_28" HREF="terminal_interface-curses-forms__ads.htm#ref_758_28">New_Page</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1104_16">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="1104_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>; <FONT COLOR=red><A NAME="1104_39">Flg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1104_16">Set_Page</A>, "set_new_page");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1105_16">Set_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1105_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>; <FONT COLOR=red><A NAME="ref_1105_39">Flg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Set_Page</A>, "set_new_page");
- <FONT COLOR=red><A NAME="1107_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1104_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#759_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#760_28">New_Page</A>));
+ <FONT COLOR=red><A NAME="ref_1108_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1105_16">Set_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_757_28">Fld</A>, Boolean'Pos (<A HREF="terminal_interface-curses-forms__ads.htm#ref_758_28">New_Page</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1107_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1107_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1108_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1108_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#759_14">Set_New_Page</A><A HREF="terminal_interface-curses-forms__ads.htm#759_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_757_14">Set_New_Page</A>;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#765_13">Is_New_Page</A> (<A HREF="terminal_interface-curses-forms__ads.htm#765_26">Fld</A> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1117_13" HREF="terminal_interface-curses-forms__ads.htm#ref_763_13">Is_New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_1117_26" HREF="terminal_interface-curses-forms__ads.htm#ref_763_26">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1118_16">Is_New</A></FONT> (<FONT COLOR=red><A NAME="1118_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#1118_16">Is_New</A>, "new_page");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1119_16">Is_New</A></FONT> (<FONT COLOR=red><A NAME="ref_1119_24">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Field</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Is_New</A>, "new_page");
- <FONT COLOR=red><A NAME="1121_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#1118_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#765_26">Fld</A>);
+ <FONT COLOR=red><A NAME="ref_1122_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-forms__adb.htm#ref_1119_16">Is_New</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_763_26">Fld</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#1121_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms__adb.htm#ref_1122_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#765_13">Is_New_Page</A><A HREF="terminal_interface-curses-forms__ads.htm#765_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_763_13">Is_New_Page</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_14">Free</A><FONT COLOR=red><A NAME="1130_14"></A></FONT> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>;
- <A HREF="terminal_interface-curses-forms__ads.htm#138_20">Free_Fields</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1131_14" HREF="terminal_interface-curses-forms__ads.htm#ref_135_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_1131_20" HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>;
+ <FONT COLOR=red><A NAME="ref_1132_20" HREF="terminal_interface-curses-forms__ads.htm#ref_136_20">Free_Fields</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="1133_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (<A HREF="terminal_interface-curses-forms__ads.htm#132_9">Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Field_Array_Access</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1134_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+ (<A HREF="terminal_interface-curses-forms__ads.htm#ref_130_9">Field_Array</A>, <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Field_Array_Access</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#138_20">Free_Fields</A> <b>then</b>
- <b>for</b> <FONT COLOR=red><A NAME="1137_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>'Last - 1) <b>loop</b>
- <b>if</b> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1137_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>) <b>then</b>
- <A HREF="terminal_interface-curses-forms__ads.htm#317_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#1137_14">I</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_136_20">Free_Fields</A> <b>then</b>
+ <b>for</b> <FONT COLOR=red><A NAME="ref_1138_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A>'First .. (<A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A>'Last - 1) <b>loop</b>
+ <b>if</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>) /= <A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A> <b>then</b>
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_315_14">Delete</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A> (<A HREF="terminal_interface-curses-forms__adb.htm#ref_1138_14">I</A>));
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-forms__adb.htm#1133_17">Release</A> (<A HREF="terminal_interface-curses-forms__ads.htm#137_20">FA</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#137_14">Free</A><A HREF="terminal_interface-curses-forms__ads.htm#137_14">;</A>
+ <A HREF="terminal_interface-curses-forms__adb.htm#ref_1134_17">Release</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_135_20">FA</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_135_14">Free</A>;
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#102_13">Default_Field_Options</A> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1149_13" HREF="terminal_interface-curses-forms__ads.htm#ref_101_13">Default_Field_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field_Option_Set</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#418_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#58_4">Null_Field</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#102_13">Default_Field_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#102_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_416_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_58_4">Null_Field</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_101_13">Default_Field_Options</A>;
- <b>function</b> <A HREF="terminal_interface-curses-forms__ads.htm#126_13">Default_Form_Options</A> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1155_13" HREF="terminal_interface-curses-forms__ads.htm#ref_124_13">Default_Form_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form_Option_Set</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#665_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Form</A>);
- <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#126_13">Default_Form_Options</A><A HREF="terminal_interface-curses-forms__ads.htm#126_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_663_13">Get_Options</A> (<A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Form</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_124_13">Default_Form_Options</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#48_35">Forms</A><A HREF="terminal_interface-curses-forms__ads.htm#48_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-forms__ads.htm#ref_48_35">Forms</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-forms.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-forms.ads </H1></DIV><HR>
Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
- <b>type</b> <FONT COLOR=red><A NAME="56_9">Field</A></FONT> <b>is</b> <b>private</b>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Field</A></FONT> <b>is</b> <b>private</b>;
<b>type</b> Form <b>is</b> <b>private</b>;
- <FONT COLOR=red><A NAME="59_4">Null_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_59_4">Null_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A>;
Null_Form : <b>constant</b> Form;
- <b>type</b> Field_Justification <b>is</b> (<FONT COLOR=red><A NAME="62_33">None</A></FONT>,
- <FONT COLOR=red><A NAME="63_33">Left</A></FONT>,
- <FONT COLOR=red><A NAME="64_33">Center</A></FONT>,
+ <b>type</b> Field_Justification <b>is</b> (<FONT COLOR=red><A NAME="ref_62_33">None</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_63_33">Left</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_64_33">Center</A></FONT>,
Right);
<b>pragma</b> Warnings (Off);
<b>type</b> Field_Option_Set <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="70_10">Visible</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="71_10">Active</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="72_10">Public</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="73_10">Edit</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="74_10">Wrap</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="75_10">Blank</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="76_10">Auto_Skip</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="77_10">Null_Ok</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="78_10">Pass_Ok</A></FONT> : Boolean;
- Static <A HREF="terminal_interface-curses-forms__ads.htm#67_9"> </A> : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#67_9">;</A>
- <b>pragma</b> Pack (Field_Option_Set);
+ <FONT COLOR=red><A NAME="ref_70_10">Visible</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_71_10">Active</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_72_10">Public</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_73_10">Edit</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_74_10">Wrap</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_75_10">Blank</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_76_10">Auto_Skip</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_77_10">Null_Ok</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_78_10">Pass_Ok</A></FONT> : Boolean;
+ Static : Boolean;
+ <b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Field_Option_Set);
<b>for</b> Field_Option_Set <b>use</b>
<b>pragma</b> Warnings (Off);
<b>type</b> Form_Option_Set <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="110_10">NL_Overload</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_109_10">NL_Overload</A></FONT> : Boolean;
BS_Overload : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-forms__ads.htm#107_9">;</A>
- <b>pragma</b> Pack (Form_Option_Set);
+ <b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Form_Option_Set);
<b>for</b> Form_Option_Set <b>use</b>
<b>type</b> Field_Array_Access <b>is</b> <b>access</b> Field_Array;
- <b>procedure</b> Free (<FONT COLOR=red><A NAME="138_20">FA</A></FONT> : <b>in</b> <b>out</b> Field_Array_Access;
+ <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_136_20" HREF="terminal_interface-curses-forms__adb.htm#ref_1132_20">FA</A></FONT> : <b>in</b> <b>out</b> Field_Array_Access;
Free_Fields : <b>in</b> Boolean := False);
<FONT COLOR=green><EM>-- Release the memory for an allocated field array</EM></FONT>
<FONT COLOR=green><EM>-- If Free_Fields is True, call Delete() for all the fields in</EM></FONT>
<b>subtype</b> Form_Request_Code <b>is</b> Key_Code <b>range</b> (Key_Max + 1) .. (Key_Max + 57);
<FONT COLOR=green><EM>-- The prefix F_ stands for "Form Request"</EM></FONT>
- <FONT COLOR=red><A NAME="147_4">F_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 1;
- <FONT COLOR=red><A NAME="148_4">F_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 2;
- <FONT COLOR=red><A NAME="149_4">F_First_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 3;
+ <FONT COLOR=red><A NAME="ref_145_4">F_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+ <FONT COLOR=red><A NAME="ref_146_4">F_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+ <FONT COLOR=red><A NAME="ref_147_4">F_First_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
F_Last_Page : <b>constant</b> Form_Request_Code := Key_Max + 4;
- <FONT COLOR=red><A NAME="152_4">F_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 5;
- <FONT COLOR=red><A NAME="153_4">F_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 6;
- <FONT COLOR=red><A NAME="154_4">F_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 7;
- <FONT COLOR=red><A NAME="155_4">F_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 8;
- <FONT COLOR=red><A NAME="156_4">F_Sorted_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 9;
- <FONT COLOR=red><A NAME="157_4">F_Sorted_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 10;
- <FONT COLOR=red><A NAME="158_4">F_Sorted_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 11;
- <FONT COLOR=red><A NAME="159_4">F_Sorted_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 12;
- <FONT COLOR=red><A NAME="160_4">F_Left_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 13;
- <FONT COLOR=red><A NAME="161_4">F_Right_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 14;
- <FONT COLOR=red><A NAME="162_4">F_Up_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 15;
+ <FONT COLOR=red><A NAME="ref_150_4">F_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+ <FONT COLOR=red><A NAME="ref_151_4">F_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+ <FONT COLOR=red><A NAME="ref_152_4">F_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+ <FONT COLOR=red><A NAME="ref_153_4">F_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+ <FONT COLOR=red><A NAME="ref_154_4">F_Sorted_Next_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+ <FONT COLOR=red><A NAME="ref_155_4">F_Sorted_Previous_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+ <FONT COLOR=red><A NAME="ref_156_4">F_Sorted_First_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+ <FONT COLOR=red><A NAME="ref_157_4">F_Sorted_Last_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+ <FONT COLOR=red><A NAME="ref_158_4">F_Left_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+ <FONT COLOR=red><A NAME="ref_159_4">F_Right_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+ <FONT COLOR=red><A NAME="ref_160_4">F_Up_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
F_Down_Field : <b>constant</b> Form_Request_Code := Key_Max + 16;
- <FONT COLOR=red><A NAME="165_4">F_Next_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 17;
- <FONT COLOR=red><A NAME="166_4">F_Previous_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 18;
- <FONT COLOR=red><A NAME="167_4">F_Next_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 19;
- <FONT COLOR=red><A NAME="168_4">F_Previous_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 20;
- <FONT COLOR=red><A NAME="169_4">F_Next_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 21;
- <FONT COLOR=red><A NAME="170_4">F_Previous_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 22;
- <FONT COLOR=red><A NAME="171_4">F_Begin_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 23;
- <FONT COLOR=red><A NAME="172_4">F_End_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 24;
- <FONT COLOR=red><A NAME="173_4">F_Begin_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 25;
- <FONT COLOR=red><A NAME="174_4">F_End_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 26;
- <FONT COLOR=red><A NAME="175_4">F_Left_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 27;
- <FONT COLOR=red><A NAME="176_4">F_Right_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 28;
- <FONT COLOR=red><A NAME="177_4">F_Up_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 29;
+ <FONT COLOR=red><A NAME="ref_163_4">F_Next_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 17;
+ <FONT COLOR=red><A NAME="ref_164_4">F_Previous_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 18;
+ <FONT COLOR=red><A NAME="ref_165_4">F_Next_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 19;
+ <FONT COLOR=red><A NAME="ref_166_4">F_Previous_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 20;
+ <FONT COLOR=red><A NAME="ref_167_4">F_Next_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 21;
+ <FONT COLOR=red><A NAME="ref_168_4">F_Previous_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 22;
+ <FONT COLOR=red><A NAME="ref_169_4">F_Begin_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 23;
+ <FONT COLOR=red><A NAME="ref_170_4">F_End_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 24;
+ <FONT COLOR=red><A NAME="ref_171_4">F_Begin_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 25;
+ <FONT COLOR=red><A NAME="ref_172_4">F_End_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 26;
+ <FONT COLOR=red><A NAME="ref_173_4">F_Left_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 27;
+ <FONT COLOR=red><A NAME="ref_174_4">F_Right_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 28;
+ <FONT COLOR=red><A NAME="ref_175_4">F_Up_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 29;
F_Down_Char : <b>constant</b> Form_Request_Code := Key_Max + 30;
- <FONT COLOR=red><A NAME="180_4">F_New_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 31;
- <FONT COLOR=red><A NAME="181_4">F_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 32;
- <FONT COLOR=red><A NAME="182_4">F_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 33;
- <FONT COLOR=red><A NAME="183_4">F_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 34;
- <FONT COLOR=red><A NAME="184_4">F_Delete_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 35;
- <FONT COLOR=red><A NAME="185_4">F_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 36;
- <FONT COLOR=red><A NAME="186_4">F_Delete_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 37;
- <FONT COLOR=red><A NAME="187_4">F_Clear_EOL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 38;
- <FONT COLOR=red><A NAME="188_4">F_Clear_EOF</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 39;
- <FONT COLOR=red><A NAME="189_4">F_Clear_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 40;
- <FONT COLOR=red><A NAME="190_4">F_Overlay_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 41;
+ <FONT COLOR=red><A NAME="ref_178_4">F_New_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 31;
+ <FONT COLOR=red><A NAME="ref_179_4">F_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 32;
+ <FONT COLOR=red><A NAME="ref_180_4">F_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 33;
+ <FONT COLOR=red><A NAME="ref_181_4">F_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 34;
+ <FONT COLOR=red><A NAME="ref_182_4">F_Delete_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 35;
+ <FONT COLOR=red><A NAME="ref_183_4">F_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 36;
+ <FONT COLOR=red><A NAME="ref_184_4">F_Delete_Word</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 37;
+ <FONT COLOR=red><A NAME="ref_185_4">F_Clear_EOL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 38;
+ <FONT COLOR=red><A NAME="ref_186_4">F_Clear_EOF</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 39;
+ <FONT COLOR=red><A NAME="ref_187_4">F_Clear_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 40;
+ <FONT COLOR=red><A NAME="ref_188_4">F_Overlay_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 41;
F_Insert_Mode : <b>constant</b> Form_Request_Code := Key_Max + 42;
<FONT COLOR=green><EM>-- Vertical Scrolling</EM></FONT>
- <FONT COLOR=red><A NAME="194_4">F_ScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 43;
- <FONT COLOR=red><A NAME="195_4">F_ScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 44;
- <FONT COLOR=red><A NAME="196_4">F_ScrollForward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 45;
- <FONT COLOR=red><A NAME="197_4">F_ScrollBackward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 46;
- <FONT COLOR=red><A NAME="198_4">F_ScrollForward_HalfPage</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 47;
+ <FONT COLOR=red><A NAME="ref_192_4">F_ScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 43;
+ <FONT COLOR=red><A NAME="ref_193_4">F_ScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 44;
+ <FONT COLOR=red><A NAME="ref_194_4">F_ScrollForward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 45;
+ <FONT COLOR=red><A NAME="ref_195_4">F_ScrollBackward_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 46;
+ <FONT COLOR=red><A NAME="ref_196_4">F_ScrollForward_HalfPage</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 47;
F_ScrollBackward_HalfPage : <b>constant</b> Form_Request_Code := Key_Max + 48;
<FONT COLOR=green><EM>-- Horizontal Scrolling</EM></FONT>
- <FONT COLOR=red><A NAME="202_4">F_HScrollForward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 49;
- <FONT COLOR=red><A NAME="203_4">F_HScrollBackward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 50;
- <FONT COLOR=red><A NAME="204_4">F_HScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 51;
- <FONT COLOR=red><A NAME="205_4">F_HScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 52;
- <FONT COLOR=red><A NAME="206_4">F_HScrollForward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 53;
+ <FONT COLOR=red><A NAME="ref_200_4">F_HScrollForward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 49;
+ <FONT COLOR=red><A NAME="ref_201_4">F_HScrollBackward_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 50;
+ <FONT COLOR=red><A NAME="ref_202_4">F_HScrollForward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 51;
+ <FONT COLOR=red><A NAME="ref_203_4">F_HScrollBackward_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 52;
+ <FONT COLOR=red><A NAME="ref_204_4">F_HScrollForward_HalfLine</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 53;
F_HScrollBackward_HalfLine : <b>constant</b> Form_Request_Code := Key_Max + 54;
- <FONT COLOR=red><A NAME="209_4">F_Validate_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 55;
- <FONT COLOR=red><A NAME="210_4">F_Next_Choice</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 56;
+ <FONT COLOR=red><A NAME="ref_207_4">F_Validate_Field</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 55;
+ <FONT COLOR=red><A NAME="ref_208_4">F_Next_Choice</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 56;
F_Previous_Choice : <b>constant</b> Form_Request_Code := Key_Max + 57;
<FONT COLOR=green><EM>-- For those who like the old 'C' style request names</EM></FONT>
- <FONT COLOR=red><A NAME="214_4">REQ_NEXT_PAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#147_4">F_Next_Page</A>;
- <FONT COLOR=red><A NAME="215_4">REQ_PREV_PAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#148_4">F_Previous_Page</A>;
- <FONT COLOR=red><A NAME="216_4">REQ_FIRST_PAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#149_4">F_First_Page</A>;
+ REQ_NEXT_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_145_4">F_Next_Page</A>;
+ REQ_PREV_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_146_4">F_Previous_Page</A>;
+ REQ_FIRST_PAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_147_4">F_First_Page</A>;
REQ_LAST_PAGE : Form_Request_Code <b>renames</b> F_Last_Page;
- <FONT COLOR=red><A NAME="219_4">REQ_NEXT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#152_4">F_Next_Field</A>;
- <FONT COLOR=red><A NAME="220_4">REQ_PREV_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#153_4">F_Previous_Field</A>;
- <FONT COLOR=red><A NAME="221_4">REQ_FIRST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#154_4">F_First_Field</A>;
- <FONT COLOR=red><A NAME="222_4">REQ_LAST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#155_4">F_Last_Field</A>;
- <FONT COLOR=red><A NAME="223_4">REQ_SNEXT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#156_4">F_Sorted_Next_Field</A>;
- <FONT COLOR=red><A NAME="224_4">REQ_SPREV_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#157_4">F_Sorted_Previous_Field</A>;
- <FONT COLOR=red><A NAME="225_4">REQ_SFIRST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#158_4">F_Sorted_First_Field</A>;
- <FONT COLOR=red><A NAME="226_4">REQ_SLAST_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#159_4">F_Sorted_Last_Field</A>;
- <FONT COLOR=red><A NAME="227_4">REQ_LEFT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#160_4">F_Left_Field</A>;
- <FONT COLOR=red><A NAME="228_4">REQ_RIGHT_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#161_4">F_Right_Field</A>;
- <FONT COLOR=red><A NAME="229_4">REQ_UP_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#162_4">F_Up_Field</A>;
+ REQ_NEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_150_4">F_Next_Field</A>;
+ REQ_PREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_151_4">F_Previous_Field</A>;
+ REQ_FIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_152_4">F_First_Field</A>;
+ REQ_LAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_153_4">F_Last_Field</A>;
+ REQ_SNEXT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_154_4">F_Sorted_Next_Field</A>;
+ REQ_SPREV_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_155_4">F_Sorted_Previous_Field</A>;
+ REQ_SFIRST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_156_4">F_Sorted_First_Field</A>;
+ REQ_SLAST_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_157_4">F_Sorted_Last_Field</A>;
+ REQ_LEFT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_158_4">F_Left_Field</A>;
+ REQ_RIGHT_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_159_4">F_Right_Field</A>;
+ REQ_UP_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_160_4">F_Up_Field</A>;
REQ_DOWN_FIELD : Form_Request_Code <b>renames</b> F_Down_Field;
- <FONT COLOR=red><A NAME="232_4">REQ_NEXT_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#165_4">F_Next_Char</A>;
- <FONT COLOR=red><A NAME="233_4">REQ_PREV_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#166_4">F_Previous_Char</A>;
- <FONT COLOR=red><A NAME="234_4">REQ_NEXT_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#167_4">F_Next_Line</A>;
- <FONT COLOR=red><A NAME="235_4">REQ_PREV_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#168_4">F_Previous_Line</A>;
- <FONT COLOR=red><A NAME="236_4">REQ_NEXT_WORD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#169_4">F_Next_Word</A>;
- <FONT COLOR=red><A NAME="237_4">REQ_PREV_WORD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#170_4">F_Previous_Word</A>;
- <FONT COLOR=red><A NAME="238_4">REQ_BEG_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#171_4">F_Begin_Field</A>;
- <FONT COLOR=red><A NAME="239_4">REQ_END_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#172_4">F_End_Field</A>;
- <FONT COLOR=red><A NAME="240_4">REQ_BEG_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#173_4">F_Begin_Line</A>;
- <FONT COLOR=red><A NAME="241_4">REQ_END_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#174_4">F_End_Line</A>;
- <FONT COLOR=red><A NAME="242_4">REQ_LEFT_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#175_4">F_Left_Char</A>;
- <FONT COLOR=red><A NAME="243_4">REQ_RIGHT_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#176_4">F_Right_Char</A>;
- <FONT COLOR=red><A NAME="244_4">REQ_UP_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#177_4">F_Up_Char</A>;
+ REQ_NEXT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_163_4">F_Next_Char</A>;
+ REQ_PREV_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_164_4">F_Previous_Char</A>;
+ REQ_NEXT_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_165_4">F_Next_Line</A>;
+ REQ_PREV_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_166_4">F_Previous_Line</A>;
+ REQ_NEXT_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_167_4">F_Next_Word</A>;
+ REQ_PREV_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_168_4">F_Previous_Word</A>;
+ REQ_BEG_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_169_4">F_Begin_Field</A>;
+ REQ_END_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_170_4">F_End_Field</A>;
+ REQ_BEG_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_171_4">F_Begin_Line</A>;
+ REQ_END_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_172_4">F_End_Line</A>;
+ REQ_LEFT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_173_4">F_Left_Char</A>;
+ REQ_RIGHT_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_174_4">F_Right_Char</A>;
+ REQ_UP_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_175_4">F_Up_Char</A>;
REQ_DOWN_CHAR : Form_Request_Code <b>renames</b> F_Down_Char;
- <FONT COLOR=red><A NAME="247_4">REQ_NEW_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#180_4">F_New_Line</A>;
- <FONT COLOR=red><A NAME="248_4">REQ_INS_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#181_4">F_Insert_Char</A>;
- <FONT COLOR=red><A NAME="249_4">REQ_INS_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#182_4">F_Insert_Line</A>;
- <FONT COLOR=red><A NAME="250_4">REQ_DEL_CHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#183_4">F_Delete_Char</A>;
- <FONT COLOR=red><A NAME="251_4">REQ_DEL_PREV</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#184_4">F_Delete_Previous</A>;
- <FONT COLOR=red><A NAME="252_4">REQ_DEL_LINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#185_4">F_Delete_Line</A>;
- <FONT COLOR=red><A NAME="253_4">REQ_DEL_WORD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#186_4">F_Delete_Word</A>;
- <FONT COLOR=red><A NAME="254_4">REQ_CLR_EOL</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#187_4">F_Clear_EOL</A>;
- <FONT COLOR=red><A NAME="255_4">REQ_CLR_EOF</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#188_4">F_Clear_EOF</A>;
- <FONT COLOR=red><A NAME="256_4">REQ_CLR_FIELD</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#189_4">F_Clear_Field</A>;
- <FONT COLOR=red><A NAME="257_4">REQ_OVL_MODE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#190_4">F_Overlay_Mode</A>;
+ REQ_NEW_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_178_4">F_New_Line</A>;
+ REQ_INS_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_179_4">F_Insert_Char</A>;
+ REQ_INS_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_180_4">F_Insert_Line</A>;
+ REQ_DEL_CHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_181_4">F_Delete_Char</A>;
+ REQ_DEL_PREV : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_182_4">F_Delete_Previous</A>;
+ REQ_DEL_LINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_183_4">F_Delete_Line</A>;
+ REQ_DEL_WORD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_184_4">F_Delete_Word</A>;
+ REQ_CLR_EOL : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_185_4">F_Clear_EOL</A>;
+ REQ_CLR_EOF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_186_4">F_Clear_EOF</A>;
+ REQ_CLR_FIELD : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_187_4">F_Clear_Field</A>;
+ REQ_OVL_MODE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_188_4">F_Overlay_Mode</A>;
REQ_INS_MODE : Form_Request_Code <b>renames</b> F_Insert_Mode;
- <FONT COLOR=red><A NAME="260_4">REQ_SCR_FLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#194_4">F_ScrollForward_Line</A>;
- <FONT COLOR=red><A NAME="261_4">REQ_SCR_BLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#195_4">F_ScrollBackward_Line</A>;
- <FONT COLOR=red><A NAME="262_4">REQ_SCR_FPAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#196_4">F_ScrollForward_Page</A>;
- <FONT COLOR=red><A NAME="263_4">REQ_SCR_BPAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#197_4">F_ScrollBackward_Page</A>;
- <FONT COLOR=red><A NAME="264_4">REQ_SCR_FHPAGE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#198_4">F_ScrollForward_HalfPage</A>;
+ REQ_SCR_FLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_192_4">F_ScrollForward_Line</A>;
+ REQ_SCR_BLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_193_4">F_ScrollBackward_Line</A>;
+ REQ_SCR_FPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_194_4">F_ScrollForward_Page</A>;
+ REQ_SCR_BPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_195_4">F_ScrollBackward_Page</A>;
+ REQ_SCR_FHPAGE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_196_4">F_ScrollForward_HalfPage</A>;
REQ_SCR_BHPAGE : Form_Request_Code <b>renames</b> F_ScrollBackward_HalfPage;
- <FONT COLOR=red><A NAME="267_4">REQ_SCR_FCHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#202_4">F_HScrollForward_Char</A>;
- <FONT COLOR=red><A NAME="268_4">REQ_SCR_BCHAR</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#203_4">F_HScrollBackward_Char</A>;
- <FONT COLOR=red><A NAME="269_4">REQ_SCR_HFLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#204_4">F_HScrollForward_Line</A>;
- <FONT COLOR=red><A NAME="270_4">REQ_SCR_HBLINE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#205_4">F_HScrollBackward_Line</A>;
- <FONT COLOR=red><A NAME="271_4">REQ_SCR_HFHALF</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#206_4">F_HScrollForward_HalfLine</A>;
+ REQ_SCR_FCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_200_4">F_HScrollForward_Char</A>;
+ REQ_SCR_BCHAR : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_201_4">F_HScrollBackward_Char</A>;
+ REQ_SCR_HFLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_202_4">F_HScrollForward_Line</A>;
+ REQ_SCR_HBLINE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_203_4">F_HScrollBackward_Line</A>;
+ REQ_SCR_HFHALF : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_204_4">F_HScrollForward_HalfLine</A>;
REQ_SCR_HBHALF : Form_Request_Code <b>renames</b> F_HScrollBackward_HalfLine;
- <FONT COLOR=red><A NAME="274_4">REQ_VALIDATION</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#209_4">F_Validate_Field</A>;
- <FONT COLOR=red><A NAME="275_4">REQ_NEXT_CHOICE</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#143_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#210_4">F_Next_Choice</A>;
+ REQ_VALIDATION : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_207_4">F_Validate_Field</A>;
+ REQ_NEXT_CHOICE : <A HREF="terminal_interface-curses-forms__ads.htm#ref_141_12">Form_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_208_4">F_Next_Choice</A>;
REQ_PREV_CHOICE : Form_Request_Code <b>renames</b> F_Previous_Choice;
- <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="279_28">Key</A></FONT> : <b>in</b> Form_Request_Code;
+ <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_277_28" HREF="terminal_interface-curses-forms__adb.htm#ref_82_33">Key</A></FONT> : <b>in</b> Form_Request_Code;
Name : <b>out</b> String);
<b>function</b> Request_Name (Key : Form_Request_Code) <b>return</b> String;
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> Create (<FONT COLOR=red><A NAME="296_21">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="297_21">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="298_21">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="299_21">Left</A></FONT> : Column_Position;
- <FONT COLOR=red><A NAME="300_21">Off_Screen</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Natural</A> := 0;
+ <b>function</b> Create (<FONT COLOR=red><A NAME="ref_294_21" HREF="terminal_interface-curses-forms__adb.htm#ref_109_21">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_295_21" HREF="terminal_interface-curses-forms__adb.htm#ref_110_21">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_296_21" HREF="terminal_interface-curses-forms__adb.htm#ref_111_21">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_297_21" HREF="terminal_interface-curses-forms__adb.htm#ref_112_21">Left</A></FONT> : Column_Position;
+ <FONT COLOR=red><A NAME="ref_298_21" HREF="terminal_interface-curses-forms__adb.htm#ref_113_21">Off_Screen</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Natural</A> := 0;
More_Buffers : Buffer_Number := Buffer_Number'First)
<b>return</b> Field;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
<FONT COLOR=green><EM>-- An overloaded Create is defined later. Pragma Inline appears there.</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> New_Field (<FONT COLOR=red><A NAME="307_24">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="308_24">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="309_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="310_24">Left</A></FONT> : Column_Position;
- <FONT COLOR=red><A NAME="311_24">Off_Screen</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Natural</A> := 0;
+ <b>function</b> New_Field (<FONT COLOR=red><A NAME="ref_305_24">Height</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_306_24">Width</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_307_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_308_24">Left</A></FONT> : Column_Position;
+ <FONT COLOR=red><A NAME="ref_309_24">Off_Screen</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Natural</A> := 0;
More_Buffers : Buffer_Number := Buffer_Number'First)
<b>return</b> Field <b>renames</b> Create;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">new_field()</A></EM></FONT>
<FONT COLOR=green><EM>-- An overloaded Delete is defined later. Pragma Inline appears there.</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>function</b> Duplicate (<FONT COLOR=red><A NAME="324_24">Fld</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Field</A>;
- <FONT COLOR=red><A NAME="325_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>function</b> Duplicate (<FONT COLOR=red><A NAME="ref_322_24" HREF="terminal_interface-curses-forms__adb.htm#ref_148_24">Fld</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_323_24" HREF="terminal_interface-curses-forms__adb.htm#ref_149_24">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Left : Column_Position) <b>return</b> Field;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">dup_field()</A></EM></FONT>
<b>pragma</b> Inline (Duplicate);
<FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
- <b>function</b> Link (<FONT COLOR=red><A NAME="331_19">Fld</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Field</A>;
- <FONT COLOR=red><A NAME="332_19">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>function</b> Link (<FONT COLOR=red><A NAME="ref_329_19" HREF="terminal_interface-curses-forms__adb.htm#ref_169_19">Fld</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_330_19" HREF="terminal_interface-curses-forms__adb.htm#ref_170_19">Top</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Left : Column_Position) <b>return</b> Field;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_new.3x.html">link_field()</A></EM></FONT>
<b>pragma</b> Inline (Link);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>procedure</b> Set_Justification (<FONT COLOR=red><A NAME="342_33">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#61_9">Field</A>;
+ <b>procedure</b> Set_Justification (<FONT COLOR=red><A NAME="ref_340_33" HREF="terminal_interface-curses-forms__adb.htm#ref_194_33">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_61_9">Field</A>;
Just : <b>in</b> Field_Justification := None);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_just.3x.html">set_field_just()</A></EM></FONT>
<b>pragma</b> Inline (Set_Justification);
<FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
<b>procedure</b> Set_Buffer
- (<FONT COLOR=red><A NAME="358_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Field</A>;
- <FONT COLOR=red><A NAME="359_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
+ (<FONT COLOR=red><A NAME="ref_356_7" HREF="terminal_interface-curses-forms__adb.htm#ref_227_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_357_7" HREF="terminal_interface-curses-forms__adb.htm#ref_228_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
Str : <b>in</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_buffer()</A></EM></FONT>
<FONT COLOR=green><EM>-- Not inlined</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
<b>procedure</b> Get_Buffer
- (<FONT COLOR=red><A NAME="366_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Field</A>;
- <FONT COLOR=red><A NAME="367_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
+ (<FONT COLOR=red><A NAME="ref_364_7" HREF="terminal_interface-curses-forms__adb.htm#ref_252_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_365_7" HREF="terminal_interface-curses-forms__adb.htm#ref_253_7">Buffer</A></FONT> : <b>in</b> Buffer_Number := Buffer_Number'First;
Str : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
<b>function</b> Get_Buffer
- (<FONT COLOR=red><A NAME="372_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Field</A>;
+ (<FONT COLOR=red><A NAME="ref_370_7" HREF="terminal_interface-curses-forms__adb.htm#ref_264_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Field</A>;
Buffer : <b>in</b> Buffer_Number := Buffer_Number'First) <b>return</b> String;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">field_buffer()</A></EM></FONT>
<FONT COLOR=green><EM>-- Same but as function</EM></FONT>
<b>pragma</b> Inline (Get_Buffer);
<FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
- <b>procedure</b> Set_Status (<FONT COLOR=red><A NAME="379_26">Fld</A></FONT> : <b>in</b> Field;
+ <b>procedure</b> Set_Status (<FONT COLOR=red><A NAME="ref_377_26" HREF="terminal_interface-curses-forms__adb.htm#ref_276_26">Fld</A></FONT> : <b>in</b> Field;
Status : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_status()</A></EM></FONT>
<b>pragma</b> Inline (Set_Status);
<b>pragma</b> Inline (Changed);
<FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
- <b>procedure</b> Set_Maximum_Size (<FONT COLOR=red><A NAME="390_32">Fld</A></FONT> : <b>in</b> Field;
+ <b>procedure</b> Set_Maximum_Size (<FONT COLOR=red><A NAME="ref_388_32" HREF="terminal_interface-curses-forms__adb.htm#ref_308_32">Fld</A></FONT> : <b>in</b> Field;
Max : <b>in</b> Natural := 0);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_buffer.3x.html">set_field_max()</A></EM></FONT>
<b>pragma</b> Inline (Set_Maximum_Size);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="400_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field</A>;
+ <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_398_27" HREF="terminal_interface-curses-forms__adb.htm#ref_328_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field</A>;
Options : <b>in</b> Field_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">set_field_opts()</A></EM></FONT>
<FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_14"#2|</EM></FONT>
- <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="406_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field</A>;
- <FONT COLOR=red><A NAME="407_30">Options</A></FONT> : <b>in</b> Field_Option_Set;
+ <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_404_30" HREF="terminal_interface-curses-forms__adb.htm#ref_346_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_405_30" HREF="terminal_interface-curses-forms__adb.htm#ref_347_30">Options</A></FONT> : <b>in</b> Field_Option_Set;
On : Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts_on()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: field_opts_off()</EM></FONT>
<FONT COLOR=green><EM>-- An overloaded version is defined later. Pragma Inline appears there</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
- <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="414_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#67_9">Field</A>;
+ <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_412_27" HREF="terminal_interface-curses-forms__adb.htm#ref_372_27">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_67_9">Field</A>;
Options : <b>out</b> Field_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_opts.3x.html">field_opts()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_17"#2|</EM></FONT>
<b>procedure</b> Set_Foreground
- (<FONT COLOR=red><A NAME="430_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
- <FONT COLOR=red><A NAME="431_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_428_7" HREF="terminal_interface-curses-forms__adb.htm#ref_401_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_429_7" HREF="terminal_interface-curses-forms__adb.htm#ref_402_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_fore()</A></EM></FONT>
<b>pragma</b> Inline (Set_Foreground);
<FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
- <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="437_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
+ <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_435_26" HREF="terminal_interface-curses-forms__adb.htm#ref_422_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
Fore : <b>out</b> Character_Attribute_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
- <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="442_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
- <FONT COLOR=red><A NAME="443_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+ <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_440_26" HREF="terminal_interface-curses-forms__adb.htm#ref_431_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_441_26" HREF="terminal_interface-curses-forms__adb.htm#ref_432_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
Color : <b>out</b> Color_Pair);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_fore()</A></EM></FONT>
<b>pragma</b> Inline (Foreground);
<FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT>
<b>procedure</b> Set_Background
- (<FONT COLOR=red><A NAME="450_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
- <FONT COLOR=red><A NAME="451_7">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses-forms__adb.htm#ref_445_7">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_449_7" HREF="terminal_interface-curses-forms__adb.htm#ref_446_7">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_back()</A></EM></FONT>
<b>pragma</b> Inline (Set_Background);
<FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT>
- <b>procedure</b> Background (<FONT COLOR=red><A NAME="457_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
+ <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_455_26" HREF="terminal_interface-curses-forms__adb.htm#ref_466_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
Back : <b>out</b> Character_Attribute_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT>
- <b>procedure</b> Background (<FONT COLOR=red><A NAME="462_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Field</A>;
- <FONT COLOR=red><A NAME="463_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+ <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_460_26" HREF="terminal_interface-curses-forms__adb.htm#ref_475_26">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_461_26" HREF="terminal_interface-curses-forms__adb.htm#ref_476_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
Color : <b>out</b> Color_Pair);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_back()</A></EM></FONT>
<b>pragma</b> Inline (Background);
<FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
- <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="469_33">Fld</A></FONT> : <b>in</b> Field;
+ <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_467_33" HREF="terminal_interface-curses-forms__adb.htm#ref_488_33">Fld</A></FONT> : <b>in</b> Field;
Pad : <b>in</b> Character := Space);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">set_field_pad()</A></EM></FONT>
<b>pragma</b> Inline (Set_Pad_Character);
<FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT>
- <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="475_29">Fld</A></FONT> : <b>in</b> Field;
+ <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_473_29" HREF="terminal_interface-curses-forms__adb.htm#ref_505_29">Fld</A></FONT> : <b>in</b> Field;
Pad : <b>out</b> Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_attributes.3x.html">field_pad()</A></EM></FONT>
<b>pragma</b> Inline (Pad_Character);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
- <b>procedure</b> Info (<FONT COLOR=red><A NAME="485_20">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Field</A>;
- <FONT COLOR=red><A NAME="486_20">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="487_20">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="488_20">First_Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="489_20">First_Column</A></FONT> : <b>out</b> Column_Position;
- <FONT COLOR=red><A NAME="490_20">Off_Screen</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#130_9">Natural</A>;
+ <b>procedure</b> Info (<FONT COLOR=red><A NAME="ref_483_20" HREF="terminal_interface-curses-forms__adb.htm#ref_520_20">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Field</A>;
+ <FONT COLOR=red><A NAME="ref_484_20" HREF="terminal_interface-curses-forms__adb.htm#ref_521_20">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_485_20" HREF="terminal_interface-curses-forms__adb.htm#ref_522_20">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_486_20" HREF="terminal_interface-curses-forms__adb.htm#ref_523_20">First_Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_487_20" HREF="terminal_interface-curses-forms__adb.htm#ref_524_20">First_Column</A></FONT> : <b>out</b> Column_Position;
+ <FONT COLOR=red><A NAME="ref_488_20" HREF="terminal_interface-curses-forms__adb.htm#ref_525_20">Off_Screen</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_128_9">Natural</A>;
Additional_Buffers : <b>out</b> Buffer_Number);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">field_info()</A></EM></FONT>
<b>pragma</b> Inline (Info);
<FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT>
- <b>procedure</b> Dynamic_Info (<FONT COLOR=red><A NAME="496_28">Fld</A></FONT> : <b>in</b> Field;
- <FONT COLOR=red><A NAME="497_28">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="498_28">Columns</A></FONT> : <b>out</b> Column_Count;
+ <b>procedure</b> Dynamic_Info (<FONT COLOR=red><A NAME="ref_494_28" HREF="terminal_interface-curses-forms__adb.htm#ref_554_28">Fld</A></FONT> : <b>in</b> Field;
+ <FONT COLOR=red><A NAME="ref_495_28" HREF="terminal_interface-curses-forms__adb.htm#ref_555_28">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_496_28" HREF="terminal_interface-curses-forms__adb.htm#ref_556_28">Columns</A></FONT> : <b>out</b> Column_Count;
Max : <b>out</b> Natural);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field_info.3x.html">dynamic_field_info()</A></EM></FONT>
<b>pragma</b> Inline (Dynamic_Info);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
- <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="508_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Form</A>;
+ <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_506_26" HREF="terminal_interface-curses-forms__adb.htm#ref_583_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
Win : <b>in</b> Window);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_win()</A></EM></FONT>
<b>pragma</b> Inline (Set_Window);
<b>pragma</b> Inline (Get_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
- <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="519_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Form</A>;
+ <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_517_30" HREF="terminal_interface-curses-forms__adb.htm#ref_611_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Form</A>;
Win : <b>in</b> Window);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">set_form_sub()</A></EM></FONT>
<b>pragma</b> Inline (Set_Sub_Window);
<b>pragma</b> Inline (Get_Sub_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
- <b>procedure</b> Scale (<FONT COLOR=red><A NAME="530_21">Frm</A></FONT> : <b>in</b> Form;
- <FONT COLOR=red><A NAME="531_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+ <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_528_21" HREF="terminal_interface-curses-forms__adb.htm#ref_639_21">Frm</A></FONT> : <b>in</b> Form;
+ <FONT COLOR=red><A NAME="ref_529_21" HREF="terminal_interface-curses-forms__adb.htm#ref_640_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
Columns : <b>out</b> Column_Count);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_win.3x.html">scale_form()</A></EM></FONT>
<b>pragma</b> Inline (Scale);
<b>pragma</b> Convention (C, Form_Hook_Function);
<FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT>
- <b>procedure</b> Set_Field_Init_Hook (<FONT COLOR=red><A NAME="544_35">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+ <b>procedure</b> Set_Field_Init_Hook (<FONT COLOR=red><A NAME="ref_542_35" HREF="terminal_interface-curses-forms__adb.htm#ref_663_35">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
Proc : <b>in</b> Form_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_init()</A></EM></FONT>
<b>pragma</b> Inline (Set_Field_Init_Hook);
<FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT>
- <b>procedure</b> Set_Field_Term_Hook (<FONT COLOR=red><A NAME="550_35">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+ <b>procedure</b> Set_Field_Term_Hook (<FONT COLOR=red><A NAME="ref_548_35" HREF="terminal_interface-curses-forms__adb.htm#ref_679_35">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
Proc : <b>in</b> Form_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_field_term()</A></EM></FONT>
<b>pragma</b> Inline (Set_Field_Term_Hook);
<FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT>
- <b>procedure</b> Set_Form_Init_Hook (<FONT COLOR=red><A NAME="556_34">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+ <b>procedure</b> Set_Form_Init_Hook (<FONT COLOR=red><A NAME="ref_554_34" HREF="terminal_interface-curses-forms__adb.htm#ref_695_34">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
Proc : <b>in</b> Form_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_init()</A></EM></FONT>
<b>pragma</b> Inline (Set_Form_Init_Hook);
<FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT>
- <b>procedure</b> Set_Form_Term_Hook (<FONT COLOR=red><A NAME="562_34">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#539_9">Form</A>;
+ <b>procedure</b> Set_Form_Term_Hook (<FONT COLOR=red><A NAME="ref_560_34" HREF="terminal_interface-curses-forms__adb.htm#ref_711_34">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_537_9">Form</A>;
Proc : <b>in</b> Form_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_hook.3x.html">set_form_term()</A></EM></FONT>
<b>pragma</b> Inline (Set_Form_Term_Hook);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT>
- <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="592_24">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Form</A>;
+ <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_590_24" HREF="terminal_interface-curses-forms__adb.htm#ref_731_24">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Form</A>;
Flds : <b>in</b> Field_Array_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
<b>pragma</b> Inline (Redefine);
<FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT>
- <b>procedure</b> Set_Fields (<FONT COLOR=red><A NAME="598_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#135_9">Form</A>;
+ <b>procedure</b> Set_Fields (<FONT COLOR=red><A NAME="ref_596_26">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_133_9">Form</A>;
Flds : <b>in</b> Field_Array_Access) <b>renames</b> Redefine;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">set_form_fields()</A></EM></FONT>
<b>pragma</b> Inline (Set_Fields);
<FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT>
- <b>function</b> Fields (<FONT COLOR=red><A NAME="604_21">Frm</A></FONT> : Form;
+ <b>function</b> Fields (<FONT COLOR=red><A NAME="ref_602_21" HREF="terminal_interface-curses-forms__adb.htm#ref_753_21">Frm</A></FONT> : Form;
Index : Positive) <b>return</b> Field;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">form_fields()</A></EM></FONT>
<b>pragma</b> Inline (Fields);
<b>pragma</b> Inline (Field_Count);
<FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
- <b>procedure</b> Move (<FONT COLOR=red><A NAME="615_20">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Field</A>;
- <FONT COLOR=red><A NAME="616_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_613_20" HREF="terminal_interface-curses-forms__adb.htm#ref_783_20">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Field</A>;
+ <FONT COLOR=red><A NAME="ref_614_20" HREF="terminal_interface-curses-forms__adb.htm#ref_784_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_field.3x.html">move_field()</A></EM></FONT>
<b>pragma</b> Inline (Move);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
- <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="647_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form</A>;
+ <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_645_27" HREF="terminal_interface-curses-forms__adb.htm#ref_843_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form</A>;
Options : <b>in</b> Form_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">set_form_opts()</A></EM></FONT>
<b>pragma</b> Inline (Set_Options);
<FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT>
- <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="653_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form</A>;
- <FONT COLOR=red><A NAME="654_30">Options</A></FONT> : <b>in</b> Form_Option_Set;
+ <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_651_30" HREF="terminal_interface-curses-forms__adb.htm#ref_861_30">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form</A>;
+ <FONT COLOR=red><A NAME="ref_652_30" HREF="terminal_interface-curses-forms__adb.htm#ref_862_30">Options</A></FONT> : <b>in</b> Form_Option_Set;
On : Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts_on()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: form_opts_off()</EM></FONT>
<b>pragma</b> Inline (Switch_Options);
<FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT>
- <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="661_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#107_9">Form</A>;
+ <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_659_27" HREF="terminal_interface-curses-forms__adb.htm#ref_887_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_106_9">Form</A>;
Options : <b>out</b> Form_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_opts.3x.html">form_opts()</A></EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_52"#2|</EM></FONT>
- <b>procedure</b> Post (<FONT COLOR=red><A NAME="675_20">Frm</A></FONT> : <b>in</b> Form;
+ <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_673_20" HREF="terminal_interface-curses-forms__adb.htm#ref_914_20">Frm</A></FONT> : <b>in</b> Form;
Post : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_post.3x.html">post_form()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: unpost_form()</EM></FONT>
<FONT COLOR=green><EM>-- | Man page <A HREF="../man/form_driver.3x.html">form_driver.3x</A></EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="708_27">Form_Ok</A></FONT>,
- <FONT COLOR=red><A NAME="709_27">Request_Denied</A></FONT>,
- <FONT COLOR=red><A NAME="710_27">Unknown_Request</A></FONT>,
+ <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_706_27">Form_Ok</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_707_27">Request_Denied</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_708_27">Unknown_Request</A></FONT>,
Invalid_Field);
<FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
- <b>function</b> Driver (<FONT COLOR=red><A NAME="714_21">Frm</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#67_9">Form</A>;
+ <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_712_21" HREF="terminal_interface-curses-forms__adb.htm#ref_994_21">Frm</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Form</A>;
Key : Key_Code) <b>return</b> Driver_Result;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_driver.3x.html">form_driver()</A></EM></FONT>
<FONT COLOR=green><EM>-- Driver not inlined</EM></FONT>
<b>type</b> Page_Number <b>is</b> <b>new</b> Natural;
<FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
- <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="726_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#55_9">Form</A>;
+ <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_724_27" HREF="terminal_interface-curses-forms__adb.htm#ref_1024_27">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_55_9">Form</A>;
Fld : <b>in</b> Field);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_current_field()</A></EM></FONT>
<b>pragma</b> Inline (Set_Current);
<b>pragma</b> Inline (Current);
<FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT>
- <b>procedure</b> Set_Page (<FONT COLOR=red><A NAME="737_24">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#722_9">Form</A>;
+ <b>procedure</b> Set_Page (<FONT COLOR=red><A NAME="ref_735_24" HREF="terminal_interface-curses-forms__adb.htm#ref_1054_24">Frm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_720_9">Form</A>;
Page : <b>in</b> Page_Number := Page_Number'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_page.3x.html">set_form_page()</A></EM></FONT>
<b>pragma</b> Inline (Set_Page);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_62"#2|</EM></FONT>
- <b>procedure</b> Set_New_Page (<FONT COLOR=red><A NAME="760_28">Fld</A></FONT> : <b>in</b> Field;
+ <b>procedure</b> Set_New_Page (<FONT COLOR=red><A NAME="ref_758_28" HREF="terminal_interface-curses-forms__adb.htm#ref_1103_28">Fld</A></FONT> : <b>in</b> Field;
New_Page : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_new_page.3x.html">set_new_page()</A></EM></FONT>
<b>pragma</b> Inline (Set_New_Page);
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <b>type</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
<b>type</b> Form <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <A HREF="terminal_interface-curses-forms__ads.htm#59_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#56_9">Field</A> := 0;
+ <A HREF="terminal_interface-curses-forms__ads.htm#ref_59_4">Null_Field</A> : <b>constant</b> <A HREF="terminal_interface-curses-forms__ads.htm#ref_56_9">Field</A> := 0;
Null_Form : <b>constant</b> Form := 0;
<b>end</b> Terminal_Interface.Curses.Forms;
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_41">Item_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">Menus</A>.<FONT COLOR=red><A NAME="ref_44_46" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_41">Item_User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_14">Set_User_Data</A><FONT COLOR=red><A NAME="48_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_29">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#58_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_57_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_57_29">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_49_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="51_16">Set_Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="51_34">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <FONT COLOR=red><A NAME="52_34">Addr</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#51_16">Set_Item_Userptr</A>, "set_item_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Set_Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_51_34">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_52_34">Addr</A></FONT> : <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Set_Item_Userptr</A>, "set_item_userptr");
- <FONT COLOR=red><A NAME="55_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#51_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#58_29">Data</A>);
+ <FONT COLOR=red><A NAME="ref_55_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_51_16">Set_Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_57_29">Itm</A>, <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_58_29">Data</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#55_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_55_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_14">Set_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#57_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_57_14">Set_User_Data</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_28">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_62_28" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_28">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="64_16">Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="64_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#64_16">Item_Userptr</A>, "item_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_64_16">Item_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_64_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Item_Userptr</A>, "item_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#64_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_28">Itm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_64_16">Item_Userptr</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_28">Itm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_13">Get_User_Data</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_14">Get_User_Data</A><FONT COLOR=red><A NAME="70_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_29">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_70_14" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_63_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_63_29">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_71_29" HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#64_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#68_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_29">Itm</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_14">Get_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#63_14">;</A>
+ <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_64_29">Data</A> := <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_68_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_63_29">Itm</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_63_14">Get_User_Data</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_41">Item_User_Data</A><A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_45_41">Item_User_Data</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-menus-item_user_data.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-item_user_data.ads </H1></DIV><HR>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#48_35">;</A>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">;</A>
<b>package</b> Terminal_Interface.Curses.Menus.Item_User_Data <b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Item_User_Data);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="58_29">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">Item</A>;
+ <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_58_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_49_29">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">Item</A>;
Data : <b>in</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">set_item_userptr</A></EM></FONT>
<b>pragma</b> Inline (Set_User_Data);
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="64_29">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#44_9">Item</A>;
+ <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_64_29" HREF="terminal_interface-curses-menus-item_user_data__adb.htm#ref_71_29">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-item_user_data__ads.htm#ref_44_9">Item</A>;
Data : <b>out</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_userptr.3x.html">item_userptr</A></EM></FONT>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_41">Menu_User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">Menus</A>.<FONT COLOR=red><A NAME="ref_43_46" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="47_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_29">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_47_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_48_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="50_16">Set_Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="50_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="51_34">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#50_16">Set_Menu_Userptr</A>, "set_menu_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_50_16">Set_Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_50_34">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_51_34">Data</A></FONT> : <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Set_Menu_Userptr</A>, "set_menu_userptr");
- <FONT COLOR=red><A NAME="54_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#50_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#54_29">Data</A>);
+ <FONT COLOR=red><A NAME="ref_54_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_50_16">Set_Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_29">Men</A>, <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_54_29">Data</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#54_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#54_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_54_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#53_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_53_14">Set_User_Data</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_28">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_61_13" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_61_28" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="63_16">Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="63_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#63_16">Menu_Userptr</A>, "menu_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_63_16">Menu_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_63_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Menu_Userptr</A>, "menu_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#63_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_28">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_63_16">Menu_Userptr</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_28">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="69_14"></A></FONT> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_29">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_69_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_70_29" HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_29">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#59_14">;</A>
+ <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_29">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_59_14">Get_User_Data</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_41">Menu_User_Data</A><A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#45_41">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">Menus</A>.<A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_45_41">Menu_User_Data</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-menus-menu_user_data.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus-menu_user_data.ads </H1></DIV><HR>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#48_35">;</A>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> User<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">;</A>
<b>package</b> Terminal_Interface.Curses.Menus.Menu_User_Data <b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">Menu</A>;
+ <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_48_29">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
Data : <b>in</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">set_menu_userptr</A></EM></FONT>
<b>pragma</b> Inline (Set_User_Data);
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#44_9">Menu</A>;
+ <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-menus-menu_user_data__adb.htm#ref_70_29">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus-menu_user_data__ads.htm#ref_44_9">Menu</A>;
Data : <b>out</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_userptr.3x.html">menu_userptr</A></EM></FONT>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-menus.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.22 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.25 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Unchecked_Deallocation;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers;
<b>with</b> Ada.Unchecked_Conversion;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_51_40" HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">Menus</A></FONT> <b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="52_9">C_Item_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <b>package</b> <FONT COLOR=red><A NAME="53_12">I_Array</A></FONT> <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>, <A HREF="terminal_interface-curses-menus__adb.htm#52_9">C_Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">C_Item_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_54_12">I_Array</A></FONT> <b>is</b> <b>new</b>
+ <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_53_9">C_Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
<b>use</b> <b>type</b> System.Bit_Order;
- <b>subtype</b> <FONT COLOR=red><A NAME="57_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.chars_ptr;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_58_12">chars_ptr</A></FONT> <b>is</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings.chars_ptr;
- <b>function</b> <FONT COLOR=red><A NAME="59_13">MOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_60_13">MOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
- <b>function</b> <FONT COLOR=red><A NAME="63_13">CInt_2_MOS</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
- <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_64_13">CInt_2_MOS</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>);
- <b>function</b> <FONT COLOR=red><A NAME="67_13">IOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_68_13">IOS_2_CInt</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
- <b>function</b> <FONT COLOR=red><A NAME="71_13">CInt_2_IOS</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>,
- <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_72_13">CInt_2_IOS</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>,
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>);
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#105_14">Request_Name</A><FONT COLOR=red><A NAME="76_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#105_28">Key</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#106_28">Name</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_77_14" HREF="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_77_28" HREF="terminal_interface-curses-menus__ads.htm#ref_105_28">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A>;
+ <FONT COLOR=red><A NAME="ref_78_28" HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Name</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="79_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="79_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#79_16">Request_Name</A>, "menu_request_name");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_80_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_80_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Request_Name</A>, "menu_request_name");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#79_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#105_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#106_28">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#105_14">Request_Name</A><A HREF="terminal_interface-curses-menus__ads.htm#105_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_80_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_105_28">Key</A>)), <A HREF="terminal_interface-curses-menus__ads.htm#ref_106_28">Name</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_105_14">Request_Name</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#108_14">Request_Name</A> (<A HREF="terminal_interface-curses-menus__ads.htm#108_28">Key</A> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_86_13" HREF="terminal_interface-curses-menus__ads.htm#ref_108_14">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_86_27" HREF="terminal_interface-curses-menus__ads.htm#ref_108_28">Key</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="87_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="87_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#87_16">Request_Name</A>, "menu_request_name");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_88_16">Request_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_88_30">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Request_Name</A>, "menu_request_name");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#87_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#108_28">Key</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#108_14">Request_Name</A><A HREF="terminal_interface-curses-menus__ads.htm#108_14">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_88_16">Request_Name</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_108_28">Key</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_108_14">Request_Name</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#192_13">Create</A> (<A HREF="terminal_interface-curses-menus__ads.htm#192_21">Name</A> : String;
- <A HREF="terminal_interface-curses-menus__ads.htm#193_21">Description</A> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_94_13" HREF="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_94_21" HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_95_21" HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</A></FONT> : String := "") <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="96_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
- <b>function</b> <FONT COLOR=red><A NAME="97_16">Newitem</A></FONT> (<FONT COLOR=red><A NAME="97_25">Name</A></FONT>, <FONT COLOR=red><A NAME="97_31">Desc</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#96_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#97_16">Newitem</A>, "new_item");
+ <b>type</b> <FONT COLOR=red><A NAME="ref_97_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_98_16">Newitem</A></FONT> (<FONT COLOR=red><A NAME="ref_98_25">Name</A></FONT>, <FONT COLOR=red><A NAME="ref_98_31">Desc</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_97_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Newitem</A>, "new_item");
- <b>type</b> Name_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#192_21">Name</A>'Length);
- <b>type</b> <FONT COLOR=red><A NAME="101_12">Name_String_Ptr</A></FONT> <b>is</b> <b>access</b> Name_String;
- <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#101_12">Name_String_Ptr</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_101_12">Name_String</A></FONT> <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</A>'Length);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_102_12">Name_String_Ptr</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_101_12">Name_String</A>;
+ <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_102_12">Name_String_Ptr</A>);
- <b>type</b> Desc_String <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#193_21">Description</A>'Length);
- <b>type</b> <FONT COLOR=red><A NAME="105_12">Desc_String_Ptr</A></FONT> <b>is</b> <b>access</b> Desc_String;
- <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#105_12">Desc_String_Ptr</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_105_12">Desc_String</A></FONT> <b>is</b> <b>new</b> char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</A>'Length);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_106_12">Desc_String_Ptr</A></FONT> <b>is</b> <b>access</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_105_12">Desc_String</A>;
+ <b>pragma</b> Controlled (<A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A>);
- <FONT COLOR=red><A NAME="108_7">Name_Str</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#101_12">Name_String_Ptr</A> := <b>new</b> Name_String;
- <FONT COLOR=red><A NAME="109_7">Desc_Str</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#105_12">Desc_String_Ptr</A> := <b>new</b> Desc_String;
- <FONT COLOR=red><A NAME="110_7">Name_Len</A></FONT>, <FONT COLOR=red><A NAME="110_17">Desc_Len</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="111_7">Result</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_109_7">Name_Str</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_102_12">Name_String_Ptr</A> := <b>new</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_101_12">Name_String</A>;
+ <FONT COLOR=red><A NAME="ref_110_7">Desc_Str</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_106_12">Desc_String_Ptr</A> := <b>new</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_105_12">Desc_String</A>;
+ <FONT COLOR=red><A NAME="ref_111_7">Name_Len</A></FONT>, <FONT COLOR=red><A NAME="ref_111_17">Desc_Len</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_112_7">Result</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#192_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#108_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#110_7">Name_Len</A>);
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#193_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#109_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#110_17">Desc_Len</A>);
- <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#97_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#108_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#108_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#109_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#109_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#388_4">Eti_System_Error</A>;
+ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_190_21">Name</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_7">Name_Len</A>);
+ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_191_21">Description</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_111_17">Desc_Len</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_98_16">Newitem</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_109_7">Name_Str</A>.<b>all</b>'First)'<b>Access</b>,
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_110_7">Desc_Str</A>.<b>all</b>'First)'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_389_4">Eti_System_Error</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#111_7">Result</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#192_13">Create</A><A HREF="terminal_interface-curses-menus__ads.htm#192_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_112_7">Result</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_13">Create</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#204_14">Delete</A><FONT COLOR=red><A NAME="123_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_124_14" HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_124_22" HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="125_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="125_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#125_16">Descname</A>, "item_description");
- <b>function</b> <FONT COLOR=red><A NAME="127_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="127_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#127_16">Itemname</A>, "item_name");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_126_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_126_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A>, "item_description");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_128_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_128_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A>, "item_name");
- <b>function</b> <FONT COLOR=red><A NAME="130_16">Freeitem</A></FONT> (<FONT COLOR=red><A NAME="130_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#130_16">Freeitem</A>, "free_item");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_131_16">Freeitem</A></FONT> (<FONT COLOR=red><A NAME="ref_131_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A>, "free_item");
- <FONT COLOR=red><A NAME="133_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <FONT COLOR=red><A NAME="134_7">Ptr</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
+ <FONT COLOR=red><A NAME="ref_134_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_135_7">Ptr</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#125_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A> /= Null_Ptr <b>then</b>
- <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_126_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b>
+ <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#127_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A> /= Null_Ptr <b>then</b>
- <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#134_7">Ptr</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_128_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A> /= Null_Ptr <b>then</b>
+ <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings.Free (<A HREF="terminal_interface-curses-menus__adb.htm#ref_135_7">Ptr</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__adb.htm#133_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#130_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#133_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#133_7">Res</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_131_16">Freeitem</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_134_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__ads.htm#204_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#204_14">Delete</A><A HREF="terminal_interface-curses-menus__ads.htm#204_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_22">Itm</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#213_14">Set_Value</A><FONT COLOR=red><A NAME="151_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#213_25">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#214_25">Value</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_152_14" HREF="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</A></FONT> (<FONT COLOR=red><A NAME="ref_152_25" HREF="terminal_interface-curses-menus__ads.htm#ref_211_25">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_153_25" HREF="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="154_16">Set_Item_Val</A></FONT> (<FONT COLOR=red><A NAME="154_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <FONT COLOR=red><A NAME="155_30">Val</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#154_16">Set_Item_Val</A>, "set_item_value");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_155_16">Set_Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_155_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_156_30">Val</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Set_Item_Val</A>, "set_item_value");
- <FONT COLOR=red><A NAME="158_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#154_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#213_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#214_25">Value</A>));
+ <FONT COLOR=red><A NAME="ref_159_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_155_16">Set_Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_211_25">Itm</A>, Boolean'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_212_25">Value</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#158_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#158_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_159_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_159_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#213_14">Set_Value</A><A HREF="terminal_interface-curses-menus__ads.htm#213_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_211_14">Set_Value</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#219_13">Value</A> (<A HREF="terminal_interface-curses-menus__ads.htm#219_20">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_166_13" HREF="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</A></FONT> (<FONT COLOR=red><A NAME="ref_166_20" HREF="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="167_16">Item_Val</A></FONT> (<FONT COLOR=red><A NAME="167_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#167_16">Item_Val</A>, "item_value");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_168_16">Item_Val</A></FONT> (<FONT COLOR=red><A NAME="ref_168_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Item_Val</A>, "item_value");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#167_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#219_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_168_16">Item_Val</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_217_20">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#219_13">Value</A><A HREF="terminal_interface-curses-menus__ads.htm#219_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_217_13">Value</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#228_13">Visible</A> (<A HREF="terminal_interface-curses-menus__ads.htm#228_22">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_179_13" HREF="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</A></FONT> (<FONT COLOR=red><A NAME="ref_179_22" HREF="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="180_16">Item_Vis</A></FONT> (<FONT COLOR=red><A NAME="180_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#180_16">Item_Vis</A>, "item_visible");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_181_16">Item_Vis</A></FONT> (<FONT COLOR=red><A NAME="ref_181_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Vis</A>, "item_visible");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#180_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#228_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_181_16">Item_Vis</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_226_22">Itm</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#228_13">Visible</A><A HREF="terminal_interface-curses-menus__ads.htm#228_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_226_13">Visible</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#237_14">Set_Options</A><FONT COLOR=red><A NAME="190_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#237_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#238_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_191_14" HREF="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_191_27" HREF="terminal_interface-curses-menus__ads.htm#ref_235_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_192_27" HREF="terminal_interface-curses-menus__ads.htm#ref_236_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="193_16">Set_Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="193_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <FONT COLOR=red><A NAME="194_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#193_16">Set_Item_Opts</A>, "set_item_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_194_16">Set_Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_194_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_195_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Set_Item_Opts</A>, "set_item_opts");
- <FONT COLOR=red><A NAME="197_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#67_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#238_27">Options</A>);
- <FONT COLOR=red><A NAME="198_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_198_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_68_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_236_27">Options</A>);
+ <FONT COLOR=red><A NAME="ref_199_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#198_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#193_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#237_27">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#197_7">Opt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#198_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#198_7">Res</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_194_16">Set_Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_235_27">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_198_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_199_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#237_14">Set_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#237_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_235_14">Set_Options</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#243_14">Switch_Options</A><FONT COLOR=red><A NAME="206_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#243_30">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#244_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#245_30">On</A> : Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_207_14" HREF="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_207_30" HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_208_30" HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_209_30" HREF="terminal_interface-curses-menus__ads.htm#ref_243_30">On</A></FONT> : Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="210_16">Item_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="210_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <FONT COLOR=red><A NAME="211_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#210_16">Item_Opts_On</A>, "item_opts_on");
- <b>function</b> <FONT COLOR=red><A NAME="213_16">Item_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="213_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <FONT COLOR=red><A NAME="214_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#213_16">Item_Opts_Off</A>, "item_opts_off");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_211_16">Item_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_211_30">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_212_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Item_Opts_On</A>, "item_opts_on");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_214_16">Item_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_214_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_215_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Item_Opts_Off</A>, "item_opts_off");
- <FONT COLOR=red><A NAME="217_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#67_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#244_30">Options</A>);
- <FONT COLOR=red><A NAME="218_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_218_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_68_13">IOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_242_30">Options</A>);
+ <FONT COLOR=red><A NAME="ref_219_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#245_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#218_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#210_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#243_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#217_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_243_30">On</A> <b>then</b>
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_211_16">Item_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#218_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#213_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#243_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#217_7">Opt</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_214_16">Item_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_241_30">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_218_7">Opt</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#218_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#218_7">Err</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_219_7">Err</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#243_14">Switch_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#243_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_241_14">Switch_Options</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#252_14">Get_Options</A><FONT COLOR=red><A NAME="230_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#252_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#253_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_231_14" HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_231_27" HREF="terminal_interface-curses-menus__ads.htm#ref_250_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_232_27" HREF="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="233_16">Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="233_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#233_16">Item_Opts</A>, "item_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_234_16">Item_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_234_27">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Item_Opts</A>, "item_opts");
- <FONT COLOR=red><A NAME="236_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#233_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#252_27">Itm</A>);
+ <FONT COLOR=red><A NAME="ref_237_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_234_16">Item_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_250_27">Itm</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#253_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#71_13">CInt_2_IOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#236_7">Res</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#252_14">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#252_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_251_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_72_13">CInt_2_IOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_237_7">Res</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#257_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#257_26">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_242_13" HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_242_26" HREF="terminal_interface-curses-menus__ads.htm#ref_255_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>
<b>is</b>
- <FONT COLOR=red><A NAME="243_7">Ios</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_244_7">Ios</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#252_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#257_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#243_7">Ios</A>);
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#243_7">Ios</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#257_13">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#257_13">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_250_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_255_26">Itm</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_244_7">Ios</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_244_7">Ios</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#266_14">Name</A><FONT COLOR=red><A NAME="249_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#266_20">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#267_20">Name</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_250_14" HREF="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_250_20" HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_251_20" HREF="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="252_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="252_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#252_16">Itemname</A>, "item_name");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_253_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_253_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itemname</A>, "item_name");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#252_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#266_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#267_20">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#266_14">Name</A><A HREF="terminal_interface-curses-menus__ads.htm#266_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_253_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_264_20">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_265_20">Name</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_264_14">Name</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#269_14">Name</A> (<A HREF="terminal_interface-curses-menus__ads.htm#269_20">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_259_13" HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A></FONT> (<FONT COLOR=red><A NAME="ref_259_19" HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="260_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="260_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#260_16">Itemname</A>, "item_name");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Itemname</A></FONT> (<FONT COLOR=red><A NAME="ref_261_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itemname</A>, "item_name");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#260_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#269_20">Itm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#269_14">Name</A><A HREF="terminal_interface-curses-menus__ads.htm#269_14">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_261_16">Itemname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_267_20">Itm</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_267_14">Name</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#275_14">Description</A><FONT COLOR=red><A NAME="266_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#275_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#276_27">Description</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_267_14" HREF="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_267_27" HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_268_27" HREF="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="269_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="269_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#269_16">Descname</A>, "item_description");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_270_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_270_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Descname</A>, "item_description");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#269_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#275_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#276_27">Description</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#275_14">Description</A><A HREF="terminal_interface-curses-menus__ads.htm#275_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_270_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_273_27">Itm</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_274_27">Description</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_273_14">Description</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#279_14">Description</A> (<A HREF="terminal_interface-curses-menus__ads.htm#279_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_276_13" HREF="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</A></FONT> (<FONT COLOR=red><A NAME="ref_276_26" HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="277_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="277_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#277_16">Descname</A>, "item_description");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_278_16">Descname</A></FONT> (<FONT COLOR=red><A NAME="ref_278_26">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Descname</A>, "item_description");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#277_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#279_27">Itm</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#279_14">Description</A><A HREF="terminal_interface-curses-menus__ads.htm#279_14">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_278_16">Descname</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_277_27">Itm</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_277_14">Description</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#289_14">Set_Current</A><FONT COLOR=red><A NAME="283_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#289_27">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#290_27">Itm</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_284_14" HREF="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</A></FONT> (<FONT COLOR=red><A NAME="ref_284_27" HREF="terminal_interface-curses-menus__ads.htm#ref_287_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_285_27" HREF="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="286_16">Set_Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="286_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="287_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#286_16">Set_Curr_Item</A>, "set_current_item");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_287_16">Set_Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_287_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_288_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Set_Curr_Item</A>, "set_current_item");
- <FONT COLOR=red><A NAME="290_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#286_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#289_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#290_27">Itm</A>);
+ <FONT COLOR=red><A NAME="ref_291_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_287_16">Set_Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_287_27">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_288_27">Itm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#290_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#290_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_291_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_291_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#289_14">Set_Current</A><A HREF="terminal_interface-curses-menus__ads.htm#289_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_287_14">Set_Current</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#295_13">Current</A> (<A HREF="terminal_interface-curses-menus__ads.htm#295_22">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_298_13" HREF="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</A></FONT> (<FONT COLOR=red><A NAME="ref_298_22" HREF="terminal_interface-curses-menus__ads.htm#ref_293_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="299_16">Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="299_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#299_16">Curr_Item</A>, "current_item");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_300_16">Curr_Item</A></FONT> (<FONT COLOR=red><A NAME="ref_300_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Curr_Item</A>, "current_item");
- <FONT COLOR=red><A NAME="302_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#299_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#295_22">Men</A>);
+ <FONT COLOR=red><A NAME="ref_303_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_300_16">Curr_Item</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_293_22">Men</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#302_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_303_7">Res</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#302_7">Res</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#295_13">Current</A><A HREF="terminal_interface-curses-menus__ads.htm#295_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_303_7">Res</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_293_13">Current</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#300_14">Set_Top_Row</A><FONT COLOR=red><A NAME="310_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#300_27">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#301_27">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_311_14" HREF="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_311_27" HREF="terminal_interface-curses-menus__ads.htm#ref_298_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_312_27" HREF="terminal_interface-curses-menus__ads.htm#ref_299_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="313_16">Set_Toprow</A></FONT> (<FONT COLOR=red><A NAME="313_28">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="314_28">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#313_16">Set_Toprow</A>, "set_top_row");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_314_16">Set_Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_314_28">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_315_28">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Set_Toprow</A>, "set_top_row");
- <FONT COLOR=red><A NAME="317_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#313_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#300_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#301_27">Line</A>));
+ <FONT COLOR=red><A NAME="ref_318_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_314_16">Set_Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_298_27">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_299_27">Line</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#317_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#317_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_318_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_318_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#300_14">Set_Top_Row</A><A HREF="terminal_interface-curses-menus__ads.htm#300_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_298_14">Set_Top_Row</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#306_13">Top_Row</A> (<A HREF="terminal_interface-curses-menus__ads.htm#306_22">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_325_13" HREF="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</A></FONT> (<FONT COLOR=red><A NAME="ref_325_22" HREF="terminal_interface-curses-menus__ads.htm#ref_304_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="326_16">Toprow</A></FONT> (<FONT COLOR=red><A NAME="326_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#326_16">Toprow</A>, "top_row");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_327_16">Toprow</A></FONT> (<FONT COLOR=red><A NAME="ref_327_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Toprow</A>, "top_row");
- <FONT COLOR=red><A NAME="329_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#326_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#306_22">Men</A>);
+ <FONT COLOR=red><A NAME="ref_330_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_327_16">Toprow</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_304_22">Men</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#329_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_330_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#329_7">Res</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#306_13">Top_Row</A><A HREF="terminal_interface-curses-menus__ads.htm#306_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_330_7">Res</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_304_13">Top_Row</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#311_13">Get_Index</A> (<A HREF="terminal_interface-curses-menus__ads.htm#311_24">Itm</A> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> Positive
+ <b>function</b> <FONT COLOR=red><A NAME="ref_338_13" HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</A></FONT> (<FONT COLOR=red><A NAME="ref_338_24" HREF="terminal_interface-curses-menus__ads.htm#ref_309_24">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> Positive
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="339_16">Get_Itemindex</A></FONT> (<FONT COLOR=red><A NAME="339_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#339_16">Get_Itemindex</A>, "item_index");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_340_16">Get_Itemindex</A></FONT> (<FONT COLOR=red><A NAME="ref_340_31">Itm</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Get_Itemindex</A>, "item_index");
- <FONT COLOR=red><A NAME="342_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#339_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#311_24">Itm</A>);
+ <FONT COLOR=red><A NAME="ref_343_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_340_16">Get_Itemindex</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_309_24">Itm</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#342_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_343_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#342_7">Res</A>) + Positive'First);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#311_13">Get_Index</A><A HREF="terminal_interface-curses-menus__ads.htm#311_13">;</A>
+ <b>return</b> Positive (Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_343_7">Res</A>) + Positive'First);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_309_13">Get_Index</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#323_14">Post</A><FONT COLOR=red><A NAME="350_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#323_20">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#324_20">Post</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_351_14" HREF="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</A></FONT> (<FONT COLOR=red><A NAME="ref_351_20" HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_352_20" HREF="terminal_interface-curses-menus__ads.htm#ref_322_20">Post</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="353_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="353_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#353_16">M_Post</A>, "post_menu");
- <b>function</b> <FONT COLOR=red><A NAME="355_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="355_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#355_16">M_Unpost</A>, "unpost_menu");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_354_16">M_Post</A></FONT> (<FONT COLOR=red><A NAME="ref_354_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">M_Post</A>, "post_menu");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_356_16">M_Unpost</A></FONT> (<FONT COLOR=red><A NAME="ref_356_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">M_Unpost</A>, "unpost_menu");
- <FONT COLOR=red><A NAME="358_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_359_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#324_20">Post</A> <b>then</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#353_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#323_20">Men</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_322_20">Post</A> <b>then</b>
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_354_16">M_Post</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#355_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#323_20">Men</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_356_16">M_Unpost</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_321_20">Men</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#358_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_359_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#323_14">Post</A><A HREF="terminal_interface-curses-menus__ads.htm#323_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_321_14">Post</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#334_14">Set_Options</A><FONT COLOR=red><A NAME="370_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#334_27">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#335_27">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_371_14" HREF="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_371_27" HREF="terminal_interface-curses-menus__ads.htm#ref_332_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_372_27" HREF="terminal_interface-curses-menus__ads.htm#ref_333_27">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="373_16">Set_Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="373_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="374_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#373_16">Set_Menu_Opts</A>, "set_menu_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Set_Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_374_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_375_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Set_Menu_Opts</A>, "set_menu_opts");
- <FONT COLOR=red><A NAME="377_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#59_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#335_27">Options</A>);
- <FONT COLOR=red><A NAME="378_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_378_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_60_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_333_27">Options</A>);
+ <FONT COLOR=red><A NAME="ref_379_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#378_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#373_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#334_27">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#377_7">Opt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#378_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#378_7">Res</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_374_16">Set_Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_332_27">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_378_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_379_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#334_14">Set_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#334_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_332_14">Set_Options</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#340_14">Switch_Options</A><FONT COLOR=red><A NAME="386_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#340_30">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#341_30">Options</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#342_30">On</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_387_14" HREF="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_387_30" HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_388_30" HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_389_30" HREF="terminal_interface-curses-menus__ads.htm#ref_340_30">On</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="390_16">Menu_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="390_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="391_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#390_16">Menu_Opts_On</A>, "menu_opts_on");
- <b>function</b> <FONT COLOR=red><A NAME="393_16">Menu_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="393_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="394_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#393_16">Menu_Opts_Off</A>, "menu_opts_off");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_391_16">Menu_Opts_On</A></FONT> (<FONT COLOR=red><A NAME="ref_391_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_392_30">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Menu_Opts_On</A>, "menu_opts_on");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_394_16">Menu_Opts_Off</A></FONT> (<FONT COLOR=red><A NAME="ref_394_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_395_31">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Menu_Opts_Off</A>, "menu_opts_off");
- <FONT COLOR=red><A NAME="397_7">Opt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#59_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#341_30">Options</A>);
- <FONT COLOR=red><A NAME="398_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_398_7">Opt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_60_13">MOS_2_CInt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_339_30">Options</A>);
+ <FONT COLOR=red><A NAME="ref_399_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#342_30">On</A> <b>then</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#390_16">Menu_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#340_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#397_7">Opt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_340_30">On</A> <b>then</b>
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_391_16">Menu_Opts_On</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#393_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#340_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#397_7">Opt</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_394_16">Menu_Opts_Off</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_338_30">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_398_7">Opt</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#398_7">Err</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_399_7">Err</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#340_14">Switch_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#340_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_338_14">Switch_Options</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#348_14">Get_Options</A><FONT COLOR=red><A NAME="410_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#348_27">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#349_27">Options</A> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_411_14" HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_411_27" HREF="terminal_interface-curses-menus__ads.htm#ref_346_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_412_32" HREF="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="413_16">Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="413_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#413_16">Menu_Opts</A>, "menu_opts");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_414_16">Menu_Opts</A></FONT> (<FONT COLOR=red><A NAME="ref_414_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Menu_Opts</A>, "menu_opts");
- <FONT COLOR=red><A NAME="416_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#413_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#348_27">Men</A>);
+ <FONT COLOR=red><A NAME="ref_417_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_414_16">Menu_Opts</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_346_27">Men</A>);
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#349_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#63_13">CInt_2_MOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#416_7">Res</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#348_14">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#348_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_347_27">Options</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_64_13">CInt_2_MOS</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_417_7">Res</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#353_26">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_422_13" HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A></FONT> (<FONT COLOR=red><A NAME="ref_422_26" HREF="terminal_interface-curses-menus__ads.htm#ref_351_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>
<b>is</b>
- <FONT COLOR=red><A NAME="423_7">Mos</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>;
+ <FONT COLOR=red><A NAME="ref_424_7">Mos</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#348_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#353_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#423_7">Mos</A>);
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#423_7">Mos</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#353_13">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_346_14">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_351_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">Mos</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_424_7">Mos</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#362_14">Set_Window</A><FONT COLOR=red><A NAME="429_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#362_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#363_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_430_14" HREF="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_430_26" HREF="terminal_interface-curses-menus__ads.htm#ref_360_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="432_16">Set_Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="432_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="433_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#432_16">Set_Menu_Win</A>, "set_menu_win");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_433_16">Set_Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_433_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_434_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Set_Menu_Win</A>, "set_menu_win");
- <FONT COLOR=red><A NAME="436_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#432_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#362_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#363_26">Win</A>);
+ <FONT COLOR=red><A NAME="ref_437_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_433_16">Set_Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_360_26">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_361_26">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#436_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#436_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_437_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_437_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#362_14">Set_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#362_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_360_14">Set_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#368_13">Get_Window</A> (<A HREF="terminal_interface-curses-menus__ads.htm#368_25">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_444_13" HREF="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_444_25" HREF="terminal_interface-curses-menus__ads.htm#ref_366_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="445_16">Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="445_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#445_16">Menu_Win</A>, "menu_win");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_446_16">Menu_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_446_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Menu_Win</A>, "menu_win");
- <FONT COLOR=red><A NAME="448_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#445_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#368_25">Men</A>);
+ <FONT COLOR=red><A NAME="ref_449_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_446_16">Menu_Win</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_366_25">Men</A>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#448_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#368_13">Get_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#368_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_449_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_366_13">Get_Window</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#373_14">Set_Sub_Window</A><FONT COLOR=red><A NAME="453_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#373_30">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#374_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_454_14" HREF="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_454_30" HREF="terminal_interface-curses-menus__ads.htm#ref_371_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_455_30" HREF="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="456_16">Set_Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="456_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="457_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#456_16">Set_Menu_Sub</A>, "set_menu_sub");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_457_16">Set_Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_457_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_458_30">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Set_Menu_Sub</A>, "set_menu_sub");
- <FONT COLOR=red><A NAME="460_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#456_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#373_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#374_30">Win</A>);
+ <FONT COLOR=red><A NAME="ref_461_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_457_16">Set_Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_371_30">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_372_30">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#460_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#460_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_461_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_461_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#373_14">Set_Sub_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#373_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_371_14">Set_Sub_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#379_13">Get_Sub_Window</A> (<A HREF="terminal_interface-curses-menus__ads.htm#379_29">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_468_13" HREF="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_468_29" HREF="terminal_interface-curses-menus__ads.htm#ref_377_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="469_16">Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="469_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#469_16">Menu_Sub</A>, "menu_sub");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_470_16">Menu_Sub</A></FONT> (<FONT COLOR=red><A NAME="ref_470_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Menu_Sub</A>, "menu_sub");
- <FONT COLOR=red><A NAME="472_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#469_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#379_29">Men</A>);
+ <FONT COLOR=red><A NAME="ref_473_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_470_16">Menu_Sub</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_377_29">Men</A>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#472_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#379_13">Get_Sub_Window</A><A HREF="terminal_interface-curses-menus__ads.htm#379_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_473_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_377_13">Get_Sub_Window</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#384_14">Scale</A><FONT COLOR=red><A NAME="477_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#384_21">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#385_21">Lines</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#386_21">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_478_21" HREF="terminal_interface-curses-menus__ads.htm#ref_382_21">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_479_21" HREF="terminal_interface-curses-menus__ads.htm#ref_383_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_480_21" HREF="terminal_interface-curses-menus__ads.htm#ref_384_21">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="481_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="482_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="482_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="483_25">Yp</A></FONT>, <FONT COLOR=red><A NAME="483_29">Xp</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#481_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#482_16">M_Scale</A>, "scale_menu");
+ <b>type</b> <FONT COLOR=red><A NAME="ref_482_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_483_16">M_Scale</A></FONT> (<FONT COLOR=red><A NAME="ref_483_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_484_25">Yp</A></FONT>, <FONT COLOR=red><A NAME="ref_484_29">Xp</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_482_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">M_Scale</A>, "scale_menu");
- <FONT COLOR=red><A NAME="486_7">X</A></FONT>, <FONT COLOR=red><A NAME="486_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="487_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#482_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#384_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#486_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#486_7">X</A>'<b>Access</b>);
+ <FONT COLOR=red><A NAME="ref_487_7">X</A></FONT>, <FONT COLOR=red><A NAME="ref_487_10">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_488_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_483_16">M_Scale</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_382_21">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>'<b>Access</b>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#487_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#487_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_488_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_488_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__ads.htm#385_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#486_10">Y</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#386_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#486_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#384_14">Scale</A><A HREF="terminal_interface-curses-menus__ads.htm#384_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_383_21">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_10">Y</A>);
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_384_21">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_487_7">X</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_382_14">Scale</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#395_14">Position_Cursor</A><FONT COLOR=red><A NAME="496_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#395_31">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_497_14" HREF="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_497_31" HREF="terminal_interface-curses-menus__ads.htm#ref_393_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="498_16">Pos_Menu_Cursor</A></FONT> (<FONT COLOR=red><A NAME="498_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#498_16">Pos_Menu_Cursor</A>, "pos_menu_cursor");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_499_16">Pos_Menu_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_499_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Pos_Menu_Cursor</A>, "pos_menu_cursor");
- <FONT COLOR=red><A NAME="501_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#498_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#395_31">Men</A>);
+ <FONT COLOR=red><A NAME="ref_502_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_499_16">Pos_Menu_Cursor</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_393_31">Men</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#501_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#501_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_502_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_502_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#395_14">Position_Cursor</A><A HREF="terminal_interface-curses-menus__ads.htm#395_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_393_14">Position_Cursor</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#404_14">Set_Mark</A><FONT COLOR=red><A NAME="509_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#404_24">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#405_24">Mark</A> : <b>in</b> String)
- <b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="512_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
- <b>function</b> <FONT COLOR=red><A NAME="513_16">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="513_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="514_26">Mark</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#512_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#513_16">Set_Mark</A>, "set_menu_mark");
-
- <FONT COLOR=red><A NAME="517_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#405_24">Mark</A>'Length);
- <FONT COLOR=red><A NAME="518_7">Len</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="519_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#405_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#517_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#518_7">Len</A>);
- <A HREF="terminal_interface-curses-menus__adb.htm#519_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#513_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#404_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#517_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#517_7">Txt</A>'First)'<b>Access</b>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#519_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#519_7">Res</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_510_14" HREF="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_510_24" HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_511_24" HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</A></FONT> : <b>in</b> String)
+ <b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_513_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_514_16">Set_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_514_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_515_26">Mark</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_513_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Set_Mark</A>, "set_menu_mark");
+
+ <FONT COLOR=red><A NAME="ref_518_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</A>'Length);
+ <FONT COLOR=red><A NAME="ref_519_7">Len</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_520_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_403_24">Mark</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_519_7">Len</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_514_16">Set_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_402_24">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_518_7">Txt</A>'First)'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_520_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#404_14">Set_Mark</A><A HREF="terminal_interface-curses-menus__ads.htm#404_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_402_14">Set_Mark</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#410_14">Mark</A><FONT COLOR=red><A NAME="528_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#410_20">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#411_20">Mark</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_529_14" HREF="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_529_20" HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_530_20" HREF="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="531_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="531_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#531_16">Get_Menu_Mark</A>, "menu_mark");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_532_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_532_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Get_Menu_Mark</A>, "menu_mark");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#531_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#410_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#411_20">Mark</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#410_14">Mark</A><A HREF="terminal_interface-curses-menus__ads.htm#410_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_532_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_408_20">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_409_20">Mark</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_408_14">Mark</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#414_14">Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#414_20">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_538_13" HREF="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_538_19" HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="539_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="539_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#539_16">Get_Menu_Mark</A>, "menu_mark");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_540_16">Get_Menu_Mark</A></FONT> (<FONT COLOR=red><A NAME="ref_540_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Get_Menu_Mark</A>, "menu_mark");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#539_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#414_20">Men</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#414_14">Mark</A><A HREF="terminal_interface-curses-menus__ads.htm#414_14">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_540_16">Get_Menu_Mark</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_412_20">Men</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_412_14">Mark</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#424_14">Set_Foreground</A><FONT COLOR=red><A NAME="546_14"></A></FONT>
- (<A HREF="terminal_interface-curses-menus__ads.htm#425_7">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#426_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#427_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="551_16">Set_Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="551_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="552_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#551_16">Set_Menu_Fore</A>, "set_menu_fore");
-
- <FONT COLOR=red><A NAME="555_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Color => <A HREF="terminal_interface-curses-menus__ads.htm#427_7">Color</A>,
- Attr => <A HREF="terminal_interface-curses-menus__ads.htm#426_7">Fore</A>);
- <FONT COLOR=red><A NAME="558_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#551_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#425_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#555_7">Ch</A>));
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#558_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#558_7">Res</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_547_14" HREF="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_548_7" HREF="terminal_interface-curses-menus__ads.htm#ref_423_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_549_7" HREF="terminal_interface-curses-menus__ads.htm#ref_424_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_550_7" HREF="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_552_16">Set_Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_552_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_553_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Set_Menu_Fore</A>, "set_menu_fore");
+
+ <FONT COLOR=red><A NAME="ref_556_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Color => <A HREF="terminal_interface-curses-menus__ads.htm#ref_425_7">Color</A>,
+ Attr => <A HREF="terminal_interface-curses-menus__ads.htm#ref_424_7">Fore</A>);
+ <FONT COLOR=red><A NAME="ref_559_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_552_16">Set_Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_423_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_556_7">Ch</A>));
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_559_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#424_14">Set_Foreground</A><A HREF="terminal_interface-curses-menus__ads.htm#424_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_422_14">Set_Foreground</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#432_14">Foreground</A><FONT COLOR=red><A NAME="565_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#432_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#433_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_566_14" HREF="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_566_26" HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_567_26" HREF="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="568_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="568_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#568_16">Menu_Fore</A>, "menu_fore");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_569_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_569_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Menu_Fore</A>, "menu_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#433_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#568_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#432_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#432_14">Foreground</A><A HREF="terminal_interface-curses-menus__ads.htm#432_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_431_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_569_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_430_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_430_14">Foreground</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#437_14">Foreground</A><FONT COLOR=red><A NAME="574_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#437_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#438_26">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#439_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_575_14" HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A></FONT> (<FONT COLOR=red><A NAME="ref_575_26" HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_576_26" HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+ <FONT COLOR=red><A NAME="ref_577_26" HREF="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="578_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="578_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#578_16">Menu_Fore</A>, "menu_fore");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_579_16">Menu_Fore</A></FONT> (<FONT COLOR=red><A NAME="ref_579_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A>, "menu_fore");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#438_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#578_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#437_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#439_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#578_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#437_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#437_14">Foreground</A><A HREF="terminal_interface-curses-menus__ads.htm#437_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_436_26">Fore</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_437_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_579_16">Menu_Fore</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_435_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_435_14">Foreground</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#444_14">Set_Background</A><FONT COLOR=red><A NAME="585_14"></A></FONT>
- (<A HREF="terminal_interface-curses-menus__ads.htm#445_7">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#446_7">Back</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#447_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_586_14" HREF="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_587_7" HREF="terminal_interface-curses-menus__ads.htm#ref_443_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_588_7" HREF="terminal_interface-curses-menus__ads.htm#ref_444_7">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_589_7" HREF="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="590_16">Set_Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="590_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="591_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#590_16">Set_Menu_Back</A>, "set_menu_back");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_591_16">Set_Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_591_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_592_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Set_Menu_Back</A>, "set_menu_back");
- <FONT COLOR=red><A NAME="594_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Color => <A HREF="terminal_interface-curses-menus__ads.htm#447_7">Color</A>,
- Attr => <A HREF="terminal_interface-curses-menus__ads.htm#446_7">Back</A>);
- <FONT COLOR=red><A NAME="597_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#590_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#445_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#594_7">Ch</A>));
+ <FONT COLOR=red><A NAME="ref_595_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Color => <A HREF="terminal_interface-curses-menus__ads.htm#ref_445_7">Color</A>,
+ Attr => <A HREF="terminal_interface-curses-menus__ads.htm#ref_444_7">Back</A>);
+ <FONT COLOR=red><A NAME="ref_598_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_591_16">Set_Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_443_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_595_7">Ch</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#597_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#597_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_598_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_598_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#444_14">Set_Background</A><A HREF="terminal_interface-curses-menus__ads.htm#444_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_442_14">Set_Background</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#452_14">Background</A><FONT COLOR=red><A NAME="604_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#452_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#453_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_605_14" HREF="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_605_26" HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_606_26" HREF="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="607_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="607_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#607_16">Menu_Back</A>, "menu_back");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_608_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_608_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Menu_Back</A>, "menu_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#453_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#607_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#452_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#452_14">Background</A><A HREF="terminal_interface-curses-menus__ads.htm#452_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_451_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_608_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_450_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_450_14">Background</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#457_14">Background</A><FONT COLOR=red><A NAME="613_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#457_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#458_26">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#459_26">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_614_14" HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A></FONT> (<FONT COLOR=red><A NAME="ref_614_26" HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_615_26" HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+ <FONT COLOR=red><A NAME="ref_616_26" HREF="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="617_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="617_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#617_16">Menu_Back</A>, "menu_back");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_618_16">Menu_Back</A></FONT> (<FONT COLOR=red><A NAME="ref_618_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A>, "menu_back");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#458_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#617_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#457_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#459_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#617_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#457_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#457_14">Background</A><A HREF="terminal_interface-curses-menus__ads.htm#457_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_456_26">Back</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_457_26">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_618_16">Menu_Back</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_455_26">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_455_14">Background</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#464_14">Set_Grey</A><FONT COLOR=red><A NAME="624_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#465_7">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#466_7">Grey</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#467_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_625_14" HREF="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_625_24" HREF="terminal_interface-curses-menus__ads.htm#ref_463_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_626_24" HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_627_24" HREF="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="628_16">Set_Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="628_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="629_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#628_16">Set_Menu_Grey</A>, "set_menu_grey");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_629_16">Set_Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_629_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_630_31">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Set_Menu_Grey</A>, "set_menu_grey");
- <FONT COLOR=red><A NAME="632_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Color => <A HREF="terminal_interface-curses-menus__ads.htm#467_7">Color</A>,
- Attr => <A HREF="terminal_interface-curses-menus__ads.htm#466_7">Grey</A>);
+ <FONT COLOR=red><A NAME="ref_633_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Color => <A HREF="terminal_interface-curses-menus__ads.htm#ref_465_7">Color</A>,
+ Attr => <A HREF="terminal_interface-curses-menus__ads.htm#ref_464_7">Grey</A>);
- <FONT COLOR=red><A NAME="636_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#628_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#465_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#632_7">Ch</A>));
+ <FONT COLOR=red><A NAME="ref_637_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_629_16">Set_Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_463_7">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_633_7">Ch</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#636_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#636_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_637_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_637_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#464_14">Set_Grey</A><A HREF="terminal_interface-curses-menus__ads.htm#464_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_462_14">Set_Grey</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#472_14">Grey</A><FONT COLOR=red><A NAME="643_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#472_20">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#473_20">Grey</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_644_14" HREF="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_644_20" HREF="terminal_interface-curses-menus__ads.htm#ref_470_20">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_645_20" HREF="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="646_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="646_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#646_16">Menu_Grey</A>, "menu_grey");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_647_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_647_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Menu_Grey</A>, "menu_grey");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#473_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#646_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#472_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#472_14">Grey</A><A HREF="terminal_interface-curses-menus__ads.htm#472_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_471_20">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_647_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_470_20">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_470_14">Grey</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#477_14">Grey</A><FONT COLOR=red><A NAME="652_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#478_7">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#479_7">Grey</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#480_7">Color</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_653_14" HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_653_20" HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_654_20" HREF="terminal_interface-curses-menus__ads.htm#ref_477_7">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+ <FONT COLOR=red><A NAME="ref_655_20" HREF="terminal_interface-curses-menus__ads.htm#ref_478_7">Color</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="656_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="656_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#656_16">Menu_Grey</A>, "menu_grey");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_657_16">Menu_Grey</A></FONT> (<FONT COLOR=red><A NAME="ref_657_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A>, "menu_grey");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#479_7">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#656_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#478_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#480_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#656_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#478_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#477_14">Grey</A><A HREF="terminal_interface-curses-menus__ads.htm#477_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_477_7">Grey</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_478_7">Color</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_657_16">Menu_Grey</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_476_7">Men</A>)).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_475_14">Grey</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#485_14">Set_Pad_Character</A><FONT COLOR=red><A NAME="663_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#485_33">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#486_33">Pad</A> : <b>in</b> Character := <A HREF="terminal_interface-curses-menus__ads.htm#53_4">Space</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_664_14" HREF="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_664_33" HREF="terminal_interface-curses-menus__ads.htm#ref_483_33">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_665_33" HREF="terminal_interface-curses-menus__ads.htm#ref_484_33">Pad</A></FONT> : <b>in</b> Character := Space)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="666_16">Set_Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="666_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="667_30">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#666_16">Set_Menu_Pad</A>, "set_menu_pad");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Set_Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_667_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_668_30">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Set_Menu_Pad</A>, "set_menu_pad");
- <FONT COLOR=red><A NAME="670_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#666_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#485_33">Men</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#486_33">Pad</A>)));
+ <FONT COLOR=red><A NAME="ref_671_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_667_16">Set_Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_483_33">Men</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Character'Pos (<A HREF="terminal_interface-curses-menus__ads.htm#ref_484_33">Pad</A>)));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#670_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#670_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_671_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_671_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#485_14">Set_Pad_Character</A><A HREF="terminal_interface-curses-menus__ads.htm#485_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_483_14">Set_Pad_Character</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#491_14">Pad_Character</A><FONT COLOR=red><A NAME="678_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#491_29">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#492_29">Pad</A> : <b>out</b> Character)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_679_14" HREF="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_679_29" HREF="terminal_interface-curses-menus__ads.htm#ref_489_29">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_680_29" HREF="terminal_interface-curses-menus__ads.htm#ref_490_29">Pad</A></FONT> : <b>out</b> Character)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="681_16">Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="681_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#681_16">Menu_Pad</A>, "menu_pad");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_682_16">Menu_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_682_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Menu_Pad</A>, "menu_pad");
<b>begin</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#492_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#681_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#491_29">Men</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#491_14">Pad_Character</A><A HREF="terminal_interface-curses-menus__ads.htm#491_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_490_29">Pad</A> := Character'Val (<A HREF="terminal_interface-curses-menus__adb.htm#ref_682_16">Menu_Pad</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_489_29">Men</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_489_14">Pad_Character</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#501_14">Set_Spacing</A><FONT COLOR=red><A NAME="687_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#501_27">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#502_27">Descr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> := 0;
- <A HREF="terminal_interface-curses-menus__ads.htm#503_27">Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> := 0;
- <A HREF="terminal_interface-curses-menus__ads.htm#504_27">Col</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> := 0)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="692_16">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="692_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="693_29">D</A></FONT>, <FONT COLOR=red><A NAME="693_32">R</A></FONT>, <FONT COLOR=red><A NAME="693_35">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#692_16">Set_Spacing</A>, "set_menu_spacing");
-
- <FONT COLOR=red><A NAME="696_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#692_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#501_27">Men</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#502_27">Descr</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#503_27">Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#504_27">Col</A>));
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#696_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#696_7">Res</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_688_14" HREF="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_688_27" HREF="terminal_interface-curses-menus__ads.htm#ref_499_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_689_27" HREF="terminal_interface-curses-menus__ads.htm#ref_500_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0;
+ <FONT COLOR=red><A NAME="ref_690_27" HREF="terminal_interface-curses-menus__ads.htm#ref_501_27">Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := 0;
+ <FONT COLOR=red><A NAME="ref_691_27" HREF="terminal_interface-curses-menus__ads.htm#ref_502_27">Col</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := 0)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_693_16">Set_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_693_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_694_29">D</A></FONT>, <FONT COLOR=red><A NAME="ref_694_32">R</A></FONT>, <FONT COLOR=red><A NAME="ref_694_35">C</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Set_Spacing</A>, "set_menu_spacing");
+
+ <FONT COLOR=red><A NAME="ref_697_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_693_16">Set_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_499_27">Men</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_500_27">Descr</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_501_27">Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_502_27">Col</A>));
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_697_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_697_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#501_14">Set_Spacing</A><A HREF="terminal_interface-curses-menus__ads.htm#501_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#509_14">Spacing</A><FONT COLOR=red><A NAME="706_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#509_23">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#510_23">Descr</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#511_23">Row</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#512_23">Col</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
- <b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="711_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="712_16">Get_Spacing</A></FONT> (<FONT COLOR=red><A NAME="712_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="713_29">D</A></FONT>, <FONT COLOR=red><A NAME="713_32">R</A></FONT>, <FONT COLOR=red><A NAME="713_35">C</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#711_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#712_16">Get_Spacing</A>, "menu_spacing");
-
- <FONT COLOR=red><A NAME="716_7">D</A></FONT>, <FONT COLOR=red><A NAME="716_10">R</A></FONT>, <FONT COLOR=red><A NAME="716_13">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="717_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#712_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#509_23">Men</A>,
- <A HREF="terminal_interface-curses-menus__adb.htm#716_7">D</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#716_10">R</A>'<b>Access</b>,
- <A HREF="terminal_interface-curses-menus__adb.htm#716_13">C</A>'<b>Access</b>);
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#717_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#717_7">Res</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_499_14">Set_Spacing</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_707_14" HREF="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_707_23" HREF="terminal_interface-curses-menus__ads.htm#ref_507_23">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_708_23" HREF="terminal_interface-curses-menus__ads.htm#ref_508_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_709_23" HREF="terminal_interface-curses-menus__ads.htm#ref_509_23">Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_710_23" HREF="terminal_interface-curses-menus__ads.htm#ref_510_23">Col</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+ <b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_712_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_713_16">Get_Spacing</A></FONT> (<FONT COLOR=red><A NAME="ref_713_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_714_29">D</A></FONT>, <FONT COLOR=red><A NAME="ref_714_32">R</A></FONT>, <FONT COLOR=red><A NAME="ref_714_35">C</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_712_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Get_Spacing</A>, "menu_spacing");
+
+ <FONT COLOR=red><A NAME="ref_717_7">D</A></FONT>, <FONT COLOR=red><A NAME="ref_717_10">R</A></FONT>, <FONT COLOR=red><A NAME="ref_717_13">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_718_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_713_16">Get_Spacing</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_507_23">Men</A>,
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_7">D</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_10">R</A>'<b>Access</b>,
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_717_13">C</A>'<b>Access</b>);
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_718_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_718_7">Res</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#510_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#716_7">D</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#511_23">Row</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#716_10">R</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#512_23">Col</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#716_13">C</A>);
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_508_23">Descr</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_7">D</A>);
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_509_23">Row</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_10">R</A>);
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_510_23">Col</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_717_13">C</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#509_14">Spacing</A><A HREF="terminal_interface-curses-menus__ads.htm#509_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_507_14">Spacing</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#521_13">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#521_26">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#522_26">Text</A> : String) <b>return</b> Boolean
- <b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="734_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char;
- <b>function</b> <FONT COLOR=red><A NAME="735_16">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="735_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="736_29">Pattern</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#734_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#735_16">Set_Pattern</A>, "set_menu_pattern");
-
- <FONT COLOR=red><A NAME="739_7">S</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#522_26">Text</A>'Length);
- <FONT COLOR=red><A NAME="740_7">L</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="741_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
- <b>begin</b>
- To_C (<A HREF="terminal_interface-curses-menus__ads.htm#522_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#739_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#740_7">L</A>);
- <A HREF="terminal_interface-curses-menus__adb.htm#741_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#735_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#521_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#739_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#739_7">S</A>'First)'<b>Access</b>);
- <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#741_7">Res</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_No_Match</A> => <b>return</b> False;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> => <b>return</b> True;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_732_13" HREF="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_732_26" HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_733_26" HREF="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</A></FONT> : String) <b>return</b> Boolean
+ <b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_735_12">Char_Ptr</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_736_16">Set_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_736_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_737_29">Pattern</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_735_12">Char_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Set_Pattern</A>, "set_menu_pattern");
+
+ <FONT COLOR=red><A NAME="ref_740_7">S</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</A>'Length);
+ <FONT COLOR=red><A NAME="ref_741_7">L</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_742_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses-menus__ads.htm#ref_520_26">Text</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_741_7">L</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_736_16">Set_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_519_26">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_740_7">S</A>'First)'<b>Access</b>);
+ <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A> <b>is</b>
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> => <b>return</b> False;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> => <b>return</b> True;
<b>when</b> <b>others</b> =>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#741_7">Res</A>);
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_742_7">Res</A>);
<b>return</b> False;
<b>end</b> <b>case</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#521_13">Set_Pattern</A><A HREF="terminal_interface-curses-menus__ads.htm#521_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_519_13">Set_Pattern</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#528_14">Pattern</A><FONT COLOR=red><A NAME="754_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#528_23">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#529_23">Text</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_755_14" HREF="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_755_23" HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_756_23" HREF="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="757_16">Get_Pattern</A></FONT> (<FONT COLOR=red><A NAME="757_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#57_12">chars_ptr</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#757_16">Get_Pattern</A>, "menu_pattern");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_758_16">Get_Pattern</A></FONT> (<FONT COLOR=red><A NAME="ref_758_29">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_58_12">chars_ptr</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Get_Pattern</A>, "menu_pattern");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#757_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#528_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#529_23">Text</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#528_14">Pattern</A><A HREF="terminal_interface-curses-menus__ads.htm#528_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_758_16">Get_Pattern</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_526_23">Men</A>), <A HREF="terminal_interface-curses-menus__ads.htm#ref_527_23">Text</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_526_14">Pattern</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#538_14">Set_Format</A><FONT COLOR=red><A NAME="763_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#538_26">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#539_26">Lines</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#540_26">Columns</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_764_14" HREF="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</A></FONT> (<FONT COLOR=red><A NAME="ref_764_26" HREF="terminal_interface-curses-menus__ads.htm#ref_536_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_765_26" HREF="terminal_interface-curses-menus__ads.htm#ref_537_26">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_766_26" HREF="terminal_interface-curses-menus__ads.htm#ref_538_26">Columns</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="767_16">Set_Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="767_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="768_30">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="769_30">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#767_16">Set_Menu_Fmt</A>, "set_menu_format");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_768_16">Set_Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="ref_768_30">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_769_30">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_770_30">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Set_Menu_Fmt</A>, "set_menu_format");
- <FONT COLOR=red><A NAME="772_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#767_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#538_26">Men</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#539_26">Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#540_26">Columns</A>));
+ <FONT COLOR=red><A NAME="ref_773_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_768_16">Set_Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_536_26">Men</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_537_26">Lines</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_538_26">Columns</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#772_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#772_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_773_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_773_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#538_14">Set_Format</A><A HREF="terminal_interface-curses-menus__ads.htm#538_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_536_14">Set_Format</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#552_14">Format</A><FONT COLOR=red><A NAME="781_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#552_22">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#553_22">Lines</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#554_22">Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_782_14" HREF="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</A></FONT> (<FONT COLOR=red><A NAME="ref_782_22" HREF="terminal_interface-curses-menus__ads.htm#ref_550_22">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_783_22" HREF="terminal_interface-curses-menus__ads.htm#ref_551_22">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_784_22" HREF="terminal_interface-curses-menus__ads.htm#ref_552_22">Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="785_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="786_16">Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="786_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="787_26">Y</A></FONT>, <FONT COLOR=red><A NAME="787_29">X</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#785_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#786_16">Menu_Fmt</A>, "menu_format");
+ <b>type</b> <FONT COLOR=red><A NAME="ref_786_12">C_Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_787_16">Menu_Fmt</A></FONT> (<FONT COLOR=red><A NAME="ref_787_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_788_26">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_788_29">X</A></FONT> : <A HREF="terminal_interface-curses-menus__adb.htm#ref_786_12">C_Int_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Menu_Fmt</A>, "menu_format");
- <FONT COLOR=red><A NAME="790_7">L</A></FONT>, <FONT COLOR=red><A NAME="790_10">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="791_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#786_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#552_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#790_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#790_10">C</A>'<b>Access</b>);
+ <FONT COLOR=red><A NAME="ref_791_7">L</A></FONT>, <FONT COLOR=red><A NAME="ref_791_10">C</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_792_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_787_16">Menu_Fmt</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_550_22">Men</A>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>'<b>Access</b>, <A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>'<b>Access</b>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#791_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#791_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_792_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_792_7">Res</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#553_22">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#790_7">L</A>);
- <A HREF="terminal_interface-curses-menus__ads.htm#554_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#790_10">C</A>);
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_551_22">Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_7">L</A>);
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_552_22">Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_791_10">C</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#552_14">Format</A><A HREF="terminal_interface-curses-menus__ads.htm#552_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_550_14">Format</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#566_14">Set_Item_Init_Hook</A><FONT COLOR=red><A NAME="801_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#566_34">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#567_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_802_34" HREF="terminal_interface-curses-menus__ads.htm#ref_564_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_803_34" HREF="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="804_16">Set_Item_Init</A></FONT> (<FONT COLOR=red><A NAME="804_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="805_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#804_16">Set_Item_Init</A>, "set_item_init");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_805_16">Set_Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_805_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_806_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Set_Item_Init</A>, "set_item_init");
- <FONT COLOR=red><A NAME="808_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#804_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#566_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#567_34">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_809_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_805_16">Set_Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_564_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_565_34">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#808_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#808_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_809_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_809_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#566_14">Set_Item_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#566_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_564_14">Set_Item_Init_Hook</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#572_14">Set_Item_Term_Hook</A><FONT COLOR=red><A NAME="815_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#572_34">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#573_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_816_14" HREF="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_816_34" HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_817_34" HREF="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="818_16">Set_Item_Term</A></FONT> (<FONT COLOR=red><A NAME="818_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="819_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#818_16">Set_Item_Term</A>, "set_item_term");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_819_16">Set_Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_819_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_820_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Set_Item_Term</A>, "set_item_term");
- <FONT COLOR=red><A NAME="822_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#818_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#572_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#573_34">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_823_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_819_16">Set_Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_570_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_571_34">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#822_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#822_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_823_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_823_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#572_14">Set_Item_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#572_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_570_14">Set_Item_Term_Hook</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#578_14">Set_Menu_Init_Hook</A><FONT COLOR=red><A NAME="829_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#578_34">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#579_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_830_14" HREF="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_830_34" HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_831_34" HREF="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="832_16">Set_Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="832_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="833_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#832_16">Set_Menu_Init</A>, "set_menu_init");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_833_16">Set_Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_833_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_834_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Set_Menu_Init</A>, "set_menu_init");
- <FONT COLOR=red><A NAME="836_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#832_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#578_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#579_34">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_837_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_833_16">Set_Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_576_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_577_34">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#836_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#836_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_837_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_837_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#578_14">Set_Menu_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#578_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_576_14">Set_Menu_Init_Hook</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#584_14">Set_Menu_Term_Hook</A><FONT COLOR=red><A NAME="843_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#584_34">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#585_34">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_844_14" HREF="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_844_34" HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_845_34" HREF="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="846_16">Set_Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="846_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="847_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#846_16">Set_Menu_Term</A>, "set_menu_term");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_847_16">Set_Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_847_31">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_848_31">Proc</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Set_Menu_Term</A>, "set_menu_term");
- <FONT COLOR=red><A NAME="850_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#846_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#584_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#585_34">Proc</A>);
+ <FONT COLOR=red><A NAME="ref_851_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_847_16">Set_Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_582_34">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_583_34">Proc</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#850_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#850_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_851_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_851_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#584_14">Set_Menu_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#584_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_582_14">Set_Menu_Term_Hook</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#590_13">Get_Item_Init_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#590_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_858_13" HREF="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_858_33" HREF="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="859_16">Item_Init</A></FONT> (<FONT COLOR=red><A NAME="859_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#859_16">Item_Init</A>, "item_init");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_860_16">Item_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_860_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Item_Init</A>, "item_init");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#859_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#590_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#590_13">Get_Item_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#590_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_860_16">Item_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_588_33">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_588_13">Get_Item_Init_Hook</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#595_13">Get_Item_Term_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#595_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_866_13" HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_866_33" HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="867_16">Item_Term</A></FONT> (<FONT COLOR=red><A NAME="867_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#867_16">Item_Term</A>, "item_term");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_868_16">Item_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_868_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Item_Term</A>, "item_term");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#867_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#595_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#595_13">Get_Item_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#595_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_868_16">Item_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_593_33">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_593_13">Get_Item_Term_Hook</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#600_13">Get_Menu_Init_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#600_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_874_13" HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_874_33" HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="875_16">Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="875_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#875_16">Menu_Init</A>, "menu_init");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_876_16">Menu_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_876_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Menu_Init</A>, "menu_init");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#875_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#600_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#600_13">Get_Menu_Init_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#600_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_876_16">Menu_Init</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_598_33">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_598_13">Get_Menu_Init_Hook</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#605_13">Get_Menu_Term_Hook</A> (<A HREF="terminal_interface-curses-menus__ads.htm#605_33">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_882_13" HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</A></FONT> (<FONT COLOR=red><A NAME="ref_882_33" HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="883_16">Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="883_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu_Hook_Function</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#883_16">Menu_Term</A>, "menu_term");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_884_16">Menu_Term</A></FONT> (<FONT COLOR=red><A NAME="ref_884_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu_Hook_Function</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Menu_Term</A>, "menu_term");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#883_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#605_33">Men</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#605_13">Get_Menu_Term_Hook</A><A HREF="terminal_interface-curses-menus__ads.htm#605_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_884_16">Menu_Term</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_603_33">Men</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_603_13">Get_Menu_Term_Hook</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#614_14">Redefine</A><FONT COLOR=red><A NAME="889_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#614_24">Men</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A></FONT> (<FONT COLOR=red><A NAME="ref_890_24" HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_891_24" HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="892_16">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="892_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="893_27">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#892_16">Set_Items</A>, "set_menu_items");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Set_Items</A></FONT> (<FONT COLOR=red><A NAME="ref_893_27">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_894_27">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Set_Items</A>, "set_menu_items");
- <FONT COLOR=red><A NAME="896_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A>;
+ <FONT COLOR=red><A NAME="ref_897_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#896_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#892_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#614_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#615_24">Items</A>.<b>all</b>'Address);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#896_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#896_7">Res</A>);
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_893_16">Set_Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_612_24">Men</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_613_24">Items</A>.<b>all</b>'Address);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_897_7">Res</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#614_14">Redefine</A><A HREF="terminal_interface-curses-menus__ads.htm#614_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_612_14">Redefine</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#630_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#630_25">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> Natural
+ <b>function</b> <FONT COLOR=red><A NAME="ref_910_13" HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A></FONT> (<FONT COLOR=red><A NAME="ref_910_25" HREF="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> Natural
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="911_16">Count</A></FONT> (<FONT COLOR=red><A NAME="911_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#911_16">Count</A>, "item_count");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_912_16">Count</A></FONT> (<FONT COLOR=red><A NAME="ref_912_23">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Count</A>, "item_count");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#911_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#630_25">Men</A>));
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#630_13">Item_Count</A><A HREF="terminal_interface-curses-menus__ads.htm#630_13">;</A>
+ <b>return</b> Natural (<A HREF="terminal_interface-curses-menus__adb.htm#ref_912_16">Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_628_25">Men</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#624_13">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#624_20">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#625_20">Index</A> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Item</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_918_13" HREF="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</A></FONT> (<FONT COLOR=red><A NAME="ref_918_20" HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_919_20" HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A></FONT> : Positive) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Item</A>
<b>is</b>
- <b>use</b> <A HREF="terminal_interface-curses-menus__adb.htm#53_12">I_Array</A>;
+ <b>use</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_54_12">I_Array</A>;
- <b>function</b> <FONT COLOR=red><A NAME="922_16">C_Mitems</A></FONT> (<FONT COLOR=red><A NAME="922_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> Pointer;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#922_16">C_Mitems</A>, "menu_items");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_923_16">C_Mitems</A></FONT> (<FONT COLOR=red><A NAME="ref_923_26">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> Pointer;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_923_16">C_Mitems</A>, "menu_items");
- <FONT COLOR=red><A NAME="925_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-menus__adb.htm#922_16">C_Mitems</A> (<A HREF="terminal_interface-curses-menus__ads.htm#624_20">Men</A>);
+ <FONT COLOR=red><A NAME="ref_926_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses-menus__adb.htm#ref_923_16">C_Mitems</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#625_20">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-menus__ads.htm#630_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#624_20">Men</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A> = <b>null</b> <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A> <b>not</b> <b>in</b> 1 .. <A HREF="terminal_interface-curses-menus__ads.htm#ref_628_13">Item_Count</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_622_20">Men</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A> := <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#625_20">Index</A>) - 1);
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#925_7">P</A>.<b>all</b>;
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_623_20">Index</A>) - 1);
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_926_7">P</A>.<b>all</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#624_13">Items</A><A HREF="terminal_interface-curses-menus__ads.htm#624_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_622_13">Items</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#639_13">Create</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A> : <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_937_13" HREF="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_937_21" HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="938_16">Newmenu</A></FONT> (<FONT COLOR=red><A NAME="938_25">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#938_16">Newmenu</A>, "new_menu");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_939_16">Newmenu</A></FONT> (<FONT COLOR=red><A NAME="ref_939_25">Items</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Newmenu</A>, "new_menu");
- <FONT COLOR=red><A NAME="941_7">M</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_942_7">M</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>'Last) = <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>'Last) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-menus__adb.htm#941_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#938_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#639_21">Items</A>.<b>all</b>'Address);
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#941_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#115_4">Menu_Exception</A>;
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_939_16">Newmenu</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_637_21">Items</A>.<b>all</b>'Address);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A> = <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Menu</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_115_4">Menu_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#941_7">M</A>;
+ <b>return</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_942_7">M</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#639_13">Create</A><A HREF="terminal_interface-curses-menus__ads.htm#639_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_637_13">Create</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#646_14">Delete</A><FONT COLOR=red><A NAME="955_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#646_22">Men</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_956_14" HREF="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_956_22" HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="957_16">Free</A></FONT> (<FONT COLOR=red><A NAME="957_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#957_16">Free</A>, "free_menu");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_958_16">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_958_22">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Free</A>, "free_menu");
- <FONT COLOR=red><A NAME="960_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#957_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#646_22">Men</A>);
+ <FONT COLOR=red><A NAME="ref_961_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_958_16">Free</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#960_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#960_7">Res</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_961_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_961_7">Res</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__ads.htm#646_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#646_14">Delete</A><A HREF="terminal_interface-curses-menus__ads.htm#646_14">;</A>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_644_22">Men</A> := <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Menu</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_644_14">Delete</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#661_13">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#661_21">Men</A> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#662_21">Key</A> : <A HREF="terminal_interface-curses__ads.htm#67_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#655_9">Driver_Result</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_970_13" HREF="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_970_21" HREF="terminal_interface-curses-menus__ads.htm#ref_659_21">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_971_21" HREF="terminal_interface-curses-menus__ads.htm#ref_660_21">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Key_Code</A>) <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_653_9">Driver_Result</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="972_16">Driver</A></FONT> (<FONT COLOR=red><A NAME="972_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Menu</A>;
- <FONT COLOR=red><A NAME="973_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#972_16">Driver</A>, "menu_driver");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_973_16">Driver</A></FONT> (<FONT COLOR=red><A NAME="ref_973_24">Men</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_974_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Driver</A>, "menu_driver");
- <FONT COLOR=red><A NAME="976_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#972_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#661_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#662_21">Key</A>));
+ <FONT COLOR=red><A NAME="ref_977_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_78_12">Eti_Error</A> := <A HREF="terminal_interface-curses-menus__adb.htm#ref_973_16">Driver</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_659_21">Men</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_660_21">Key</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#976_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#80_4">E_Ok</A> <b>then</b>
- <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#976_7">R</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#88_4">E_Unknown_Command</A> => <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#657_27">Unknown_Request</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#89_4">E_No_Match</A> => <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#658_27">No_Match</A>;
- <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#92_4">E_Request_Denied</A> |
- <A HREF="terminal_interface-curses-aux__ads.htm#90_4">E_Not_Selectable</A> => <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#656_27">Request_Denied</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_80_4">E_Ok</A> <b>then</b>
+ <b>case</b> <A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A> <b>is</b>
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_88_4">E_Unknown_Command</A> => <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_655_27">Unknown_Request</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_89_4">E_No_Match</A> => <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_656_27">No_Match</A>;
+ <b>when</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_92_4">E_Request_Denied</A> |
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_90_4">E_Not_Selectable</A> => <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_654_27">Request_Denied</A>;
<b>when</b> <b>others</b> =>
- <A HREF="terminal_interface-curses-aux__ads.htm#96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#976_7">R</A>);
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_96_14">Eti_Exception</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_977_7">R</A>);
<b>end</b> <b>case</b>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#655_27">Menu_Ok</A>;
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#661_13">Driver</A><A HREF="terminal_interface-curses-menus__ads.htm#661_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_653_27">Menu_Ok</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_659_13">Driver</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_14">Free</A><FONT COLOR=red><A NAME="991_14"></A></FONT> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#182_20">Free_Items</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_992_14" HREF="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</A></FONT> (<FONT COLOR=red><A NAME="ref_992_20" HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>;
+ <FONT COLOR=red><A NAME="ref_993_20" HREF="terminal_interface-curses-menus__ads.htm#ref_180_20">Free_Items</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="994_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
- (<A HREF="terminal_interface-curses-menus__ads.htm#176_9">Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Item_Array_Access</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_995_17">Release</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Deallocation
+ (<A HREF="terminal_interface-curses-menus__ads.htm#ref_174_9">Item_Array</A>, <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Item_Array_Access</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#182_20">Free_Items</A> <b>then</b>
- <b>for</b> <FONT COLOR=red><A NAME="998_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>'Last - 1) <b>loop</b>
- <b>if</b> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#998_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>) <b>then</b>
- <A HREF="terminal_interface-curses-menus__ads.htm#204_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#998_14">I</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A> /= <b>null</b> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_180_20">Free_Items</A> <b>then</b>
+ <b>for</b> <FONT COLOR=red><A NAME="ref_999_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>'First .. (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>'Last - 1) <b>loop</b>
+ <b>if</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>) /= <A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A> <b>then</b>
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_202_14">Delete</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A> (<A HREF="terminal_interface-curses-menus__adb.htm#ref_999_14">I</A>));
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-menus__adb.htm#994_17">Release</A> (<A HREF="terminal_interface-curses-menus__ads.htm#181_20">IA</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#181_14">Free</A><A HREF="terminal_interface-curses-menus__ads.htm#181_14">;</A>
+ <A HREF="terminal_interface-curses-menus__adb.htm#ref_995_17">Release</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_179_20">IA</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_179_14">Free</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#146_13">Default_Menu_Options</A> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1009_13" HREF="terminal_interface-curses-menus__ads.htm#ref_145_13">Default_Menu_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu_Option_Set</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#353_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Menu</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#146_13">Default_Menu_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#146_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_351_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Menu</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_145_13">Default_Menu_Options</A>;
- <b>function</b> <A HREF="terminal_interface-curses-menus__ads.htm#169_13">Default_Item_Options</A> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item_Option_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1015_13" HREF="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item_Option_Set</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#257_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#61_4">Null_Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#169_13">Default_Item_Options</A><A HREF="terminal_interface-curses-menus__ads.htm#169_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_255_13">Get_Options</A> (<A HREF="terminal_interface-curses-menus__ads.htm#ref_61_4">Null_Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_167_13">Default_Item_Options</A>;
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#48_35">Menus</A><A HREF="terminal_interface-curses-menus__ads.htm#48_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-menus__ads.htm#ref_48_35">Menus</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-menus.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-menus.ads </H1></DIV><HR>
Space : Character <b>renames</b> Ada.Characters.Latin_1.Space;
- <b>type</b> <FONT COLOR=red><A NAME="56_9">Item</A></FONT> <b>is</b> <b>private</b>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_56_9">Item</A></FONT> <b>is</b> <b>private</b>;
<b>type</b> Menu <b>is</b> <b>private</b>;
<FONT COLOR=green><EM>---------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Interface constants --</EM></FONT>
<FONT COLOR=green><EM>---------------------------</EM></FONT>
- <FONT COLOR=red><A NAME="62_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_62_4">Null_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A>;
Null_Menu : <b>constant</b> Menu;
<b>subtype</b> Menu_Request_Code <b>is</b> Key_Code
<b>range</b> (Key_Max + 1) .. (Key_Max + 17);
<FONT COLOR=green><EM>-- The prefix M_ stands for "Menu Request"</EM></FONT>
- <FONT COLOR=red><A NAME="69_4">M_Left_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 1;
- <FONT COLOR=red><A NAME="70_4">M_Right_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 2;
- <FONT COLOR=red><A NAME="71_4">M_Up_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 3;
- <FONT COLOR=red><A NAME="72_4">M_Down_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 4;
- <FONT COLOR=red><A NAME="73_4">M_ScrollUp_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 5;
- <FONT COLOR=red><A NAME="74_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 6;
- <FONT COLOR=red><A NAME="75_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 7;
- <FONT COLOR=red><A NAME="76_4">M_ScrollUp_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 8;
- <FONT COLOR=red><A NAME="77_4">M_First_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 9;
- <FONT COLOR=red><A NAME="78_4">M_Last_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 10;
- <FONT COLOR=red><A NAME="79_4">M_Next_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 11;
- <FONT COLOR=red><A NAME="80_4">M_Previous_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 12;
- <FONT COLOR=red><A NAME="81_4">M_Toggle_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 13;
- <FONT COLOR=red><A NAME="82_4">M_Clear_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 14;
- <FONT COLOR=red><A NAME="83_4">M_Back_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 15;
- <FONT COLOR=red><A NAME="84_4">M_Next_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#205_4">Key_Max</A> + 16;
+ <FONT COLOR=red><A NAME="ref_69_4">M_Left_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 1;
+ <FONT COLOR=red><A NAME="ref_70_4">M_Right_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 2;
+ <FONT COLOR=red><A NAME="ref_71_4">M_Up_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 3;
+ <FONT COLOR=red><A NAME="ref_72_4">M_Down_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 4;
+ <FONT COLOR=red><A NAME="ref_73_4">M_ScrollUp_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 5;
+ <FONT COLOR=red><A NAME="ref_74_4">M_ScrollDown_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 6;
+ <FONT COLOR=red><A NAME="ref_75_4">M_ScrollDown_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 7;
+ <FONT COLOR=red><A NAME="ref_76_4">M_ScrollUp_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 8;
+ <FONT COLOR=red><A NAME="ref_77_4">M_First_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 9;
+ <FONT COLOR=red><A NAME="ref_78_4">M_Last_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 10;
+ <FONT COLOR=red><A NAME="ref_79_4">M_Next_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 11;
+ <FONT COLOR=red><A NAME="ref_80_4">M_Previous_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 12;
+ <FONT COLOR=red><A NAME="ref_81_4">M_Toggle_Item</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 13;
+ <FONT COLOR=red><A NAME="ref_82_4">M_Clear_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 14;
+ <FONT COLOR=red><A NAME="ref_83_4">M_Back_Pattern</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 15;
+ <FONT COLOR=red><A NAME="ref_84_4">M_Next_Match</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_207_4">Key_Max</A> + 16;
M_Previous_Match : <b>constant</b> Menu_Request_Code := Key_Max + 17;
<FONT COLOR=green><EM>-- For those who like the old 'C' names for the request codes</EM></FONT>
- <FONT COLOR=red><A NAME="88_4">REQ_LEFT_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#69_4">M_Left_Item</A>;
- <FONT COLOR=red><A NAME="89_4">REQ_RIGHT_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#70_4">M_Right_Item</A>;
- <FONT COLOR=red><A NAME="90_4">REQ_UP_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#71_4">M_Up_Item</A>;
- <FONT COLOR=red><A NAME="91_4">REQ_DOWN_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#72_4">M_Down_Item</A>;
- <FONT COLOR=red><A NAME="92_4">REQ_SCR_ULINE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#73_4">M_ScrollUp_Line</A>;
- <FONT COLOR=red><A NAME="93_4">REQ_SCR_DLINE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#74_4">M_ScrollDown_Line</A>;
- <FONT COLOR=red><A NAME="94_4">REQ_SCR_DPAGE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#75_4">M_ScrollDown_Page</A>;
- <FONT COLOR=red><A NAME="95_4">REQ_SCR_UPAGE</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#76_4">M_ScrollUp_Page</A>;
- <FONT COLOR=red><A NAME="96_4">REQ_FIRST_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#77_4">M_First_Item</A>;
- <FONT COLOR=red><A NAME="97_4">REQ_LAST_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#78_4">M_Last_Item</A>;
- <FONT COLOR=red><A NAME="98_4">REQ_NEXT_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#79_4">M_Next_Item</A>;
- <FONT COLOR=red><A NAME="99_4">REQ_PREV_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#80_4">M_Previous_Item</A>;
- <FONT COLOR=red><A NAME="100_4">REQ_TOGGLE_ITEM</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#81_4">M_Toggle_Item</A>;
- <FONT COLOR=red><A NAME="101_4">REQ_CLEAR_PATTERN</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#82_4">M_Clear_Pattern</A>;
- <FONT COLOR=red><A NAME="102_4">REQ_BACK_PATTERN</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#83_4">M_Back_Pattern</A>;
- <FONT COLOR=red><A NAME="103_4">REQ_NEXT_MATCH</A></FONT> : <A HREF="terminal_interface-curses-menus__ads.htm#64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#84_4">M_Next_Match</A>;
+ REQ_LEFT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_69_4">M_Left_Item</A>;
+ REQ_RIGHT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_70_4">M_Right_Item</A>;
+ REQ_UP_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_71_4">M_Up_Item</A>;
+ REQ_DOWN_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_72_4">M_Down_Item</A>;
+ REQ_SCR_ULINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_73_4">M_ScrollUp_Line</A>;
+ REQ_SCR_DLINE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_74_4">M_ScrollDown_Line</A>;
+ REQ_SCR_DPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_75_4">M_ScrollDown_Page</A>;
+ REQ_SCR_UPAGE : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_76_4">M_ScrollUp_Page</A>;
+ REQ_FIRST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_77_4">M_First_Item</A>;
+ REQ_LAST_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_78_4">M_Last_Item</A>;
+ REQ_NEXT_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_79_4">M_Next_Item</A>;
+ REQ_PREV_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_80_4">M_Previous_Item</A>;
+ REQ_TOGGLE_ITEM : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_81_4">M_Toggle_Item</A>;
+ REQ_CLEAR_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_82_4">M_Clear_Pattern</A>;
+ REQ_BACK_PATTERN : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_83_4">M_Back_Pattern</A>;
+ REQ_NEXT_MATCH : <A HREF="terminal_interface-curses-menus__ads.htm#ref_64_12">Menu_Request_Code</A> <b>renames</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_84_4">M_Next_Match</A>;
REQ_PREV_MATCH : Menu_Request_Code <b>renames</b> M_Previous_Match;
- <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="106_28">Key</A></FONT> : <b>in</b> Menu_Request_Code;
+ <b>procedure</b> Request_Name (<FONT COLOR=red><A NAME="ref_106_28" HREF="terminal_interface-curses-menus__adb.htm#ref_78_28">Key</A></FONT> : <b>in</b> Menu_Request_Code;
Name : <b>out</b> String);
<b>function</b> Request_Name (Key : Menu_Request_Code) <b>return</b> String;
<b>pragma</b> Warnings (Off);
<b>type</b> Menu_Option_Set <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="123_10">One_Valued</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="124_10">Show_Descriptions</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="125_10">Row_Major_Order</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="126_10">Ignore_Case</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="127_10">Show_Matches</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_123_10">One_Valued</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_124_10">Show_Descriptions</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_125_10">Row_Major_Order</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_126_10">Ignore_Case</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_127_10">Show_Matches</A></FONT> : Boolean;
Non_Cyclic : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#120_9">;</A>
- <b>pragma</b> Pack (Menu_Option_Set);
+ <b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Menu_Option_Set);
<b>for</b> Menu_Option_Set <b>use</b>
<b>type</b> Item_Option_Set <b>is</b>
<b>record</b>
Selectable : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-menus__ads.htm#153_9">;</A>
- <b>pragma</b> Pack (Item_Option_Set);
+ <b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Item_Option_Set);
<b>for</b> Item_Option_Set <b>use</b>
<b>type</b> Item_Array_Access <b>is</b> <b>access</b> Item_Array;
- <b>procedure</b> Free (<FONT COLOR=red><A NAME="182_20">IA</A></FONT> : <b>in</b> <b>out</b> Item_Array_Access;
+ <b>procedure</b> Free (<FONT COLOR=red><A NAME="ref_180_20" HREF="terminal_interface-curses-menus__adb.htm#ref_993_20">IA</A></FONT> : <b>in</b> <b>out</b> Item_Array_Access;
Free_Items : Boolean := False);
<FONT COLOR=green><EM>-- Release the memory for an allocated item array</EM></FONT>
<FONT COLOR=green><EM>-- If Free_Items is True, call Delete() for all the items in</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>function</b> Create (<FONT COLOR=red><A NAME="193_21">Name</A></FONT> : String;
+ <b>function</b> Create (<FONT COLOR=red><A NAME="ref_191_21" HREF="terminal_interface-curses-menus__adb.htm#ref_95_21">Name</A></FONT> : String;
Description : String := "") <b>return</b> Item;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
<FONT COLOR=green><EM>-- Not inlined.</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>function</b> New_Item (<FONT COLOR=red><A NAME="199_23">Name</A></FONT> : String;
- <A HREF="terminal_interface-curses-menus__ads.htm#192_13"> </A> Description : String := "") <b>return</b> Item
+ <b>function</b> New_Item (<FONT COLOR=red><A NAME="ref_197_23">Name</A></FONT> : String;
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_190_13"> </A> Description : String := "") <b>return</b> Item
<b>renames</b> Create;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_new.3x.html">new_item()</A></EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>procedure</b> Set_Value (<FONT COLOR=red><A NAME="214_25">Itm</A></FONT> : <b>in</b> Item;
+ <b>procedure</b> Set_Value (<FONT COLOR=red><A NAME="ref_212_25" HREF="terminal_interface-curses-menus__adb.htm#ref_153_25">Itm</A></FONT> : <b>in</b> Item;
Value : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_value.3x.html">set_item_value()</A></EM></FONT>
<b>pragma</b> Inline (Set_Value);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="238_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item</A>;
+ <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_236_27" HREF="terminal_interface-curses-menus__adb.htm#ref_192_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item</A>;
Options : <b>in</b> Item_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">set_item_opts()</A></EM></FONT>
<FONT COLOR=green><EM>-- An overloaded Set_Options is defined later. Pragma Inline appears there</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
- <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="244_30">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item</A>;
- <FONT COLOR=red><A NAME="245_30">Options</A></FONT> : <b>in</b> Item_Option_Set;
+ <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_242_30" HREF="terminal_interface-curses-menus__adb.htm#ref_208_30">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item</A>;
+ <FONT COLOR=red><A NAME="ref_243_30" HREF="terminal_interface-curses-menus__adb.htm#ref_209_30">Options</A></FONT> : <b>in</b> Item_Option_Set;
On : Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts_on()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: item_opts_off()</EM></FONT>
<FONT COLOR=green><EM>-- Pragma Inline appears there</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
- <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="253_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#153_9">Item</A>;
+ <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_251_27" HREF="terminal_interface-curses-menus__adb.htm#ref_232_27">Itm</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_152_9">Item</A>;
Options : <b>out</b> Item_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_opts.3x.html">item_opts()</A></EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
- <b>procedure</b> Name (<FONT COLOR=red><A NAME="267_20">Itm</A></FONT> : <b>in</b> Item;
+ <b>procedure</b> Name (<FONT COLOR=red><A NAME="ref_265_20" HREF="terminal_interface-curses-menus__adb.htm#ref_251_20">Itm</A></FONT> : <b>in</b> Item;
Name : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_name()</A></EM></FONT>
<b>function</b> Name (Itm : Item) <b>return</b> String;
<b>pragma</b> Inline (Name);
<FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
- <b>procedure</b> Description (<FONT COLOR=red><A NAME="276_27">Itm</A></FONT> : <b>in</b> Item;
+ <b>procedure</b> Description (<FONT COLOR=red><A NAME="ref_274_27" HREF="terminal_interface-curses-menus__adb.htm#ref_268_27">Itm</A></FONT> : <b>in</b> Item;
Description : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_name.3x.html">item_description();</A></EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
- <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="290_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#55_9">Menu</A>;
+ <b>procedure</b> Set_Current (<FONT COLOR=red><A NAME="ref_288_27" HREF="terminal_interface-curses-menus__adb.htm#ref_285_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_55_9">Menu</A>;
Itm : <b>in</b> Item);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_current_item()</A></EM></FONT>
<b>pragma</b> Inline (Set_Current);
<b>pragma</b> Inline (Current);
<FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
- <b>procedure</b> Set_Top_Row (<FONT COLOR=red><A NAME="301_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Menu</A>;
+ <b>procedure</b> Set_Top_Row (<FONT COLOR=red><A NAME="ref_299_27" HREF="terminal_interface-curses-menus__adb.htm#ref_312_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Menu</A>;
Line : <b>in</b> Line_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/mitem_current.3x.html">set_top_row()</A></EM></FONT>
<b>pragma</b> Inline (Set_Top_Row);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_18"#2|</EM></FONT>
- <b>procedure</b> Post (<FONT COLOR=red><A NAME="324_20">Men</A></FONT> : <b>in</b> Menu;
+ <b>procedure</b> Post (<FONT COLOR=red><A NAME="ref_322_20" HREF="terminal_interface-curses-menus__adb.htm#ref_352_20">Men</A></FONT> : <b>in</b> Menu;
Post : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_post.3x.html">post_menu()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: unpost_menu()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
- <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="335_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu</A>;
+ <b>procedure</b> Set_Options (<FONT COLOR=red><A NAME="ref_333_27" HREF="terminal_interface-curses-menus__adb.htm#ref_372_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu</A>;
Options : <b>in</b> Menu_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">set_menu_opts()</A></EM></FONT>
<b>pragma</b> Inline (Set_Options);
<FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT>
- <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="341_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu</A>;
- <FONT COLOR=red><A NAME="342_30">Options</A></FONT> : <b>in</b> Menu_Option_Set;
+ <b>procedure</b> Switch_Options (<FONT COLOR=red><A NAME="ref_339_30" HREF="terminal_interface-curses-menus__adb.htm#ref_388_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_340_30" HREF="terminal_interface-curses-menus__adb.htm#ref_389_30">Options</A></FONT> : <b>in</b> Menu_Option_Set;
On : Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts_on()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: menu_opts_off()</EM></FONT>
<b>pragma</b> Inline (Switch_Options);
<FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT>
- <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="349_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#120_9">Menu</A>;
+ <b>procedure</b> Get_Options (<FONT COLOR=red><A NAME="ref_347_27" HREF="terminal_interface-curses-menus__adb.htm#ref_412_32">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_120_9">Menu</A>;
Options : <b>out</b> Menu_Option_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_opts.3x.html">menu_opts()</A></EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
- <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="363_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Menu</A>;
+ <b>procedure</b> Set_Window (<FONT COLOR=red><A NAME="ref_361_26" HREF="terminal_interface-curses-menus__adb.htm#ref_431_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
Win : <b>in</b> Window);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_win()</A></EM></FONT>
<b>pragma</b> Inline (Set_Window);
<b>pragma</b> Inline (Get_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
- <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="374_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Menu</A>;
+ <b>procedure</b> Set_Sub_Window (<FONT COLOR=red><A NAME="ref_372_30" HREF="terminal_interface-curses-menus__adb.htm#ref_455_30">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Menu</A>;
Win : <b>in</b> Window);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">set_menu_sub()</A></EM></FONT>
<b>pragma</b> Inline (Set_Sub_Window);
<b>pragma</b> Inline (Get_Sub_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
- <b>procedure</b> Scale (<FONT COLOR=red><A NAME="385_21">Men</A></FONT> : <b>in</b> Menu;
- <FONT COLOR=red><A NAME="386_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+ <b>procedure</b> Scale (<FONT COLOR=red><A NAME="ref_383_21" HREF="terminal_interface-curses-menus__adb.htm#ref_479_21">Men</A></FONT> : <b>in</b> Menu;
+ <FONT COLOR=red><A NAME="ref_384_21" HREF="terminal_interface-curses-menus__adb.htm#ref_480_21">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
Columns : <b>out</b> Column_Count);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_win.3x.html">scale_menu()</A></EM></FONT>
<b>pragma</b> Inline (Scale);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_29"#2|</EM></FONT>
- <b>procedure</b> Set_Mark (<FONT COLOR=red><A NAME="405_24">Men</A></FONT> : <b>in</b> Menu;
+ <b>procedure</b> Set_Mark (<FONT COLOR=red><A NAME="ref_403_24" HREF="terminal_interface-curses-menus__adb.htm#ref_511_24">Men</A></FONT> : <b>in</b> Menu;
Mark : <b>in</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">set_menu_mark()</A></EM></FONT>
<b>pragma</b> Inline (Set_Mark);
<FONT COLOR=green><EM>-- #1A NAME="AFU_30"#2|</EM></FONT>
- <b>procedure</b> Mark (<FONT COLOR=red><A NAME="411_20">Men</A></FONT> : <b>in</b> Menu;
+ <b>procedure</b> Mark (<FONT COLOR=red><A NAME="ref_409_20" HREF="terminal_interface-curses-menus__adb.htm#ref_530_20">Men</A></FONT> : <b>in</b> Menu;
Mark : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_mark.3x.html">menu_mark()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
<b>procedure</b> Set_Foreground
- (<FONT COLOR=red><A NAME="426_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
- <FONT COLOR=red><A NAME="427_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_424_7" HREF="terminal_interface-curses-menus__adb.htm#ref_549_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_425_7" HREF="terminal_interface-curses-menus__adb.htm#ref_550_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_fore()</A></EM></FONT>
<b>pragma</b> Inline (Set_Foreground);
<FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT>
- <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="433_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
+ <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_431_26" HREF="terminal_interface-curses-menus__adb.htm#ref_567_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
Fore : <b>out</b> Character_Attribute_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT>
- <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="438_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
- <FONT COLOR=red><A NAME="439_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+ <b>procedure</b> Foreground (<FONT COLOR=red><A NAME="ref_436_26" HREF="terminal_interface-curses-menus__adb.htm#ref_576_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_437_26" HREF="terminal_interface-curses-menus__adb.htm#ref_577_26">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
Color : <b>out</b> Color_Pair);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">menu_fore()</A></EM></FONT>
<b>pragma</b> Inline (Foreground);
<FONT COLOR=green><EM>-- #1A NAME="AFU_34"#2|</EM></FONT>
<b>procedure</b> Set_Background
- (<FONT COLOR=red><A NAME="446_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
- <FONT COLOR=red><A NAME="447_7">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses-menus__adb.htm#ref_588_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses-menus__adb.htm#ref_589_7">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_back()</A></EM></FONT>
<b>pragma</b> Inline (Set_Background);
<FONT COLOR=green><EM>-- #1A NAME="AFU_35"#2|</EM></FONT>
- <b>procedure</b> Background (<FONT COLOR=red><A NAME="453_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
+ <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_451_26" HREF="terminal_interface-curses-menus__adb.htm#ref_606_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
Back : <b>out</b> Character_Attribute_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT>
- <b>procedure</b> Background (<FONT COLOR=red><A NAME="458_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
- <FONT COLOR=red><A NAME="459_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+ <b>procedure</b> Background (<FONT COLOR=red><A NAME="ref_456_26" HREF="terminal_interface-curses-menus__adb.htm#ref_615_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_457_26" HREF="terminal_interface-curses-menus__adb.htm#ref_616_26">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
Color : <b>out</b> Color_Pair);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">menu_back()</A></EM></FONT>
<b>pragma</b> Inline (Background);
<FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
<b>procedure</b> Set_Grey
- (<FONT COLOR=red><A NAME="466_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
- <FONT COLOR=red><A NAME="467_7">Grey</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_464_7" HREF="terminal_interface-curses-menus__adb.htm#ref_626_24">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_465_7" HREF="terminal_interface-curses-menus__adb.htm#ref_627_24">Grey</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_grey()</A></EM></FONT>
<b>pragma</b> Inline (Set_Grey);
<FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
- <b>procedure</b> Grey (<FONT COLOR=red><A NAME="473_20">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
+ <b>procedure</b> Grey (<FONT COLOR=red><A NAME="ref_471_20" HREF="terminal_interface-curses-menus__adb.htm#ref_645_20">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
Grey : <b>out</b> Character_Attribute_Set);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_39"#2|</EM></FONT>
<b>procedure</b> Grey
- (<FONT COLOR=red><A NAME="479_7">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Menu</A>;
- <FONT COLOR=red><A NAME="480_7">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
+ (<FONT COLOR=red><A NAME="ref_477_7" HREF="terminal_interface-curses-menus__adb.htm#ref_654_20">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_478_7" HREF="terminal_interface-curses-menus__adb.htm#ref_655_20">Grey</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
Color : <b>out</b> Color_Pair);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">menu_grey()</A></EM></FONT>
<b>pragma</b> Inline (Grey);
<FONT COLOR=green><EM>-- #1A NAME="AFU_40"#2|</EM></FONT>
- <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="486_33">Men</A></FONT> : <b>in</b> Menu;
+ <b>procedure</b> Set_Pad_Character (<FONT COLOR=red><A NAME="ref_484_33" HREF="terminal_interface-curses-menus__adb.htm#ref_665_33">Men</A></FONT> : <b>in</b> Menu;
Pad : <b>in</b> Character := Space);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">set_menu_pad()</A></EM></FONT>
<b>pragma</b> Inline (Set_Pad_Character);
<FONT COLOR=green><EM>-- #1A NAME="AFU_41"#2|</EM></FONT>
- <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="492_29">Men</A></FONT> : <b>in</b> Menu;
+ <b>procedure</b> Pad_Character (<FONT COLOR=red><A NAME="ref_490_29" HREF="terminal_interface-curses-menus__adb.htm#ref_680_29">Men</A></FONT> : <b>in</b> Menu;
Pad : <b>out</b> Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_attribs.3x.html">menu_pad()</A></EM></FONT>
<b>pragma</b> Inline (Pad_Character);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_42"#2|</EM></FONT>
- <b>procedure</b> Set_Spacing (<FONT COLOR=red><A NAME="502_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Menu</A>;
- <FONT COLOR=red><A NAME="503_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A> := 0;
- <FONT COLOR=red><A NAME="504_27">Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> := 0;
+ <b>procedure</b> Set_Spacing (<FONT COLOR=red><A NAME="ref_500_27" HREF="terminal_interface-curses-menus__adb.htm#ref_689_27">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_501_27" HREF="terminal_interface-curses-menus__adb.htm#ref_690_27">Descr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A> := 0;
+ <FONT COLOR=red><A NAME="ref_502_27" HREF="terminal_interface-curses-menus__adb.htm#ref_691_27">Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A> := 0;
Col : <b>in</b> Column_Position := 0);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">set_menu_spacing()</A></EM></FONT>
<b>pragma</b> Inline (Set_Spacing);
<FONT COLOR=green><EM>-- #1A NAME="AFU_43"#2|</EM></FONT>
- <b>procedure</b> Spacing (<FONT COLOR=red><A NAME="510_23">Men</A></FONT> : <b>in</b> Menu;
- <FONT COLOR=red><A NAME="511_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="512_23">Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>procedure</b> Spacing (<FONT COLOR=red><A NAME="ref_508_23" HREF="terminal_interface-curses-menus__adb.htm#ref_708_23">Men</A></FONT> : <b>in</b> Menu;
+ <FONT COLOR=red><A NAME="ref_509_23" HREF="terminal_interface-curses-menus__adb.htm#ref_709_23">Descr</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_510_23" HREF="terminal_interface-curses-menus__adb.htm#ref_710_23">Row</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Col : <b>out</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_spacing.3x.html">menu_spacing()</A></EM></FONT>
<b>pragma</b> Inline (Spacing);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
- <b>function</b> Set_Pattern (<FONT COLOR=red><A NAME="522_26">Men</A></FONT> : Menu;
+ <b>function</b> Set_Pattern (<FONT COLOR=red><A NAME="ref_520_26" HREF="terminal_interface-curses-menus__adb.htm#ref_733_26">Men</A></FONT> : Menu;
Text : String) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">set_menu_pattern()</A></EM></FONT>
<FONT COLOR=green><EM>-- Return TRUE if the pattern matches, FALSE otherwise</EM></FONT>
<b>pragma</b> Inline (Set_Pattern);
<FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
- <b>procedure</b> Pattern (<FONT COLOR=red><A NAME="529_23">Men</A></FONT> : <b>in</b> Menu;
+ <b>procedure</b> Pattern (<FONT COLOR=red><A NAME="ref_527_23" HREF="terminal_interface-curses-menus__adb.htm#ref_756_23">Men</A></FONT> : <b>in</b> Menu;
Text : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_pattern.3x.html">menu_pattern()</A></EM></FONT>
<b>pragma</b> Inline (Pattern);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_46"#2|</EM></FONT>
- <b>procedure</b> Set_Format (<FONT COLOR=red><A NAME="539_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Menu</A>;
- <FONT COLOR=red><A NAME="540_26">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+ <b>procedure</b> Set_Format (<FONT COLOR=red><A NAME="ref_537_26" HREF="terminal_interface-curses-menus__adb.htm#ref_765_26">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_538_26" HREF="terminal_interface-curses-menus__adb.htm#ref_766_26">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
Columns : <b>in</b> Column_Count);
<FONT COLOR=green><EM>-- Not implemented: 0 argument for Lines or Columns;</EM></FONT>
<FONT COLOR=green><EM>-- instead use Format to get the current sizes</EM></FONT>
<b>pragma</b> Inline (Set_Format);
<FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
- <b>procedure</b> Format (<FONT COLOR=red><A NAME="553_22">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Menu</A>;
- <FONT COLOR=red><A NAME="554_22">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+ <b>procedure</b> Format (<FONT COLOR=red><A NAME="ref_551_22" HREF="terminal_interface-curses-menus__adb.htm#ref_783_22">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Menu</A>;
+ <FONT COLOR=red><A NAME="ref_552_22" HREF="terminal_interface-curses-menus__adb.htm#ref_784_22">Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
Columns : <b>out</b> Column_Count);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_format.3x.html">menu_format()</A></EM></FONT>
<b>pragma</b> Inline (Format);
<b>pragma</b> Convention (C, Menu_Hook_Function);
<FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
- <b>procedure</b> Set_Item_Init_Hook (<FONT COLOR=red><A NAME="567_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+ <b>procedure</b> Set_Item_Init_Hook (<FONT COLOR=red><A NAME="ref_565_34" HREF="terminal_interface-curses-menus__adb.htm#ref_803_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
Proc : <b>in</b> Menu_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_init()</A></EM></FONT>
<b>pragma</b> Inline (Set_Item_Init_Hook);
<FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT>
- <b>procedure</b> Set_Item_Term_Hook (<FONT COLOR=red><A NAME="573_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+ <b>procedure</b> Set_Item_Term_Hook (<FONT COLOR=red><A NAME="ref_571_34" HREF="terminal_interface-curses-menus__adb.htm#ref_817_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
Proc : <b>in</b> Menu_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_item_term()</A></EM></FONT>
<b>pragma</b> Inline (Set_Item_Term_Hook);
<FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT>
- <b>procedure</b> Set_Menu_Init_Hook (<FONT COLOR=red><A NAME="579_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+ <b>procedure</b> Set_Menu_Init_Hook (<FONT COLOR=red><A NAME="ref_577_34" HREF="terminal_interface-curses-menus__adb.htm#ref_831_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
Proc : <b>in</b> Menu_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_init()</A></EM></FONT>
<b>pragma</b> Inline (Set_Menu_Init_Hook);
<FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT>
- <b>procedure</b> Set_Menu_Term_Hook (<FONT COLOR=red><A NAME="585_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#562_9">Menu</A>;
+ <b>procedure</b> Set_Menu_Term_Hook (<FONT COLOR=red><A NAME="ref_583_34" HREF="terminal_interface-curses-menus__adb.htm#ref_845_34">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_560_9">Menu</A>;
Proc : <b>in</b> Menu_Hook_Function);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_hook.3x.html">set_menu_term()</A></EM></FONT>
<b>pragma</b> Inline (Set_Menu_Term_Hook);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
- <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="615_24">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Menu</A>;
+ <b>procedure</b> Redefine (<FONT COLOR=red><A NAME="ref_613_24" HREF="terminal_interface-curses-menus__adb.htm#ref_891_24">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Menu</A>;
Items : <b>in</b> Item_Array_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">set_menu_items()</A></EM></FONT>
<b>pragma</b> Inline (Redefine);
- <b>procedure</b> Set_Items (<FONT COLOR=red><A NAME="620_25">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#179_9">Menu</A>;
- <A HREF="terminal_interface-curses-menus__ads.htm#619_14"> </A> Items : <b>in</b> Item_Array_Access) <b>renames</b> Redefine;
+ <b>procedure</b> Set_Items (<FONT COLOR=red><A NAME="ref_618_25">Men</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_177_9">Menu</A>;
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_617_14"> </A> Items : <b>in</b> Item_Array_Access) <b>renames</b> Redefine;
<b>pragma</b> Inline (Set_Items);
<FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
- <b>function</b> Items (<FONT COLOR=red><A NAME="625_20">Men</A></FONT> : Menu;
+ <b>function</b> Items (<FONT COLOR=red><A NAME="ref_623_20" HREF="terminal_interface-curses-menus__adb.htm#ref_919_20">Men</A></FONT> : Menu;
Index : Positive) <b>return</b> Item;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_items.3x.html">menu_items()</A></EM></FONT>
<b>pragma</b> Inline (Items);
<FONT COLOR=green><EM>-- | Man page <A HREF="../man/menu_driver.3x.html">menu_driver.3x</A></EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
- <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="656_27">Menu_Ok</A></FONT>,
- <FONT COLOR=red><A NAME="657_27">Request_Denied</A></FONT>,
- <FONT COLOR=red><A NAME="658_27">Unknown_Request</A></FONT>,
+ <b>type</b> Driver_Result <b>is</b> (<FONT COLOR=red><A NAME="ref_654_27">Menu_Ok</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_655_27">Request_Denied</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_656_27">Unknown_Request</A></FONT>,
No_Match);
<FONT COLOR=green><EM>-- #1A NAME="AFU_61"#2|</EM></FONT>
- <b>function</b> Driver (<FONT COLOR=red><A NAME="662_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#67_9">Menu</A>;
+ <b>function</b> Driver (<FONT COLOR=red><A NAME="ref_660_21" HREF="terminal_interface-curses-menus__adb.htm#ref_971_21">Men</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_68_9">Menu</A>;
Key : Key_Code) <b>return</b> Driver_Result;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/menu_driver.3x.html">menu_driver()</A></EM></FONT>
<FONT COLOR=green><EM>-- Driver is not inlined</EM></FONT>
<FONT COLOR=green><EM>-- Not Implemented: menu_request_name, menu_request_by_name</EM></FONT>
<FONT COLOR=green><EM>-------------------------------------------------------------------------------</EM></FONT>
<b>private</b>
- <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <b>type</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
<b>type</b> Menu <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <A HREF="terminal_interface-curses-menus__ads.htm#62_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#56_9">Item</A> := 0;
+ <A HREF="terminal_interface-curses-menus__ads.htm#ref_62_4">Null_Item</A> : <b>constant</b> <A HREF="terminal_interface-curses-menus__ads.htm#ref_56_9">Item</A> := 0;
Null_Menu : <b>constant</b> Menu := 0;
<b>end</b> Terminal_Interface.Curses.Menus;
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-mouse.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.18 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.21 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> System;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#47_35">Mouse</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_48_40" HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A></FONT> <b>is</b>
<b>use</b> <b>type</b> System.Bit_Order;
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#97_13">Has_Mouse</A> <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_98_13">Has_Mouse</A></FONT> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="54_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#54_16">Mouse_Avail</A>, "_nc_has_mouse");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_55_16">Mouse_Avail</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_55_16">Mouse_Avail</A>, "_nc_has_mouse");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#760_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#202_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#54_16">Mouse_Avail</A> /= 0 <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_204_4">Key_Mouse</A>) <b>or</b> <b>else</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_55_16">Mouse_Avail</A> /= 0 <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#97_13">Has_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#97_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_98_13">Has_Mouse</A>;
- <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#132_13">Get_Mouse</A> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_65_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_133_13">Get_Mouse</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="66_12">Event_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_67_12">Event_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
- <b>function</b> <FONT COLOR=red><A NAME="68_16">Getmouse</A></FONT> (<FONT COLOR=red><A NAME="68_26">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__adb.htm#66_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#68_16">Getmouse</A>, "getmouse");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">Getmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_69_26">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__adb.htm#ref_67_12">Event_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_16">Getmouse</A>, "getmouse");
- <FONT COLOR=red><A NAME="71_7">Event</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>;
+ <FONT COLOR=red><A NAME="ref_72_7">Event</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#68_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#71_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_69_16">Getmouse</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_72_7">Event</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#71_7">Event</A>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#132_13">Get_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#132_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_72_7">Event</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_133_13">Get_Mouse</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#100_14">Register_Reportable_Event</A><FONT COLOR=red><A NAME="79_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#102_7">State</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_80_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_80_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+ <FONT COLOR=red><A NAME="ref_81_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">State</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>;
+ <FONT COLOR=red><A NAME="ref_82_41" HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="83_7">Button_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A>);
- <FONT COLOR=red><A NAME="84_7">State_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#102_7">State</A>);
+ <FONT COLOR=red><A NAME="ref_84_7">Button_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A>);
+ <FONT COLOR=red><A NAME="ref_85_7">State_Nr</A></FONT> : <b>constant</b> Natural := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>'Pos (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">State</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#76_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#102_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#79_26">Pressed</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_77_12">Modifier_Keys</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_103_7">State</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_80_26">Pressed</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#101_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#75_12">Real_Buttons</A> <b>then</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#83_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#84_7">State_Nr</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_102_7">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_12">Real_Buttons</A> <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> <b>or</b> ((2 ** (6 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_84_7">Button_Nr</A>)) ** <A HREF="terminal_interface-curses-mouse__adb.htm#ref_85_7">State_Nr</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#103_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#216_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#83_7">Button_Nr</A> - 4));
+ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_104_7">Mask</A> <b>or</b> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_216_4">BUTTON_CTRL</A> ** (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_84_7">Button_Nr</A> - 4));
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#100_14">Register_Reportable_Event</A><A HREF="terminal_interface-curses-mouse__ads.htm#100_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#109_14">Register_Reportable_Events</A><FONT COLOR=red><A NAME="97_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#110_7">Button</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#111_7">State</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#84_9">Button_States</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#112_7">Mask</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_98_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_110_14">Register_Reportable_Events</A></FONT> (<FONT COLOR=red><A NAME="ref_98_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_111_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+ <FONT COLOR=red><A NAME="ref_99_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_112_7">State</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>;
+ <FONT COLOR=red><A NAME="ref_100_42" HREF="terminal_interface-curses-mouse__ads.htm#ref_113_7">Mask</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>)
<b>is</b>
<b>begin</b>
- <b>for</b> <FONT COLOR=red><A NAME="102_11">S</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#84_9">Button_States</A>'<b>Range</b> <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#111_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#102_11">S</A>) <b>then</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#100_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#110_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#102_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#112_7">Mask</A>);
+ <b>for</b> <FONT COLOR=red><A NAME="ref_103_11">S</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Button_States</A>'<b>Range</b> <b>loop</b>
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_112_7">State</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_103_11">S</A>) <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_101_14">Register_Reportable_Event</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_111_7">Button</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_103_11">S</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_113_7">Mask</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#109_14">Register_Reportable_Events</A><A HREF="terminal_interface-curses-mouse__ads.htm#109_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_110_14">Register_Reportable_Events</A>;
- <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#122_13">Start_Mouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#122_26">Mask</A> : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#65_4">All_Events</A>)
- <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_110_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_110_26" HREF="terminal_interface-curses-mouse__ads.htm#ref_123_26">Mask</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">All_Events</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="112_16">MMask</A></FONT> (<FONT COLOR=red><A NAME="112_23">M</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
- <FONT COLOR=red><A NAME="113_23">O</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#112_16">MMask</A>, "mousemask");
- <FONT COLOR=red><A NAME="115_7">R</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
- <FONT COLOR=red><A NAME="116_7">Old</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_113_16">MMask</A></FONT> (<FONT COLOR=red><A NAME="ref_113_23">M</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+ <FONT COLOR=red><A NAME="ref_114_23">O</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>) <b>return</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_16">MMask</A>, "mousemask");
+ <FONT COLOR=red><A NAME="ref_116_7">R</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+ <FONT COLOR=red><A NAME="ref_117_7">Old</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#115_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#112_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#122_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#116_7">Old</A>'<b>Access</b>);
- <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#116_7">Old</A>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#122_13">Start_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#122_13">;</A>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_113_16">MMask</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_26">Mask</A>, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>'<b>Access</b>);
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_116_7">R</A> = <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_117_7">Old</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_123_13">Start_Mouse</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#127_14">End_Mouse</A><FONT COLOR=red><A NAME="122_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#127_25">Mask</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#64_4">No_Events</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_126_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_126_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_128_25">Mask</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A>)
<b>is</b>
<b>begin</b>
- <b>null</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#127_14">End_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#127_14">;</A>
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_25">Mask</A> /= <A HREF="terminal_interface-curses-mouse__ads.htm#ref_65_4">No_Events</A> <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_128_14">End_Mouse</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-mouse__adb.htm#132_14">Dispatch_Event</A><FONT COLOR=red><A NAME="128_14"></A></FONT> (<FONT COLOR=red><A NAME="128_30">Mask</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
- <FONT COLOR=red><A NAME="129_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
- <FONT COLOR=red><A NAME="130_30">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_134_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_138_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_134_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_138_30">Mask</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+ <FONT COLOR=red><A NAME="ref_135_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_139_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+ <FONT COLOR=red><A NAME="ref_136_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_140_30">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-mouse__adb.htm#128_14">Dispatch_Event</A><FONT COLOR=red><A NAME="132_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
- <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">State</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>) <b>is</b>
- <FONT COLOR=red><A NAME="135_7">L</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_138_14" HREF="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_138_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
+ <FONT COLOR=red><A NAME="ref_139_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+ <FONT COLOR=red><A NAME="ref_140_30" HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>) <b>is</b>
+ <FONT COLOR=red><A NAME="ref_141_7">L</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#73_26">Alt</A>; <FONT COLOR=green><EM>-- preset to non real button;</EM></FONT>
- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#221_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#67_26">Left</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#222_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#68_26">Middle</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#223_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#69_26">Right</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#224_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#70_26">Button4</A>;
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_74_26">Alt</A>; <FONT COLOR=green><EM>-- preset to non real button;</EM></FONT>
+ <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_221_4">BUTTON1_EVENTS</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_26">Left</A>;
+ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_222_4">BUTTON2_EVENTS</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_69_26">Middle</A>;
+ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_223_4">BUTTON3_EVENTS</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_70_26">Right</A>;
+ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_224_4">BUTTON4_EVENTS</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_71_26">Button4</A>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#75_12">Real_Buttons</A> <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A>));
- <b>for</b> <FONT COLOR=red><A NAME="149_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>'<b>Range</b> <b>loop</b>
- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#149_14">I</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_76_12">Real_Buttons</A> <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A> := 2 ** (6 * <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>'Pos (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A>));
+ <b>for</b> <FONT COLOR=red><A NAME="ref_155_14">I</A></FONT> <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>'<b>Range</b> <b>loop</b>
+ <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</A> := <A HREF="terminal_interface-curses-mouse__adb.htm#ref_155_14">I</A>;
<b>exit</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A> := 2 * <A HREF="terminal_interface-curses-mouse__adb.htm#135_7">L</A>;
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A> := 2 * <A HREF="terminal_interface-curses-mouse__adb.htm#ref_141_7">L</A>;
<b>end</b> <b>loop</b>;
<b>else</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#130_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#79_26">Pressed</A>;
- <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#216_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#71_26">Control</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#217_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#72_26">Shift</A>;
- <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#128_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#218_4">BUTTON_ALT</A>) /= 0 <b>then</b>
- <A HREF="terminal_interface-curses-mouse__adb.htm#129_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#73_26">Alt</A>;
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_136_30">State</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_80_26">Pressed</A>;
+ <b>if</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_216_4">BUTTON_CTRL</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Control</A>;
+ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_217_4">BUTTON_SHIFT</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_73_26">Shift</A>;
+ <b>elsif</b> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_30">Mask</A> <b>and</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_218_4">BUTTON_ALT</A>) /= 0 <b>then</b>
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_135_30">Button</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_74_26">Alt</A>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__adb.htm#128_14">Dispatch_Event</A><A HREF="terminal_interface-curses-mouse__adb.htm#128_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#136_14">Get_Event</A><FONT COLOR=red><A NAME="168_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Y</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#138_25">X</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#139_25">Button</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#140_25">State</A> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Button_State</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_174_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_137_14">Get_Event</A></FONT> (<FONT COLOR=red><A NAME="ref_174_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">Event</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>;
+ <FONT COLOR=red><A NAME="ref_175_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_138_25">Y</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_176_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_139_25">X</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_177_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_140_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A>;
+ <FONT COLOR=red><A NAME="ref_178_25" HREF="terminal_interface-curses-mouse__ads.htm#ref_141_25">State</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Button_State</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="174_7">Mask</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#173_10">Bstate</A>;
+ <FONT COLOR=red><A NAME="ref_180_7">Mask</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_174_10">Bstate</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-mouse__ads.htm#138_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_10">X</A>);
- <A HREF="terminal_interface-curses-mouse__ads.htm#137_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#136_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_13">Y</A>);
- <A HREF="terminal_interface-curses-mouse__adb.htm#128_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#174_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#139_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#140_25">State</A>);
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#136_14">Get_Event</A><A HREF="terminal_interface-curses-mouse__ads.htm#136_14">;</A>
+ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_139_25">X</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_10">X</A>);
+ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_138_25">Y</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_25">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_13">Y</A>);
+ <A HREF="terminal_interface-curses-mouse__adb.htm#ref_134_14">Dispatch_Event</A> (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_180_7">Mask</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_140_25">Button</A>, <A HREF="terminal_interface-curses-mouse__ads.htm#ref_141_25">State</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_137_14">Get_Event</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-mouse__ads.htm#148_14">Unget_Mouse</A><FONT COLOR=red><A NAME="181_14"></A></FONT> (<A HREF="terminal_interface-curses-mouse__ads.htm#148_27">Event</A> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_187_14" HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A></FONT> (<FONT COLOR=red><A NAME="ref_187_27" HREF="terminal_interface-curses-mouse__ads.htm#ref_149_27">Event</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="183_16">Ungetmouse</A></FONT> (<FONT COLOR=red><A NAME="183_28">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#183_16">Ungetmouse</A>, "ungetmouse");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_189_16">Ungetmouse</A></FONT> (<FONT COLOR=red><A NAME="ref_189_28">Ev</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_189_16">Ungetmouse</A>, "ungetmouse");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#183_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#148_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_189_16">Ungetmouse</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_27">Event</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#148_14">Unget_Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#148_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_149_14">Unget_Mouse</A>;
- <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#153_13">Enclosed_In_Window</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#153_33">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Event</A> : <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Mouse_Event</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_197_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_197_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_198_33" HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Mouse_Event</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="194_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="194_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="194_40">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="194_51">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#194_16">Wenclose</A>, "wenclose");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_200_16">Wenclose</A></FONT> (<FONT COLOR=red><A NAME="ref_200_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_200_40">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_200_51">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Wenclose</A>, "wenclose");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#194_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#153_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#154_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#171_10">X</A>))
- = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-mouse__adb.htm#ref_200_16">Wenclose</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_33">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_13">Y</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_155_33">Event</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_172_10">X</A>))
+ = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#153_13">Enclosed_In_Window</A><A HREF="terminal_interface-curses-mouse__ads.htm#153_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_154_13">Enclosed_In_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses-mouse__ads.htm#160_13">Mouse_Interval</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#160_29">Msec</A> : Natural := 200) <b>return</b> Natural
+ <b>function</b> <FONT COLOR=red><A NAME="ref_212_13" HREF="terminal_interface-curses-mouse__ads.htm#ref_161_13">Mouse_Interval</A></FONT> (<FONT COLOR=red><A NAME="ref_212_29" HREF="terminal_interface-curses-mouse__ads.htm#ref_161_29">Msec</A></FONT> : Natural := 200) <b>return</b> Natural
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="208_16">Mouseinterval</A></FONT> (<FONT COLOR=red><A NAME="208_31">Msec</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#208_16">Mouseinterval</A>, "mouseinterval");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_214_16">Mouseinterval</A></FONT> (<FONT COLOR=red><A NAME="ref_214_31">Msec</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-mouse__adb.htm#ref_214_16">Mouseinterval</A>, "mouseinterval");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#208_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#160_29">Msec</A>)));
- <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#160_13">Mouse_Interval</A><A HREF="terminal_interface-curses-mouse__ads.htm#160_13">;</A>
+ <b>return</b> Natural (<A HREF="terminal_interface-curses-mouse__adb.htm#ref_214_16">Mouseinterval</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-mouse__ads.htm#ref_161_29">Msec</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_161_13">Mouse_Interval</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#47_35">Mouse</A><A HREF="terminal_interface-curses-mouse__ads.htm#47_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-mouse__ads.htm#ref_48_35">Mouse</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-mouse.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-mouse.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.22 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.25 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- mouse binding.</EM></FONT>
<FONT COLOR=green><EM>-- REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event</EM></FONT>
<FONT COLOR=green><EM>-- or Start_Mouse)</EM></FONT>
<b>type</b> Event_Mask <b>is</b> <b>private</b>;
- <FONT COLOR=red><A NAME="65_4">No_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A>;
+ <FONT COLOR=red><A NAME="ref_66_4">No_Events</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A>;
All_Events : <b>constant</b> Event_Mask;
- <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="68_26">Left</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
- <FONT COLOR=red><A NAME="69_26">Middle</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
- <FONT COLOR=red><A NAME="70_26">Right</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
- <FONT COLOR=red><A NAME="71_26">Button4</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
- <FONT COLOR=red><A NAME="72_26">Control</A></FONT>, <FONT COLOR=green><EM>-- Control Key</EM></FONT>
- <FONT COLOR=red><A NAME="73_26">Shift</A></FONT>, <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
+ <b>type</b> Mouse_Button <b>is</b> (<FONT COLOR=red><A NAME="ref_69_26">Left</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 1</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_70_26">Middle</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 2</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_71_26">Right</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 3</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_72_26">Button4</A></FONT>, <FONT COLOR=green><EM>-- aka: Button 4</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_73_26">Control</A></FONT>, <FONT COLOR=green><EM>-- Control Key</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_74_26">Shift</A></FONT>, <FONT COLOR=green><EM>-- Shift Key</EM></FONT>
Alt); <FONT COLOR=green><EM>-- ALT Key</EM></FONT>
- <b>subtype</b> <FONT COLOR=red><A NAME="76_12">Real_Buttons</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#71_26">Left</A> .. Button4;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_77_12">Real_Buttons</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Mouse_Button</A> <b>range</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_72_26">Left</A> .. Button4;
<b>subtype</b> Modifier_Keys <b>is</b> Mouse_Button <b>range</b> Control .. Alt;
- <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="79_26">Released</A></FONT>,
- <FONT COLOR=red><A NAME="80_26">Pressed</A></FONT>,
- <FONT COLOR=red><A NAME="81_26">Clicked</A></FONT>,
- <FONT COLOR=red><A NAME="82_26">Double_Clicked</A></FONT>,
+ <b>type</b> Button_State <b>is</b> (<FONT COLOR=red><A NAME="ref_80_26">Released</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_81_26">Pressed</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_82_26">Clicked</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_83_26">Double_Clicked</A></FONT>,
Triple_Clicked);
<b>type</b> Button_States <b>is</b> <b>array</b> (Button_State) <b>of</b> Boolean;
<b>pragma</b> Pack (Button_States);
All_Clicks : <b>constant</b> Button_States := (Clicked .. Triple_Clicked => True,
- <FONT COLOR=red><A NAME="89_4"> </A></FONT> <A HREF="terminal_interface-curses-mouse__ads.htm#84_9"> </A> <b>others</b> => False);
+ <FONT COLOR=red><A NAME="ref_90_4"> </A></FONT> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9"> </A> <b>others</b> => False);
All_States : <b>constant</b> Button_States := (<b>others</b> => True);
<b>type</b> Mouse_Event <b>is</b> <b>private</b>;
<FONT COLOR=green><EM>-- Return true if a mouse device is supported, false otherwise.</EM></FONT>
<b>procedure</b> Register_Reportable_Event
- (<FONT COLOR=red><A NAME="102_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Mouse_Button</A>;
- <FONT COLOR=red><A NAME="103_7">State</A></FONT> : <b>in</b> Button_State;
+ (<FONT COLOR=red><A NAME="ref_103_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_81_41">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
+ <FONT COLOR=red><A NAME="ref_104_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_82_41">State</A></FONT> : <b>in</b> Button_State;
Mask : <b>in</b> <b>out</b> Event_Mask);
<FONT COLOR=green><EM>-- Stores the event described by the button and the state in the mask.</EM></FONT>
<FONT COLOR=green><EM>-- Before you call this the first time, you should init the mask</EM></FONT>
<b>pragma</b> Inline (Register_Reportable_Event);
<b>procedure</b> Register_Reportable_Events
- (<FONT COLOR=red><A NAME="111_7">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#84_9">Mouse_Button</A>;
- <FONT COLOR=red><A NAME="112_7">State</A></FONT> : <b>in</b> Button_States;
+ (<FONT COLOR=red><A NAME="ref_112_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_99_42">Button</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_85_9">Mouse_Button</A>;
+ <FONT COLOR=red><A NAME="ref_113_7" HREF="terminal_interface-curses-mouse__adb.htm#ref_100_42">State</A></FONT> : <b>in</b> Button_States;
Mask : <b>in</b> <b>out</b> Event_Mask);
<FONT COLOR=green><EM>-- Register all events described by the Button and the State bitmap.</EM></FONT>
<FONT COLOR=green><EM>-- Before you call this the first time, you should init the mask</EM></FONT>
<FONT COLOR=green><EM>-- old mask, that means the event mask value before this call.</EM></FONT>
<FONT COLOR=green><EM>-- Not Implemented: The library version</EM></FONT>
<FONT COLOR=green><EM>-- returns a Mouse_Mask that tells which events are reported.</EM></FONT>
- <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := All_Events)
+ <b>function</b> Start_Mouse (Mask : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := All_Events)
<b>return</b> Event_Mask;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">mousemask()</A></EM></FONT>
<b>pragma</b> Inline (Start_Mouse);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">getmouse()</A></EM></FONT>
<b>pragma</b> Inline (Get_Mouse);
- <b>procedure</b> Get_Event (<FONT COLOR=red><A NAME="137_25">Event</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Mouse_Event</A>;
- <FONT COLOR=red><A NAME="138_25">Y</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="139_25">X</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#67_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="140_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#78_9">Mouse_Button</A>;
+ <b>procedure</b> Get_Event (<FONT COLOR=red><A NAME="ref_138_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_175_25">Event</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Mouse_Event</A>;
+ <FONT COLOR=red><A NAME="ref_139_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_176_25">Y</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_140_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_177_25">X</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_68_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_141_25" HREF="terminal_interface-curses-mouse__adb.htm#ref_178_25">Button</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_79_9">Mouse_Button</A>;
State : <b>out</b> Button_State);
<FONT COLOR=green><EM>-- !!! Warning: X and Y are screen coordinates. Due to ripped of lines they</EM></FONT>
<FONT COLOR=green><EM>-- may not be identical to window coordinates.</EM></FONT>
<b>pragma</b> Inline (Unget_Mouse);
<FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
- <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="154_33">Win</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#91_9">Window</A> := Standard_Window;
+ <b>function</b> Enclosed_In_Window (<FONT COLOR=red><A NAME="ref_155_33" HREF="terminal_interface-curses-mouse__adb.htm#ref_198_33">Win</A></FONT> : <A HREF="terminal_interface-curses-mouse__ads.htm#ref_92_9">Window</A> := Standard_Window;
Event : Mouse_Event) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_mouse.3x.html">wenclose()</A></EM></FONT>
<FONT COLOR=green><EM>-- But : use event instead of screen coordinates.</EM></FONT>
<b>type</b> Mouse_Event <b>is</b>
<b>record</b>
- Id : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short'First) ..
- <FONT COLOR=red><A NAME="171_10"> </A></FONT> <FONT COLOR=red><A NAME="171_13"> </A></FONT> <FONT COLOR=red><A NAME="171_16"> </A></FONT> Integer (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short'Last);
- X, Y, Z : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int'First) ..
- <FONT COLOR=red><A NAME="173_10"> </A></FONT> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9"> </A> Integer (Interfaces.C.int'Last);
- Bstate <A HREF="terminal_interface-curses-mouse__ads.htm#91_9"> </A>: Event_Mask;
+ Id : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short'First) ..
+ <FONT COLOR=red><A NAME="ref_172_10"> </A></FONT> <FONT COLOR=red><A NAME="ref_172_13"> </A></FONT> <FONT COLOR=red><A NAME="ref_172_16"> </A></FONT> Integer (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.short'Last);
+ X, Y, Z : Integer <b>range</b> Integer (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int'First) ..
+ <FONT COLOR=red><A NAME="ref_174_10"> </A></FONT> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9"> </A> Integer (Interfaces.C.int'Last);
+ Bstate : Event_Mask;
<b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Mouse_Event);
- <b>pragma</b> Pack (Mouse_Event);
<b>for</b> Mouse_Event <b>use</b>
<b>record</b>
Generation_Bit_Order : <b>constant</b> System.Bit_Order := System.Low_Order_First;
<FONT COLOR=green><EM>-- This constant may be different on your system.</EM></FONT>
- <FONT COLOR=red><A NAME="193_4">BUTTON1_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000001#;
- <FONT COLOR=red><A NAME="194_4">BUTTON1_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000002#;
- <FONT COLOR=red><A NAME="195_4">BUTTON1_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000004#;
- <FONT COLOR=red><A NAME="196_4">BUTTON1_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000010#;
- <FONT COLOR=red><A NAME="197_4">BUTTON1_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000020#;
- <FONT COLOR=red><A NAME="198_4">BUTTON1_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000040#;
- <FONT COLOR=red><A NAME="199_4">BUTTON2_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000100#;
- <FONT COLOR=red><A NAME="200_4">BUTTON2_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000200#;
- <FONT COLOR=red><A NAME="201_4">BUTTON2_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000400#;
- <FONT COLOR=red><A NAME="202_4">BUTTON2_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000001000#;
- <FONT COLOR=red><A NAME="203_4">BUTTON2_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000002000#;
- <FONT COLOR=red><A NAME="204_4">BUTTON2_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000004000#;
- <FONT COLOR=red><A NAME="205_4">BUTTON3_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000010000#;
- <FONT COLOR=red><A NAME="206_4">BUTTON3_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000020000#;
- <FONT COLOR=red><A NAME="207_4">BUTTON3_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000040000#;
- <FONT COLOR=red><A NAME="208_4">BUTTON3_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000100000#;
- <FONT COLOR=red><A NAME="209_4">BUTTON3_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000200000#;
- <FONT COLOR=red><A NAME="210_4">BUTTON3_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000400000#;
- <FONT COLOR=red><A NAME="211_4">BUTTON4_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00001000000#;
- <FONT COLOR=red><A NAME="212_4">BUTTON4_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00002000000#;
- <FONT COLOR=red><A NAME="213_4">BUTTON4_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00004000000#;
- <FONT COLOR=red><A NAME="214_4">BUTTON4_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00010000000#;
- <FONT COLOR=red><A NAME="215_4">BUTTON4_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00020000000#;
- <FONT COLOR=red><A NAME="216_4">BUTTON4_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00040000000#;
- <FONT COLOR=red><A NAME="217_4">BUTTON_CTRL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00100000000#;
- <FONT COLOR=red><A NAME="218_4">BUTTON_SHIFT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00200000000#;
- <FONT COLOR=red><A NAME="219_4">BUTTON_ALT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00400000000#;
- <FONT COLOR=red><A NAME="220_4">REPORT_MOUSE_POSITION</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#01000000000#;
- <FONT COLOR=red><A NAME="221_4">ALL_MOUSE_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00777777777#;
- <FONT COLOR=red><A NAME="222_4">BUTTON1_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000000077#;
- <FONT COLOR=red><A NAME="223_4">BUTTON2_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000007700#;
- <FONT COLOR=red><A NAME="224_4">BUTTON3_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := 8#00000770000#;
+ <FONT COLOR=red><A NAME="ref_193_4">BUTTON1_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000001#;
+ <FONT COLOR=red><A NAME="ref_194_4">BUTTON1_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000002#;
+ <FONT COLOR=red><A NAME="ref_195_4">BUTTON1_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000004#;
+ <FONT COLOR=red><A NAME="ref_196_4">BUTTON1_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000010#;
+ <FONT COLOR=red><A NAME="ref_197_4">BUTTON1_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000020#;
+ <FONT COLOR=red><A NAME="ref_198_4">BUTTON1_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000040#;
+ <FONT COLOR=red><A NAME="ref_199_4">BUTTON2_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000100#;
+ <FONT COLOR=red><A NAME="ref_200_4">BUTTON2_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000200#;
+ <FONT COLOR=red><A NAME="ref_201_4">BUTTON2_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000400#;
+ <FONT COLOR=red><A NAME="ref_202_4">BUTTON2_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000001000#;
+ <FONT COLOR=red><A NAME="ref_203_4">BUTTON2_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000002000#;
+ <FONT COLOR=red><A NAME="ref_204_4">BUTTON2_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000004000#;
+ <FONT COLOR=red><A NAME="ref_205_4">BUTTON3_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000010000#;
+ <FONT COLOR=red><A NAME="ref_206_4">BUTTON3_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000020000#;
+ <FONT COLOR=red><A NAME="ref_207_4">BUTTON3_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000040000#;
+ <FONT COLOR=red><A NAME="ref_208_4">BUTTON3_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000100000#;
+ <FONT COLOR=red><A NAME="ref_209_4">BUTTON3_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000200000#;
+ <FONT COLOR=red><A NAME="ref_210_4">BUTTON3_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000400000#;
+ <FONT COLOR=red><A NAME="ref_211_4">BUTTON4_RELEASED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00001000000#;
+ <FONT COLOR=red><A NAME="ref_212_4">BUTTON4_PRESSED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00002000000#;
+ <FONT COLOR=red><A NAME="ref_213_4">BUTTON4_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00004000000#;
+ <FONT COLOR=red><A NAME="ref_214_4">BUTTON4_DOUBLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00010000000#;
+ <FONT COLOR=red><A NAME="ref_215_4">BUTTON4_TRIPLE_CLICKED</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00020000000#;
+ <FONT COLOR=red><A NAME="ref_216_4">BUTTON4_RESERVED_EVENT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00040000000#;
+ <FONT COLOR=red><A NAME="ref_217_4">BUTTON_CTRL</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00100000000#;
+ <FONT COLOR=red><A NAME="ref_218_4">BUTTON_SHIFT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00200000000#;
+ <FONT COLOR=red><A NAME="ref_219_4">BUTTON_ALT</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00400000000#;
+ <FONT COLOR=red><A NAME="ref_220_4">REPORT_MOUSE_POSITION</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#01000000000#;
+ <FONT COLOR=red><A NAME="ref_221_4">ALL_MOUSE_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00777777777#;
+ <FONT COLOR=red><A NAME="ref_222_4">BUTTON1_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000000077#;
+ <FONT COLOR=red><A NAME="ref_223_4">BUTTON2_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000007700#;
+ <FONT COLOR=red><A NAME="ref_224_4">BUTTON3_EVENTS</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := 8#00000770000#;
BUTTON4_EVENTS : <b>constant</b> Event_Mask := 8#00077000000#;
- <A HREF="terminal_interface-curses-mouse__ads.htm#65_4">No_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#63_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#220_4">0</A>;
+ <A HREF="terminal_interface-curses-mouse__ads.htm#ref_66_4">No_Events</A> : <b>constant</b> <A HREF="terminal_interface-curses-mouse__ads.htm#ref_64_9">Event_Mask</A> := <A HREF="terminal_interface-curses-mouse__ads.htm#ref_220_4">0</A>;
All_Events : <b>constant</b> Event_Mask := ALL_MOUSE_EVENTS;
<b>end</b> Terminal_Interface.Curses.Mouse;
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>;
-<b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">Panels</A>;
+<b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">Panels</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_42">User_Data</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">Panels</A>.<FONT COLOR=red><A NAME="ref_47_47" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_14">Set_User_Data</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_29">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <A HREF="terminal_interface-curses-panels-user_data__ads.htm#54_29">Data</A> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_51_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_52_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="54_16">Set_Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="54_35">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <FONT COLOR=red><A NAME="55_35">Addr</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#54_16">Set_Panel_Userptr</A>, "set_panel_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_54_16">Set_Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_54_35">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_55_35">Addr</A></FONT> : <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Set_Panel_Userptr</A>, "set_panel_userptr");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#54_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#54_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_54_16">Set_Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_29">Pan</A>, <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_54_29">Data</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_14">Set_User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#53_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_53_14">Set_User_Data</A>;
- <b>function</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_28">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_63_28" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="65_16">Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="65_31">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#65_16">Panel_Userptr</A>, "panel_userptr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Panel_Userptr</A></FONT> (<FONT COLOR=red><A NAME="ref_65_31">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Panel_Userptr</A>, "panel_userptr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#65_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_28">Pan</A>);
- <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">Get_User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_65_16">Panel_Userptr</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_28">Pan</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_14">Get_User_Data</A><FONT COLOR=red><A NAME="71_14"></A></FONT> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_29">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <A HREF="terminal_interface-curses-panels-user_data__ads.htm#60_29">Data</A> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">User_Access</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_71_14" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_14">Get_User_Data</A></FONT> (<FONT COLOR=red><A NAME="ref_71_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_72_29" HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">User_Access</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-panels-user_data__ads.htm#60_29">Data</A> := <A HREF="terminal_interface-curses-panels-user_data__ads.htm#64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_29">Pan</A>);
- <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_14">Get_User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#59_14">;</A>
+ <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_60_29">Data</A> := <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_64_13">Get_User_Data</A> (<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_29">Pan</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_59_14">Get_User_Data</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_42">User_Data</A><A HREF="terminal_interface-curses-panels-user_data__ads.htm#45_42">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">Panels</A>.<A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_45_42">User_Data</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-panels-user_data.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels-user_data.ads </H1></DIV><HR>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
- <b>type</b> <A HREF="terminal_interface__ads.htm#41_9">User_Access</A> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels__ads.htm#43_35">User</A>;
-<b>package</b> Terminal_Interface.Curses.Panels.User_Data<A HREF="terminal_interface-curses-panels__ads.htm#43_35"> </A><b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_44_9">User</A></FONT> <b>is</b> <b>limited</b> <b>private</b>;
+ <b>type</b> <A HREF="terminal_interface__ads.htm#ref_41_9">User_Access</A> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">User</A>;
+<b>package</b> Terminal_Interface.Curses.Panels.User_Data<A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35"> </A><b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="54_29">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">Panel</A>;
+ <b>procedure</b> Set_User_Data (<FONT COLOR=red><A NAME="ref_54_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_52_29">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
Data : <b>in</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">set_panel_userptr</A></EM></FONT>
<b>pragma</b> Inline (Set_User_Data);
<FONT COLOR=green><EM>-- #1A NAME="AFU_2"#2|</EM></FONT>
- <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="60_29">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#44_9">Panel</A>;
+ <b>procedure</b> Get_User_Data (<FONT COLOR=red><A NAME="ref_60_29" HREF="terminal_interface-curses-panels-user_data__adb.htm#ref_72_29">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels-user_data__ads.htm#ref_44_9">Panel</A>;
Data : <b>out</b> User_Access);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">panel_userptr</A></EM></FONT>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-panels.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">Panels</A></FONT> <b>is</b>
- <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
+ <b>use</b> <b>type</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
- <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#66_13">Create</A> (<A HREF="terminal_interface-curses-panels__ads.htm#66_21">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-panels__ads.htm#ref_66_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_49_21" HREF="terminal_interface-curses-panels__ads.htm#ref_66_21">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="50_16">Newpanel</A></FONT> (<FONT COLOR=red><A NAME="50_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#50_16">Newpanel</A>, "new_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">Newpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Newpanel</A>, "new_panel");
- <FONT COLOR=red><A NAME="53_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_54_7">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#50_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#66_21">Win</A>);
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#53_4">Null_Panel</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_51_16">Newpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_66_21">Win</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A> = <A HREF="terminal_interface-curses-panels__ads.htm#ref_53_4">Null_Panel</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#53_7">Pan</A>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#66_13">Create</A><A HREF="terminal_interface-curses-panels__ads.htm#66_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_54_7">Pan</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_66_13">Create</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#76_14">Bottom</A><FONT COLOR=red><A NAME="62_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#76_22">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-panels__ads.htm#ref_76_14">Bottom</A></FONT> (<FONT COLOR=red><A NAME="ref_63_22" HREF="terminal_interface-curses-panels__ads.htm#ref_76_22">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="64_16">Bottompanel</A></FONT> (<FONT COLOR=red><A NAME="64_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#64_16">Bottompanel</A>, "bottom_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">Bottompanel</A></FONT> (<FONT COLOR=red><A NAME="ref_65_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Bottompanel</A>, "bottom_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#64_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#76_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_65_16">Bottompanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_76_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#76_14">Bottom</A><A HREF="terminal_interface-curses-panels__ads.htm#76_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_76_14">Bottom</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#81_14">Top</A><FONT COLOR=red><A NAME="72_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#81_19">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_73_14" HREF="terminal_interface-curses-panels__ads.htm#ref_81_14">Top</A></FONT> (<FONT COLOR=red><A NAME="ref_73_19" HREF="terminal_interface-curses-panels__ads.htm#ref_81_19">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="74_16">Toppanel</A></FONT> (<FONT COLOR=red><A NAME="74_26">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#74_16">Toppanel</A>, "top_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_75_16">Toppanel</A></FONT> (<FONT COLOR=red><A NAME="ref_75_26">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Toppanel</A>, "top_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#74_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#81_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_75_16">Toppanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_81_19">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#81_14">Top</A><A HREF="terminal_interface-curses-panels__ads.htm#81_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_81_14">Top</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#86_14">Show</A><FONT COLOR=red><A NAME="82_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#86_20">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_83_14" HREF="terminal_interface-curses-panels__ads.htm#ref_86_14">Show</A></FONT> (<FONT COLOR=red><A NAME="ref_83_20" HREF="terminal_interface-curses-panels__ads.htm#ref_86_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="84_16">Showpanel</A></FONT> (<FONT COLOR=red><A NAME="84_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#84_16">Showpanel</A>, "show_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_85_16">Showpanel</A></FONT> (<FONT COLOR=red><A NAME="ref_85_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Showpanel</A>, "show_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#84_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#86_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_85_16">Showpanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_86_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#86_14">Show</A><A HREF="terminal_interface-curses-panels__ads.htm#86_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_86_14">Show</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#96_14">Hide</A><FONT COLOR=red><A NAME="92_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#96_20">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_93_14" HREF="terminal_interface-curses-panels__ads.htm#ref_96_14">Hide</A></FONT> (<FONT COLOR=red><A NAME="ref_93_20" HREF="terminal_interface-curses-panels__ads.htm#ref_96_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="94_16">Hidepanel</A></FONT> (<FONT COLOR=red><A NAME="94_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#94_16">Hidepanel</A>, "hide_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_95_16">Hidepanel</A></FONT> (<FONT COLOR=red><A NAME="ref_95_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Hidepanel</A>, "hide_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#94_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#96_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_95_16">Hidepanel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_96_20">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#96_14">Hide</A><A HREF="terminal_interface-curses-panels__ads.htm#96_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_96_14">Hide</A>;
- <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#101_13">Get_Window</A> (<A HREF="terminal_interface-curses-panels__ads.htm#101_25">Pan</A> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_103_13" HREF="terminal_interface-curses-panels__ads.htm#ref_101_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_103_25" HREF="terminal_interface-curses-panels__ads.htm#ref_101_25">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="104_16">Panel_Win</A></FONT> (<FONT COLOR=red><A NAME="104_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#104_16">Panel_Win</A>, "panel_window");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_105_16">Panel_Win</A></FONT> (<FONT COLOR=red><A NAME="ref_105_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Panel_Win</A>, "panel_window");
- <FONT COLOR=red><A NAME="107_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#104_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#101_25">Pan</A>);
+ <FONT COLOR=red><A NAME="ref_108_7">Win</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-panels__adb.htm#ref_105_16">Panel_Win</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_101_25">Pan</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#107_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_108_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#107_7">Win</A>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#101_13">Get_Window</A><A HREF="terminal_interface-curses-panels__ads.htm#101_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_108_7">Win</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_101_13">Get_Window</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#110_14">Replace</A><FONT COLOR=red><A NAME="115_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#110_23">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <A HREF="terminal_interface-curses-panels__ads.htm#111_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-panels__ads.htm#ref_110_14">Replace</A></FONT> (<FONT COLOR=red><A NAME="ref_116_23" HREF="terminal_interface-curses-panels__ads.htm#ref_110_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_117_23" HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="118_16">Replace_Pan</A></FONT> (<FONT COLOR=red><A NAME="118_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <FONT COLOR=red><A NAME="119_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#118_16">Replace_Pan</A>, "replace_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_119_16">Replace_Pan</A></FONT> (<FONT COLOR=red><A NAME="ref_119_29">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_120_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Replace_Pan</A>, "replace_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#118_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#110_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#111_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_119_16">Replace_Pan</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_110_23">Pan</A>, <A HREF="terminal_interface-curses-panels__ads.htm#ref_111_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#110_14">Replace</A><A HREF="terminal_interface-curses-panels__ads.htm#110_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_110_14">Replace</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#116_14">Move</A><FONT COLOR=red><A NAME="127_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#116_20">Pan</A> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <A HREF="terminal_interface-curses-panels__ads.htm#117_20">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses-panels__ads.htm#118_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_128_14" HREF="terminal_interface-curses-panels__ads.htm#ref_116_14">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_128_20" HREF="terminal_interface-curses-panels__ads.htm#ref_116_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_129_20" HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_130_20" HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="131_16">Move</A></FONT> (<FONT COLOR=red><A NAME="131_22">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>;
- <FONT COLOR=red><A NAME="132_22">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="133_22">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#131_16">Move</A>, "move_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_132_16">Move</A></FONT> (<FONT COLOR=red><A NAME="ref_132_22">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_133_22">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_134_22">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Move</A>, "move_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#131_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#116_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#117_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#118_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_132_16">Move</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_116_20">Pan</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_117_20">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_118_20">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#116_14">Move</A><A HREF="terminal_interface-curses-panels__ads.htm#116_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_116_14">Move</A>;
- <b>function</b> <A HREF="terminal_interface-curses-panels__ads.htm#123_13">Is_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#123_24">Pan</A> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_142_13" HREF="terminal_interface-curses-panels__ads.htm#ref_123_13">Is_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_142_24" HREF="terminal_interface-curses-panels__ads.htm#ref_123_24">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="143_16">Panel_Hidden</A></FONT> (<FONT COLOR=red><A NAME="143_30">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#143_16">Panel_Hidden</A>, "panel_hidden");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_144_16">Panel_Hidden</A></FONT> (<FONT COLOR=red><A NAME="ref_144_30">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Panel_Hidden</A>, "panel_hidden");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#143_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#123_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_144_16">Panel_Hidden</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_123_24">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#123_13">Is_Hidden</A><A HREF="terminal_interface-curses-panels__ads.htm#123_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_123_13">Is_Hidden</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-panels__ads.htm#138_14">Delete</A><FONT COLOR=red><A NAME="153_14"></A></FONT> (<A HREF="terminal_interface-curses-panels__ads.htm#138_22">Pan</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_154_14" HREF="terminal_interface-curses-panels__ads.htm#ref_138_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_154_22" HREF="terminal_interface-curses-panels__ads.htm#ref_138_22">Pan</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="155_16">Del_Panel</A></FONT> (<FONT COLOR=red><A NAME="155_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#155_16">Del_Panel</A>, "del_panel");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_156_16">Del_Panel</A></FONT> (<FONT COLOR=red><A NAME="ref_156_27">Pan</A></FONT> : <A HREF="terminal_interface-curses-panels__ads.htm#ref_48_9">Panel</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Del_Panel</A>, "del_panel");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#155_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#138_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#59_4">Panel_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-panels__adb.htm#ref_156_16">Del_Panel</A> (<A HREF="terminal_interface-curses-panels__ads.htm#ref_138_22">Pan</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_59_4">Panel_Exception</A>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-panels__ads.htm#138_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#53_4">Null_Panel</A>;
- <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#138_14">Delete</A><A HREF="terminal_interface-curses-panels__ads.htm#138_14">;</A>
+ <A HREF="terminal_interface-curses-panels__ads.htm#ref_138_22">Pan</A> := <A HREF="terminal_interface-curses-panels__ads.htm#ref_53_4">Null_Panel</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-panels__ads.htm#ref_138_14">Delete</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#43_35">Panels</A><A HREF="terminal_interface-curses-panels__ads.htm#43_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-panels__ads.htm#ref_43_35">Panels</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-panels.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-panels.ads </H1></DIV><HR>
<b>pragma</b> Inline (Panel_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
- <b>procedure</b> Replace (<FONT COLOR=red><A NAME="111_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Panel</A>;
+ <b>procedure</b> Replace (<FONT COLOR=red><A NAME="ref_111_23" HREF="terminal_interface-curses-panels__adb.htm#ref_117_23">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Panel</A>;
Win : <b>in</b> Window);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">replace_panel()</A></EM></FONT>
<b>pragma</b> Inline (Replace);
<FONT COLOR=green><EM>-- #1A NAME="AFU_11"#2|</EM></FONT>
- <b>procedure</b> Move (<FONT COLOR=red><A NAME="117_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Panel</A>;
- <FONT COLOR=red><A NAME="118_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>procedure</b> Move (<FONT COLOR=red><A NAME="ref_117_20" HREF="terminal_interface-curses-panels__adb.htm#ref_129_20">Pan</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Panel</A>;
+ <FONT COLOR=red><A NAME="ref_118_20" HREF="terminal_interface-curses-panels__adb.htm#ref_130_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/panel.3x.html">move_panel()</A></EM></FONT>
<b>pragma</b> Inline (Move);
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-putwin.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<b>with</b> Ada.Streams.Stream_IO.C_Streams;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C_Streams;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C_Streams;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#43_35">PutWin</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_45_40" HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C_Streams;
- <b>package</b> <FONT COLOR=red><A NAME="48_12">ACS</A></FONT> <b>renames</b> Ada.Streams.Stream_IO.C_Streams;
- <b>use</b> <b>type</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">ICS</A></FONT> <b>renames</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C_Streams;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_48_12">ACS</A></FONT> <b>renames</b> Ada.Streams.Stream_IO.C_Streams;
+ <b>use</b> <b>type</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-putwin__ads.htm#45_14">Put_Window</A><FONT COLOR=red><A NAME="51_14"></A></FONT> (<A HREF="terminal_interface-curses-putwin__ads.htm#45_26">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-putwin__ads.htm#46_26">File</A> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="53_16">putwin</A></FONT> (<FONT COLOR=red><A NAME="53_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="53_38">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#53_16">putwin</A>, "putwin");
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_51_14" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_51_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_52_26" HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_53_16">putwin</A></FONT> (<FONT COLOR=red><A NAME="ref_53_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_53_38">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">putwin</A>, "putwin");
- <FONT COLOR=red><A NAME="56_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#53_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#45_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#46_26">File</A>));
+ <FONT COLOR=red><A NAME="ref_56_7">R</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_53_16">putwin</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_26">Win</A>, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_46_26">File</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#56_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#71_4">Curses_Ok</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_56_7">R</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#45_14">Put_Window</A><A HREF="terminal_interface-curses-putwin__ads.htm#45_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_45_14">Put_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses-putwin__ads.htm#48_13">Get_Window</A> (<A HREF="terminal_interface-curses-putwin__ads.htm#48_25">File</A> : Ada.Streams.Stream_IO.File_Type)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="65_16">getwin</A></FONT> (<FONT COLOR=red><A NAME="65_24">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#65_16">getwin</A>, "getwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_63_25" HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A></FONT> : Ada.Streams.Stream_IO.File_Type)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_65_16">getwin</A></FONT> (<FONT COLOR=red><A NAME="ref_65_24">f</A></FONT> : <A HREF="terminal_interface-curses-putwin__adb.htm#ref_47_12">ICS</A>.FILEs) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">getwin</A>, "getwin");
- <FONT COLOR=red><A NAME="68_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#65_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#48_25">File</A>));
+ <FONT COLOR=red><A NAME="ref_68_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses-putwin__adb.htm#ref_65_16">getwin</A> (<A HREF="terminal_interface-curses-putwin__adb.htm#ref_48_12">ACS</A>.C_Stream (<A HREF="terminal_interface-curses-putwin__ads.htm#ref_48_25">File</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#68_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_68_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-putwin__adb.htm#68_7">W</A>;
+ <b>return</b> <A HREF="terminal_interface-curses-putwin__adb.htm#ref_68_7">W</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#48_13">Get_Window</A><A HREF="terminal_interface-curses-putwin__ads.htm#48_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-putwin__ads.htm#ref_48_13">Get_Window</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#43_35">PutWin</A><A HREF="terminal_interface-curses-putwin__ads.htm#43_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-putwin.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-putwin.ads </H1></DIV><HR>
<b>with</b> Ada.Streams.Stream_IO;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="43_35">PutWin</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_43_35" HREF="terminal_interface-curses-putwin__adb.htm#ref_45_40">PutWin</A></FONT> <b>is</b>
- <b>procedure</b> <A HREF="terminal_interface-curses-putwin__adb.htm#51_14">Put_Window</A><FONT COLOR=red><A NAME="45_14"></A></FONT> (<FONT COLOR=red><A NAME="45_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="46_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_45_14" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_14">Put_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_45_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_51_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_46_26" HREF="terminal_interface-curses-putwin__adb.htm#ref_52_26">File</A></FONT> : Ada.Streams.Stream_IO.File_Type);
- <b>function</b> <FONT COLOR=red><A NAME="48_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="48_25">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_48_13" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_13">Get_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_48_25" HREF="terminal_interface-curses-putwin__adb.htm#ref_63_25">File</A></FONT> : Ada.Streams.Stream_IO.File_Type) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#43_35">PutWin</A><A HREF="terminal_interface-curses-putwin__ads.htm#43_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-putwin__ads.htm#ref_43_35">PutWin</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-termcap.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.5 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.9 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_47_40" HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A></FONT> <b>is</b>
- <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#59_13">Get_Entry</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#59_24">Name</A> : String) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_49_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="ref_49_24" HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A></FONT> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="50_16">tgetent</A></FONT> (<FONT COLOR=red><A NAME="50_25">name</A></FONT> : char_array; <FONT COLOR=red><A NAME="50_44">val</A></FONT> : char_array)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#50_16">tgetent</A>, "tgetent");
- <FONT COLOR=red><A NAME="53_7">NameTxt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#59_24">Name</A>'Length);
- <FONT COLOR=red><A NAME="54_7">Length</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="55_7">ignored</A></FONT> : char_array (0 .. 0) := (0 => nul);
- <FONT COLOR=red><A NAME="56_7">result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_51_16">tgetent</A></FONT> (<FONT COLOR=red><A NAME="ref_51_25">name</A></FONT> : char_array; <FONT COLOR=red><A NAME="ref_51_44">val</A></FONT> : char_array)
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">tgetent</A>, "tgetent");
+ <FONT COLOR=red><A NAME="ref_54_7">NameTxt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_55_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_56_7">ignored</A></FONT> : <b>constant</b> char_array (0 .. 0) := (0 => nul);
+ <FONT COLOR=red><A NAME="ref_57_7">result</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#59_24">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#53_7">NameTxt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#54_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__adb.htm#56_7">result</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#50_16">tgetent</A> (char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#55_7">ignored</A>), <A HREF="terminal_interface-curses-termcap__adb.htm#53_7">NameTxt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#56_7">result</A> = -1 <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_24">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_54_7">NameTxt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_55_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_51_16">tgetent</A> (char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_56_7">ignored</A>), <A HREF="terminal_interface-curses-termcap__adb.htm#ref_54_7">NameTxt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A> = -1 <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <b>return</b> Boolean'Val (<A HREF="terminal_interface-curses-termcap__adb.htm#56_7">result</A>);
+ <b>return</b> Boolean'Val (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_57_7">result</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#59_13">Get_Entry</A><A HREF="terminal_interface-curses-termcap__ads.htm#59_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_59_13">Get_Entry</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#63_13">Get_Flag</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#63_23">Name</A> : String) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_23" HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A></FONT> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="70_16">tgetflag</A></FONT> (<FONT COLOR=red><A NAME="70_26">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#70_16">tgetflag</A>, "tgetflag");
- <FONT COLOR=red><A NAME="72_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#63_23">Name</A>'Length);
- <FONT COLOR=red><A NAME="73_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_71_16">tgetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_71_26">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">tgetflag</A>, "tgetflag");
+ <FONT COLOR=red><A NAME="ref_73_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_74_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#63_23">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#72_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#73_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#70_16">tgetflag</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#72_7">Txt</A>) = 0 <b>then</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_23">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_73_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_74_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_71_16">tgetflag</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_73_7">Txt</A>) = 0 <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#63_13">Get_Flag</A><A HREF="terminal_interface-curses-termcap__ads.htm#63_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_63_13">Get_Flag</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-termcap__ads.htm#67_14">Get_Number</A><FONT COLOR=red><A NAME="84_14"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#67_26">Name</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Value</A> : <b>out</b> Integer;
- <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Result</A> : <b>out</b> Boolean)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_85_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_85_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_86_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A></FONT> : <b>out</b> Integer;
+ <FONT COLOR=red><A NAME="ref_87_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A></FONT> : <b>out</b> Boolean)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="88_16">tgetnum</A></FONT> (<FONT COLOR=red><A NAME="88_25">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#88_16">tgetnum</A>, "tgetnum");
- <FONT COLOR=red><A NAME="90_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#67_26">Name</A>'Length);
- <FONT COLOR=red><A NAME="91_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_89_16">tgetnum</A></FONT> (<FONT COLOR=red><A NAME="ref_89_25">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">tgetnum</A>, "tgetnum");
+ <FONT COLOR=red><A NAME="ref_91_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_92_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#67_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#90_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#91_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Value</A> := Integer (<A HREF="terminal_interface-curses-termcap__adb.htm#88_16">tgetnum</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#90_7">Txt</A>));
- <b>if</b> <A HREF="terminal_interface-curses-termcap__ads.htm#68_26">Value</A> = -1 <b>then</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Result</A> := False;
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_91_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_92_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A> := Integer (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_89_16">tgetnum</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_91_7">Txt</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_68_26">Value</A> = -1 <b>then</b>
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A> := False;
<b>else</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#69_26">Result</A> := True;
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_69_26">Result</A> := True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#67_14">Get_Number</A><A HREF="terminal_interface-curses-termcap__ads.htm#67_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_67_14">Get_Number</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-termcap__ads.htm#73_14">Get_String</A><FONT COLOR=red><A NAME="103_14"></A></FONT> (<A HREF="terminal_interface-curses-termcap__ads.htm#73_26">Name</A> : String;
- <A HREF="terminal_interface-curses-termcap__ads.htm#74_26">Value</A> : <b>out</b> String;
- <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Result</A> : <b>out</b> Boolean)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_104_14" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_104_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_105_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A></FONT> : <b>out</b> String;
+ <FONT COLOR=red><A NAME="ref_106_26" HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A></FONT> : <b>out</b> Boolean)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="107_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="107_25">id</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="108_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#107_16">tgetstr</A>, "tgetstr");
- <FONT COLOR=red><A NAME="110_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#73_26">Name</A>'Length);
- <FONT COLOR=red><A NAME="111_7">Length</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="112_7">Txt2</A></FONT> : chars_ptr;
- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT>
- <FONT COLOR=red><A NAME="114_7">Return_Buffer</A></FONT> : t := (0 => nul);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_25">id</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_109_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">tgetstr</A>, "tgetstr");
+ <FONT COLOR=red><A NAME="ref_111_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_112_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_113_7">Txt2</A></FONT> : chars_ptr;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_114_12">t</A></FONT> <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_115_7">Return_Buffer</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_114_12">t</A> := (<b>others</b> => nul);
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#73_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#110_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#111_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__adb.htm#112_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#107_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#110_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#114_7">Return_Buffer</A>));
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#112_7">Txt2</A> = Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Result</A> := False;
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_26">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_111_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_112_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_108_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_111_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_115_7">Return_Buffer</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A> = Null_Ptr <b>then</b>
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A> := False;
<b>else</b>
- <A HREF="terminal_interface-curses-termcap__ads.htm#74_26">Value</A> := <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#112_7">Txt2</A>);
- <A HREF="terminal_interface-curses-termcap__ads.htm#75_26">Result</A> := True;
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_74_26">Value</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_113_7">Txt2</A>);
+ <A HREF="terminal_interface-curses-termcap__ads.htm#ref_75_26">Result</A> := True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#73_14">Get_String</A><A HREF="terminal_interface-curses-termcap__ads.htm#73_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_73_14">Get_String</A>;
- <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#76_13">Get_String</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#76_25">Name</A> : String) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_127_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_127_25" HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A></FONT> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="128_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="128_25">Id</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="129_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#128_16">tgetstr</A>, "tgetstr");
- <FONT COLOR=red><A NAME="131_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#76_25">Name</A>'Length);
- <FONT COLOR=red><A NAME="132_7">Length</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="133_7">Txt2</A></FONT> : chars_ptr;
- <b>type</b> t <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT>
- <FONT COLOR=red><A NAME="135_7">Phony_Txt</A></FONT> : t := (0 => nul);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_129_16">tgetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_129_25">Id</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_130_25">buf</A></FONT> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">tgetstr</A>, "tgetstr");
+ <FONT COLOR=red><A NAME="ref_132_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_133_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_134_7">Txt2</A></FONT> : chars_ptr;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_135_12">t</A></FONT> <b>is</b> <b>new</b> char_array (0 .. 1024); <FONT COLOR=green><EM>-- does it need to be 1024?</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_136_7">Phony_Txt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_135_12">t</A> := (<b>others</b> => nul);
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#76_25">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#131_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#132_7">Length</A>);
- <A HREF="terminal_interface-curses-termcap__adb.htm#133_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#128_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#131_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#135_7">Phony_Txt</A>));
- <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#133_7">Txt2</A> = Null_Ptr <b>then</b>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_25">Name</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_132_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_133_7">Length</A>);
+ <A HREF="terminal_interface-curses-termcap__adb.htm#ref_134_7">Txt2</A> := <A HREF="terminal_interface-curses-termcap__adb.htm#ref_129_16">tgetstr</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_132_7">Txt</A>, char_array (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_136_7">Phony_Txt</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-termcap__adb.htm#ref_134_7">Txt2</A> = Null_Ptr <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#76_13">Get_String</A><A HREF="terminal_interface-curses-termcap__ads.htm#76_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_76_13">Get_String</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-termcap__ads.htm#53_13">TGoto</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#53_20">Cap</A> : String;
- <A HREF="terminal_interface-curses-termcap__ads.htm#54_20">Col</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses-termcap__ads.htm#55_20">Row</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#50_9">Termcap_String</A> <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="150_16">tgoto</A></FONT> (<FONT COLOR=red><A NAME="150_23">cap</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="151_23">col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="152_23">row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#150_16">tgoto</A>);
- <FONT COLOR=red><A NAME="154_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#53_20">Cap</A>'Length);
- <FONT COLOR=red><A NAME="155_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_148_13" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="ref_148_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_149_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_150_20" HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_50_9">Termcap_String</A> <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_151_16">tgoto</A></FONT> (<FONT COLOR=red><A NAME="ref_151_23">cap</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_152_23">col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_153_23">row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">tgoto</A>);
+ <FONT COLOR=red><A NAME="ref_155_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>'Length);
+ <FONT COLOR=red><A NAME="ref_156_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#53_20">Cap</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#154_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#155_7">Length</A>);
- <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#50_9">Termcap_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A>
- (<A HREF="terminal_interface-curses-termcap__adb.htm#150_16">tgoto</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#154_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#54_20">Col</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#55_20">Row</A>))));
- <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#53_13">TGoto</A><A HREF="terminal_interface-curses-termcap__ads.htm#53_13">;</A>
+ To_C (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_20">Cap</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_155_7">Txt</A>, <A HREF="terminal_interface-curses-termcap__adb.htm#ref_156_7">Length</A>);
+ <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_50_9">Termcap_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A>
+ (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_151_16">tgoto</A> (<A HREF="terminal_interface-curses-termcap__adb.htm#ref_155_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_54_20">Col</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-termcap__ads.htm#ref_55_20">Row</A>))));
+ <b>end</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_53_13">TGoto</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A><A HREF="terminal_interface-curses-termcap__ads.htm#42_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-termcap.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-termcap.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="42_35">Termcap</A></FONT> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_35" HREF="terminal_interface-curses-termcap__adb.htm#ref_47_40">Termcap</A></FONT> <b>is</b>
+ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | Man page curs_termcap.3x</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- Not implemented: tputs (see curs_terminfo)</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="50_9">Termcap_String</A></FONT> <b>is</b> <b>new</b> String;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_50_9">Termcap_String</A></FONT> <b>is</b> <b>new</b> String;
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="53_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="53_20">Cap</A></FONT> : String;
- <FONT COLOR=red><A NAME="54_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="55_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#50_9">Termcap_String</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_53_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_13">TGoto</A></FONT> (<FONT COLOR=red><A NAME="ref_53_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_148_20">Cap</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_54_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_149_20">Col</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_55_20" HREF="terminal_interface-curses-termcap__adb.htm#ref_150_20">Row</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> <A HREF="terminal_interface-curses-termcap__ads.htm#ref_50_9">Termcap_String</A>;
<FONT COLOR=green><EM>-- AKA: tgoto()</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="59_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="59_24">Name</A></FONT> : String) <b>return</b> Boolean;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_59_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_13">Get_Entry</A></FONT> (<FONT COLOR=red><A NAME="ref_59_24" HREF="terminal_interface-curses-termcap__adb.htm#ref_49_24">Name</A></FONT> : String) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- AKA: tgetent()</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="63_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="63_23">Name</A></FONT> : String) <b>return</b> Boolean;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_63_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_63_23" HREF="terminal_interface-curses-termcap__adb.htm#ref_69_23">Name</A></FONT> : String) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- AKA: tgetflag()</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-termcap__adb.htm#84_14">Get_Number</A><FONT COLOR=red><A NAME="67_14"></A></FONT> (<FONT COLOR=red><A NAME="67_26">Name</A></FONT> : String;
- <FONT COLOR=red><A NAME="68_26">Value</A></FONT> : <b>out</b> Integer;
- <FONT COLOR=red><A NAME="69_26">Result</A></FONT> : <b>out</b> Boolean);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_67_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_14">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_67_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_85_26">Name</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_68_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_86_26">Value</A></FONT> : <b>out</b> Integer;
+ <FONT COLOR=red><A NAME="ref_69_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_87_26">Result</A></FONT> : <b>out</b> Boolean);
<FONT COLOR=green><EM>-- AKA: tgetnum()</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-termcap__adb.htm#103_14">Get_String</A><FONT COLOR=red><A NAME="73_14"></A></FONT> (<FONT COLOR=red><A NAME="73_26">Name</A></FONT> : String;
- <FONT COLOR=red><A NAME="74_26">Value</A></FONT> : <b>out</b> String;
- <FONT COLOR=red><A NAME="75_26">Result</A></FONT> : <b>out</b> Boolean);
- <b>function</b> <FONT COLOR=red><A NAME="76_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="76_25">Name</A></FONT> : String) <b>return</b> Boolean;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_73_14" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_73_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_104_26">Name</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_74_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_105_26">Value</A></FONT> : <b>out</b> String;
+ <FONT COLOR=red><A NAME="ref_75_26" HREF="terminal_interface-curses-termcap__adb.htm#ref_106_26">Result</A></FONT> : <b>out</b> Boolean);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_76_13" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_13">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_76_25" HREF="terminal_interface-curses-termcap__adb.htm#ref_127_25">Name</A></FONT> : String) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- Returns True if the string is found.</EM></FONT>
<FONT COLOR=green><EM>-- AKA: tgetstr()</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#42_35">Termcap</A><A HREF="terminal_interface-curses-termcap__ads.htm#42_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-termcap__ads.htm#ref_42_35">Termcap</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-terminfo.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>; <b>use</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
<b>with</b> Ada.Unchecked_Conversion;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_47_40" HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A></FONT> <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="50_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="50_34">P</A></FONT> : <b>in</b> chars_ptr) <b>return</b> Boolean;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_50_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="ref_50_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_52_34">P</A></FONT> : <b>in</b> chars_ptr) <b>return</b> Boolean;
- <b>function</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#50_34">P</A> : <b>in</b> chars_ptr) <b>return</b> Boolean <b>is</b>
- <b>type</b> Weird_Address <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
- <FONT COLOR=red><A NAME="54_7">Invalid_Pointer</A></FONT> : <b>constant</b> Weird_Address := -1;
- <b>function</b> <FONT COLOR=red><A NAME="55_16">To_Weird</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
- (Source => chars_ptr, Target => Weird_Address);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_52_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A></FONT> (<FONT COLOR=red><A NAME="ref_52_34" HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_34">P</A></FONT> : <b>in</b> chars_ptr) <b>return</b> Boolean <b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_53_12">Weird_Address</A></FONT> <b>is</b> <b>new</b> System.Storage_Elements.Integer_Address;
+ <FONT COLOR=red><A NAME="ref_54_7">Invalid_Pointer</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A> := -1;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_55_16">To_Weird</A></FONT> <b>is</b> <b>new</b> Ada.Unchecked_Conversion
+ (Source => chars_ptr, Target => <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_53_12">Weird_Address</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#55_16">To_Weird</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#50_34">P</A>) = <A HREF="terminal_interface-curses-terminfo__adb.htm#54_7">Invalid_Pointer</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_55_16">To_Weird</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_34">P</A>) = <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_54_7">Invalid_Pointer</A> <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A><A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">;</A>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A>;
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A>);
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#64_13">Get_Flag</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#64_23">Name</A> : String) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_67_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_67_23" HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A></FONT> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="69_27">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#69_16">tigetflag</A>);
- <FONT COLOR=red><A NAME="71_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#64_23">Name</A>'Length);
- <FONT COLOR=red><A NAME="72_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_69_16">tigetflag</A></FONT> (<FONT COLOR=red><A NAME="ref_69_27">id</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A>);
+ <FONT COLOR=red><A NAME="ref_71_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_72_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#64_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#71_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#72_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#74_4">Curses_True</A>) <b>then</b>
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_23">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_72_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_69_16">tigetflag</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_71_7">Txt</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_74_4">Curses_True</A>) <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#64_13">Get_Flag</A><A HREF="terminal_interface-curses-terminfo__ads.htm#64_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_64_13">Get_Flag</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#57_14">Get_String</A><FONT COLOR=red><A NAME="83_14"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#57_26">Name</A> : String;
- <A HREF="terminal_interface-curses-terminfo__ads.htm#58_26">Value</A> : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
- <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Result</A> : <b>out</b> Boolean)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_83_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_83_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_84_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+ <FONT COLOR=red><A NAME="ref_85_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A></FONT> : <b>out</b> Boolean)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="87_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="87_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#87_16">tigetstr</A>, "tigetstr");
- <FONT COLOR=red><A NAME="89_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#57_26">Name</A>'Length);
- <FONT COLOR=red><A NAME="90_7">Length</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="91_7">Txt2</A></FONT> : chars_ptr;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_87_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_87_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">tigetstr</A>, "tigetstr");
+ <FONT COLOR=red><A NAME="ref_89_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_90_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_91_7">Txt2</A></FONT> : chars_ptr;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#57_26">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#89_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#90_7">Length</A>);
- <A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#87_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#89_7">Txt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A> = Null_Ptr <b>then</b>
- <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Result</A> := False;
- <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_26">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_89_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_90_7">Length</A>);
+ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_87_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_89_7">Txt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A> = Null_Ptr <b>then</b>
+ <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A> := False;
+ <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses-terminfo__ads.htm#58_26">Value</A> := <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#91_7">Txt2</A>));
- <A HREF="terminal_interface-curses-terminfo__ads.htm#59_26">Result</A> := True;
+ <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_58_26">Value</A> := <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_91_7">Txt2</A>));
+ <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_59_26">Result</A> := True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#57_14">Get_String</A><A HREF="terminal_interface-curses-terminfo__ads.htm#57_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_57_14">Get_String</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#60_13">Has_String</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#60_25">Name</A> : String) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_106_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="ref_106_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A></FONT> : String) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="108_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="108_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#108_16">tigetstr</A>, "tigetstr");
- <FONT COLOR=red><A NAME="110_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#60_25">Name</A>'Length);
- <FONT COLOR=red><A NAME="111_7">Length</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="112_7">Txt2</A></FONT> : chars_ptr;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_108_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_108_26">id</A></FONT> : char_array) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">tigetstr</A>, "tigetstr");
+ <FONT COLOR=red><A NAME="ref_110_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_111_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_112_7">Txt2</A></FONT> : chars_ptr;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#60_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#110_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#111_7">Length</A>);
- <A HREF="terminal_interface-curses-terminfo__adb.htm#112_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#108_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#110_7">Txt</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#112_7">Txt2</A> = Null_Ptr <b>then</b>
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_110_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_111_7">Length</A>);
+ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_108_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_110_7">Txt</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A> = Null_Ptr <b>then</b>
<b>return</b> False;
- <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#112_7">Txt2</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>elsif</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_50_13">Is_MinusOne_Pointer</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_112_7">Txt2</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#60_13">Has_String</A><A HREF="terminal_interface-curses-terminfo__ads.htm#60_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_60_13">Has_String</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#68_13">Get_Number</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#68_25">Name</A> : String) <b>return</b> Integer <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="127_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="127_26">s</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#127_16">tigetstr</A>);
- <FONT COLOR=red><A NAME="129_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#68_25">Name</A>'Length);
- <FONT COLOR=red><A NAME="130_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_126_13" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_126_25" HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A></FONT> : String) <b>return</b> Integer <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_127_16">tigetstr</A></FONT> (<FONT COLOR=red><A NAME="ref_127_26">s</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">tigetstr</A>);
+ <FONT COLOR=red><A NAME="ref_129_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>'Length);
+ <FONT COLOR=red><A NAME="ref_130_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#68_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#129_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#130_7">Length</A>);
- <b>return</b> Integer (<A HREF="terminal_interface-curses-terminfo__adb.htm#127_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#129_7">Txt</A>));
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#68_13">Get_Number</A><A HREF="terminal_interface-curses-terminfo__ads.htm#68_13">;</A>
+ To_C (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_25">Name</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_129_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_130_7">Length</A>);
+ <b>return</b> Integer (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_127_16">tigetstr</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_129_7">Txt</A>));
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_68_13">Get_Number</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#76_14">Put_String</A><FONT COLOR=red><A NAME="137_14"></A></FONT> (<A HREF="terminal_interface-curses-terminfo__ads.htm#76_26">Str</A> : <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
- <A HREF="terminal_interface-curses-terminfo__ads.htm#77_26">affcnt</A> : Natural := 1;
- <A HREF="terminal_interface-curses-terminfo__ads.htm#78_26">putc</A> : <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A> := <b>null</b>) <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="140_16">tputs</A></FONT> (<FONT COLOR=red><A NAME="140_23">str</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="141_23">affcnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="142_23">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="143_16">putp</A></FONT> (<FONT COLOR=red><A NAME="143_22">str</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#140_16">tputs</A>);
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#143_16">putp</A>);
- <FONT COLOR=red><A NAME="146_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#76_26">Str</A>'Length);
- <FONT COLOR=red><A NAME="147_7">Length</A></FONT> : size_t;
- <FONT COLOR=red><A NAME="148_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_137_14" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A></FONT> (<FONT COLOR=red><A NAME="ref_137_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+ <FONT COLOR=red><A NAME="ref_138_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A></FONT> : Natural := 1;
+ <FONT COLOR=red><A NAME="ref_139_26" HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>) <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_140_16">tputs</A></FONT> (<FONT COLOR=red><A NAME="ref_140_23">str</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_141_23">affcnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_142_23">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_143_16">putp</A></FONT> (<FONT COLOR=red><A NAME="ref_143_22">str</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">tputs</A>);
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">putp</A>);
+ <FONT COLOR=red><A NAME="ref_146_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_147_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_148_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- To_C (String (<A HREF="terminal_interface-curses-terminfo__ads.htm#76_26">Str</A>), <A HREF="terminal_interface-curses-terminfo__adb.htm#146_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#147_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#78_26">putc</A> = <b>null</b> <b>then</b>
- <A HREF="terminal_interface-curses-terminfo__adb.htm#148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#143_16">putp</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#146_7">Txt</A>);
+ To_C (String (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_26">Str</A>), <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>, <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_147_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A> = <b>null</b> <b>then</b>
+ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_143_16">putp</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>);
<b>else</b>
- <A HREF="terminal_interface-curses-terminfo__adb.htm#148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#140_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#146_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#77_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#78_26">putc</A>);
+ <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> := <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_140_16">tputs</A> (<A HREF="terminal_interface-curses-terminfo__adb.htm#ref_146_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_77_26">affcnt</A>), <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_78_26">putc</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#148_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#ref_148_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#76_14">Put_String</A><A HREF="terminal_interface-curses-terminfo__ads.htm#76_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_76_14">Put_String</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A><A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-terminfo.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-terminfo.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="44_35">Terminfo</A></FONT> <b>is</b>
- <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A>);
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-terminfo__adb.htm#ref_47_40">Terminfo</A></FONT> <b>is</b>
+ <b>pragma</b> Preelaborate (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- | Man page curs_terminfo.3x</EM></FONT>
<FONT COLOR=green><EM>-- restartterm, tparm, putp, vidputs, vidattr,</EM></FONT>
<FONT COLOR=green><EM>-- mvcur</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="54_9">Terminfo_String</A></FONT> <b>is</b> <b>new</b> String;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_54_9">Terminfo_String</A></FONT> <b>is</b> <b>new</b> String;
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#83_14">Get_String</A><FONT COLOR=red><A NAME="57_14"></A></FONT> (<FONT COLOR=red><A NAME="57_26">Name</A></FONT> : String;
- <FONT COLOR=red><A NAME="58_26">Value</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
- <FONT COLOR=red><A NAME="59_26">Result</A></FONT> : <b>out</b> Boolean);
- <b>function</b> <FONT COLOR=red><A NAME="60_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="60_25">Name</A></FONT> : String) <b>return</b> Boolean;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_14">Get_String</A></FONT> (<FONT COLOR=red><A NAME="ref_57_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_83_26">Name</A></FONT> : String;
+ <FONT COLOR=red><A NAME="ref_58_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_84_26">Value</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+ <FONT COLOR=red><A NAME="ref_59_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_85_26">Result</A></FONT> : <b>out</b> Boolean);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_60_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_13">Has_String</A></FONT> (<FONT COLOR=red><A NAME="ref_60_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_106_25">Name</A></FONT> : String) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- AKA: tigetstr()</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="64_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="64_23">Name</A></FONT> : String) <b>return</b> Boolean;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_64_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_64_23" HREF="terminal_interface-curses-terminfo__adb.htm#ref_67_23">Name</A></FONT> : String) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- AKA: tigetflag()</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="68_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="68_25">Name</A></FONT> : String) <b>return</b> Integer;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_68_13" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_13">Get_Number</A></FONT> (<FONT COLOR=red><A NAME="ref_68_25" HREF="terminal_interface-curses-terminfo__adb.htm#ref_126_25">Name</A></FONT> : String) <b>return</b> Integer;
<FONT COLOR=green><EM>-- AKA: tigetnum()</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="71_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="71_38">c</A></FONT> : <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int)
- <b>return</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.int;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_71_9">putctype</A></FONT> <b>is</b> <b>access</b> <b>function</b> (<FONT COLOR=red><A NAME="ref_71_38">c</A></FONT> : <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int)
+ <b>return</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.int;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A>);
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-terminfo__adb.htm#137_14">Put_String</A><FONT COLOR=red><A NAME="76_14"></A></FONT> (<FONT COLOR=red><A NAME="76_26">Str</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#54_9">Terminfo_String</A>;
- <FONT COLOR=red><A NAME="77_26">affcnt</A></FONT> : Natural := 1;
- <FONT COLOR=red><A NAME="78_26">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#71_9">putctype</A> := <b>null</b>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_76_14" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_14">Put_String</A></FONT> (<FONT COLOR=red><A NAME="ref_76_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_137_26">Str</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_54_9">Terminfo_String</A>;
+ <FONT COLOR=red><A NAME="ref_77_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_138_26">affcnt</A></FONT> : Natural := 1;
+ <FONT COLOR=red><A NAME="ref_78_26" HREF="terminal_interface-curses-terminfo__adb.htm#ref_139_26">putc</A></FONT> : <A HREF="terminal_interface-curses-terminfo__ads.htm#ref_71_9">putctype</A> := <b>null</b>);
<FONT COLOR=green><EM>-- AKA: tputs()</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">Terminfo</A><A HREF="terminal_interface-curses-terminfo__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-terminfo__ads.htm#ref_44_35">Terminfo</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.11 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_41_48" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A></FONT> <b>is</b>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A><FONT COLOR=red><A NAME="43_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>;
- <A HREF="terminal_interface-curses-text_io-aux__ads.htm#51_7">Signal</A> : <b>in</b> Boolean := True;
- <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_43_14" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_44_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_45_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_46_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+ <FONT COLOR=red><A NAME="ref_47_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Signal</A></FONT> : <b>in</b> Boolean := True;
+ <FONT COLOR=red><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <FONT COLOR=red><A NAME="50_7">L</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>;
- <FONT COLOR=red><A NAME="51_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>;
- <FONT COLOR=red><A NAME="52_7">W</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#50_7">Width</A>;
- <FONT COLOR=red><A NAME="53_7">LC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="54_7">CC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <FONT COLOR=red><A NAME="55_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="56_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_50_7">L</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+ <FONT COLOR=red><A NAME="ref_51_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>;
+ <FONT COLOR=red><A NAME="ref_52_7">W</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_50_7">Width</A>;
+ <FONT COLOR=red><A NAME="ref_53_7">LC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_54_7">CC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_55_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_56_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#60_17">Output</A><FONT COLOR=red><A NAME="58_17"></A></FONT> (<FONT COLOR=red><A NAME="58_25">From</A></FONT>, <FONT COLOR=red><A NAME="58_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_58_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_58_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_58_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_60_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A><FONT COLOR=red><A NAME="60_17"></A></FONT> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_25">From</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_31">To</A> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_60_17" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A></FONT> (<FONT COLOR=red><A NAME="ref_60_25" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_25">From</A></FONT>, <FONT COLOR=red><A NAME="ref_60_31" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_31">To</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>)
<b>is</b>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> > 0 <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> = 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> > 0 <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> = 0 <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> > <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> > <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> <b>then</b>
<FONT COLOR=green><EM>-- LRM A10.6 (7) says this</EM></FONT>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>;
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>;
<b>end</b> <b>if</b>;
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> <= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A>);
- <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#53_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#54_7">CC</A>);
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>) > <A HREF="terminal_interface-curses-text_io-aux__adb.htm#54_7">CC</A> <b>then</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#51_7">Signal</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> <= <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_53_7">LC</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">CC</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>) > <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">CC</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_51_7">Signal</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_134_4">Layout_Error</A>;
<b>else</b>
<b>return</b>;
<b>end</b> <b>if</b>;
<b>else</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> < <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> < <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> <b>and</b> <b>then</b> <b>not</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A> <b>then</b>
<b>declare</b>
- <FONT COLOR=red><A NAME="83_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>))
+ <FONT COLOR=red><A NAME="ref_83_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>))
:= (<b>others</b> => ' ');
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#83_22">Filler</A>);
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_83_22">Filler</A>);
<b>end</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#55_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#56_7">X</A>);
- <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#56_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>)) > <A HREF="terminal_interface-curses-text_io-aux__adb.htm#54_7">CC</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_55_7">Y</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">X</A>);
+ <b>if</b> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_56_7">X</A> + <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>)) > <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_54_7">CC</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>);
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_31">To</A>));
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> < <A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_25">From</A> .. <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_31">To</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> < <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A> <b>then</b>
<b>declare</b>
- <FONT COLOR=red><A NAME="96_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>))
+ <FONT COLOR=red><A NAME="ref_96_22">Filler</A></FONT> : <b>constant</b> String (1 .. (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_52_7">W</A> - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>))
:= (<b>others</b> => ' ');
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#96_22">Filler</A>);
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A>, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_96_22">Filler</A>);
<b>end</b>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A><A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A>;
<b>begin</b>
- <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#48_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#52_7">Ljust</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := 1;
- <b>for</b> <FONT COLOR=red><A NAME="110_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length <b>loop</b>
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A>) = ' ';
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> + 1;
+ <b>pragma</b> Assert (<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_48_7">Win</A> /= <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_52_7">Ljust</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := 1;
+ <b>for</b> <FONT COLOR=red><A NAME="ref_110_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length <b>loop</b>
+ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A>) = ' ';
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> + 1;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> - 1;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A>);
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> - 1;
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A> (1, <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A>);
<b>else</b> <FONT COLOR=green><EM>-- input buffer is not left justified</EM></FONT>
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length;
- <b>for</b> <FONT COLOR=red><A NAME="118_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length <b>loop</b>
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A>) = ' ';
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> - 1;
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length;
+ <b>for</b> <FONT COLOR=red><A NAME="ref_118_14">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length <b>loop</b>
+ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A>) = ' ';
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> := <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> - 1;
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A>;
- <A HREF="terminal_interface-curses-text_io-aux__adb.htm#58_17">Output</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#50_7">L</A> + 1, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#49_7">Buf</A>'Length);
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_51_7">Len</A> := <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length - <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A>;
+ <A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_58_17">Output</A> (<A HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_50_7">L</A> + 1, <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_49_7">Buf</A>'Length);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A><A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A><A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-aux.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-aux.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="41_51">Aux</A></FONT> <b>is</b>
+<b>private</b> <b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_41_51" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_41_48">Aux</A></FONT> <b>is</b>
<FONT COLOR=green><EM>-- pragma Preelaborate (Aux);</EM></FONT>
<FONT COLOR=green><EM>-- This routine is called from the Text_IO output routines for numeric</EM></FONT>
<FONT COLOR=green><EM>-- and enumeration types.</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-aux__adb.htm#43_14">Put_Buf</A><FONT COLOR=red><A NAME="47_14"></A></FONT>
- (<FONT COLOR=red><A NAME="48_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=green><EM>-- The output window</EM></FONT>
- <FONT COLOR=red><A NAME="49_7">Buf</A></FONT> : <b>in</b> String; <FONT COLOR=green><EM>-- The buffer containing the text</EM></FONT>
- <FONT COLOR=red><A NAME="50_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>; <FONT COLOR=green><EM>-- The width of the output field</EM></FONT>
- <FONT COLOR=red><A NAME="51_7">Signal</A></FONT> : <b>in</b> Boolean := True; <FONT COLOR=green><EM>-- If true, we raise Layout_Error</EM></FONT>
- <FONT COLOR=red><A NAME="52_7">Ljust</A></FONT> : <b>in</b> Boolean := False); <FONT COLOR=green><EM>-- The Buf is left justified</EM></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_47_14" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_43_14">Put_Buf</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_48_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_44_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=green><EM>-- The output window</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_45_7">Buf</A></FONT> : <b>in</b> String; <FONT COLOR=green><EM>-- The buffer containing the text</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_46_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>; <FONT COLOR=green><EM>-- The width of the output field</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_47_7">Signal</A></FONT> : <b>in</b> Boolean := True; <FONT COLOR=green><EM>-- If true, we raise Layout_Error</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-aux__adb.htm#ref_48_7">Ljust</A></FONT> : <b>in</b> Boolean := False); <FONT COLOR=green><EM>-- The Buf is left justified</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A><A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.10 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">Complex_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_43_48" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="45_12">FIO</A></FONT> <b>is</b> <b>new</b>
- <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#44_17">Complex_Types</A>.Real'Base);
+ <b>package</b> <FONT COLOR=red><A NAME="ref_45_12">FIO</A></FONT> <b>is</b> <b>new</b>
+ <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_44_17">Complex_Types</A>.Real'Base);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#54_14">Put</A><FONT COLOR=red><A NAME="48_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Item</A> : <b>in</b> Complex;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Exp</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_48_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_49_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Item</A></FONT> : <b>in</b> Complex;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, '(');
- <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Item</A>.Re, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, ',');
- <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#56_7">Item</A>.Im, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#59_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#55_7">Win</A>, ')');
- <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#54_14">Put</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#54_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, '(');
+ <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Item</A>.Re, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A>);
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, ',');
+ <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_45_12">FIO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_56_7">Item</A>.Im, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_57_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_58_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_59_7">Exp</A>);
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_55_7">Win</A>, ')');
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">Put</A><FONT COLOR=red><A NAME="63_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#62_7">Item</A> : <b>in</b> Complex;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#63_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#64_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#65_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Exp</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_7">Item</A></FONT> : <b>in</b> Complex;
+ <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_66_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#54_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#62_7">Item</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#63_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#64_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#65_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">Put</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#61_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_54_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_62_7">Item</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_63_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_64_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_65_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_61_14">Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">Complex_IO</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-complex_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-complex_io.ads </H1></DIV><HR>
<b>with</b> Ada.Numerics.Generic_Complex_Types;
<b>generic</b>
- <b>with</b> <b>package</b> <FONT COLOR=red><A NAME="44_17">Complex_Types</A></FONT> <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (<>);
+ <b>with</b> <b>package</b> <FONT COLOR=red><A NAME="ref_44_17">Complex_Types</A></FONT> <b>is</b> <b>new</b> Ada.Numerics.Generic_Complex_Types (<>);
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="46_43">Complex_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_46_43" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_43_48">Complex_IO</A></FONT> <b>is</b>
- <b>use</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#44_17">Complex_Types</A>;
+ <b>use</b> <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_44_17">Complex_Types</A>;
- <FONT COLOR=red><A NAME="50_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 2;
- <FONT COLOR=red><A NAME="51_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := Real'<b>Digits</b> - 1;
- <FONT COLOR=red><A NAME="52_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 3;
+ <FONT COLOR=red><A NAME="ref_50_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2;
+ <FONT COLOR=red><A NAME="ref_51_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := Real'<b>Digits</b> - 1;
+ <FONT COLOR=red><A NAME="ref_52_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#48_14">Put</A><FONT COLOR=red><A NAME="54_14"></A></FONT>
- (<FONT COLOR=red><A NAME="55_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="56_7">Item</A></FONT> : <b>in</b> Complex;
- <FONT COLOR=red><A NAME="57_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="58_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="59_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_54_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_48_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_49_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_50_7">Item</A></FONT> : <b>in</b> Complex;
+ <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_51_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_52_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_53_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-complex_io__adb.htm#63_14">Put</A><FONT COLOR=red><A NAME="61_14"></A></FONT>
- (<FONT COLOR=red><A NAME="62_7">Item</A></FONT> : <b>in</b> Complex;
- <FONT COLOR=red><A NAME="63_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#50_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="64_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#51_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="65_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#52_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_63_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_64_7">Item</A></FONT> : <b>in</b> Complex;
+ <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_65_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_50_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_66_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_51_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_65_7" HREF="terminal_interface-curses-text_io-complex_io__adb.htm#ref_67_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_52_4">Default_Exp</A>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">Complex_IO</A><A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#46_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-complex_io__ads.htm#ref_46_43">Complex_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">Decimal_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
- <b>package</b> <FONT COLOR=red><A NAME="47_12">DIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Decimal_IO (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>);
+ <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">DIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Decimal_IO (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#51_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#52_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#53_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Exp</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
- <FONT COLOR=red><A NAME="57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Aft</A>;
+ <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+ <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A> > 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A> > 0 <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#47_12">DIO</A>.Put (<A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#55_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#57_7">Len</A>, False);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#50_14">Put</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#50_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_47_12">DIO</A>.Put (<A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_55_7">Exp</A>);
+ <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_57_7">Len</A>, False);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">Put</A><FONT COLOR=red><A NAME="66_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#58_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#59_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#60_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#61_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Exp</A>) <b>is</b>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#61_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">Put</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#57_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_61_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_57_14">Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">Decimal_IO</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-decimal_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-decimal_io.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>delta</b> <> <b>digits</b> <>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>delta</b> <> <b>digits</b> <>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Decimal_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_44_48">Decimal_IO</A></FONT> <b>is</b>
- <FONT COLOR=red><A NAME="46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>'Fore;
- <FONT COLOR=red><A NAME="47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>'Aft;
- <FONT COLOR=red><A NAME="48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 0;
+ <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Fore;
+ <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>'Aft;
+ <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
- (<FONT COLOR=red><A NAME="51_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="54_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="55_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_52_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_53_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_54_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#66_14">Put</A><FONT COLOR=red><A NAME="57_14"></A></FONT>
- (<FONT COLOR=red><A NAME="58_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#46_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="60_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#47_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="61_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#48_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_66_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_67_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_68_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_69_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-decimal_io__adb.htm#ref_70_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_48_4">Default_Exp</A>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">Decimal_IO</A><A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-decimal_io__ads.htm#ref_44_43">Decimal_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Text_IO;
<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">Enumeration_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_45_48" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
- <b>package</b> <FONT COLOR=red><A NAME="48_12">EIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Enumeration_IO (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>);
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_48_12">EIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Enumeration_IO (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#50_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#51_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#52_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Setting</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
- <FONT COLOR=red><A NAME="57_7">Tset</A></FONT> : Ada.Text_IO.Type_Set;
+ <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+ <FONT COLOR=red><A NAME="ref_57_7">Tset</A></FONT> : Ada.Text_IO.Type_Set;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A> /= <A HREF="terminal_interface-curses-text_io__ads.htm#53_46">Mixed_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A> := Ada.Text_IO.Type_Set'Val (<A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A>'Pos (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A> /= <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Tset</A> := Ada.Text_IO.Type_Set'Val (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A>'Pos (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A>));
<b>else</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A> := Ada.Text_IO.Lower_Case;
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Tset</A> := Ada.Text_IO.Lower_Case;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#48_12">EIO</A>.Put (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#57_7">Tset</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#53_7">Set</A> = <A HREF="terminal_interface-curses-text_io__ads.htm#53_46">Mixed_Case</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>'First) := To_Upper (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>'First));
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_48_12">EIO</A>.Put (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_57_7">Tset</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_53_7">Set</A> = <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A>'First) := To_Upper (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A>'First));
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#52_7">Width</A>, True, True);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14">Put</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_47_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_52_7">Width</A>, True, True);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">Put</A><FONT COLOR=red><A NAME="71_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#56_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#57_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
- <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#58_7">Set</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Setting</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_71_14" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_72_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+ <FONT COLOR=red><A NAME="ref_73_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_74_7" HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#58_7">Set</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">Put</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#55_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_58_7">Set</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_55_14">Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">Enumeration_IO</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-enumeration_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-enumeration_io.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Enum</A></FONT> <b>is</b> (<>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Enum</A></FONT> <b>is</b> (<>);
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Enumeration_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_45_48">Enumeration_IO</A></FONT> <b>is</b>
- <FONT COLOR=red><A NAME="46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 0;
- <FONT COLOR=red><A NAME="47_4">Default_Setting</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#53_46">Mixed_Case</A>;
+ <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
+ <FONT COLOR=red><A NAME="ref_47_4">Default_Setting</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_46">Mixed_Case</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<FONT COLOR=red><A NAME="50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
- <FONT COLOR=red><A NAME="52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
- <FONT COLOR=red><A NAME="53_7">Set</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Setting</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_50_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_51_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_53_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_54_7">Set</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#71_14">Put</A><FONT COLOR=red><A NAME="55_14"></A></FONT>
- (<FONT COLOR=red><A NAME="56_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#42_9">Enum</A>;
- <FONT COLOR=red><A NAME="57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#46_4">Default_Width</A>;
- <FONT COLOR=red><A NAME="58_7">Set</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#47_4">Default_Setting</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_71_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_72_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_42_9">Enum</A>;
+ <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_73_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-enumeration_io__adb.htm#ref_74_7">Set</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_53_9">Type_Set</A> := <A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_47_4">Default_Setting</A>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">Enumeration_IO</A><A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-enumeration_io__ads.htm#ref_44_43">Enumeration_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">Fixed_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
- <b>package</b> <FONT COLOR=red><A NAME="47_12">FIXIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Fixed_IO (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>);
+ <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">FIXIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Fixed_IO (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#51_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#52_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#53_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Exp</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
- <FONT COLOR=red><A NAME="57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Aft</A>;
+ <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+ <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A> > 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A> > 0 <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#47_12">FIXIO</A>.Put (<A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#55_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#57_7">Len</A>, False);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#50_14">Put</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#50_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_47_12">FIXIO</A>.Put (<A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_55_7">Exp</A>);
+ <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_57_7">Len</A>, False);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">Put</A><FONT COLOR=red><A NAME="66_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#58_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#59_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#60_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#61_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Exp</A>) <b>is</b>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>) <b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#61_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">Put</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#57_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_61_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_57_14">Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">Fixed_IO</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-fixed_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-fixed_io.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>delta</b> <>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>delta</b> <>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Fixed_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_44_48">Fixed_IO</A></FONT> <b>is</b>
- <FONT COLOR=red><A NAME="46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>'Fore;
- <FONT COLOR=red><A NAME="47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>'Aft;
- <FONT COLOR=red><A NAME="48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 0;
+ <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Fore;
+ <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>'Aft;
+ <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 0;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
- (<FONT COLOR=red><A NAME="51_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="54_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="55_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_52_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_53_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_54_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#66_14">Put</A><FONT COLOR=red><A NAME="57_14"></A></FONT>
- (<FONT COLOR=red><A NAME="58_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#46_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="60_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#47_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="61_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#48_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_66_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_67_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_68_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_69_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-fixed_io__adb.htm#ref_70_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_48_4">Default_Exp</A>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">Fixed_IO</A><A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-fixed_io__ads.htm#ref_44_43">Fixed_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
- <b>package</b> <FONT COLOR=red><A NAME="47_12">FIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Float_IO (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>);
+ <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">FIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Float_IO (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#50_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#51_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#52_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#53_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Exp</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
- <FONT COLOR=red><A NAME="57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Aft</A>;
+ <FONT COLOR=red><A NAME="ref_56_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
+ <FONT COLOR=red><A NAME="ref_57_7">Len</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_53_7">Fore</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A> > 0 <b>then</b>
- <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A> > 0 <b>then</b>
+ <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A> := <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A> + 1 + <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#47_12">FIO</A>.Put (<A HREF="terminal_interface-curses-text_io-float_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#55_7">Exp</A>);
- <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#57_7">Len</A>, False);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#50_14">Put</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#50_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_47_12">FIO</A>.Put (<A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_52_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_54_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_55_7">Exp</A>);
+ <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_51_7">Win</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_56_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_57_7">Len</A>, False);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A><FONT COLOR=red><A NAME="66_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#58_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#59_7">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#60_7">Aft</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#61_7">Exp</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Exp</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_67_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_68_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_69_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_70_7" HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#61_7">Exp</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">Put</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#57_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_50_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_58_7">Item</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_59_7">Fore</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_60_7">Aft</A>, <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_61_7">Exp</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_57_14">Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-float_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-float_io.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>digits</b> <>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>digits</b> <>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Float_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_44_48">Float_IO</A></FONT> <b>is</b>
- <FONT COLOR=red><A NAME="46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 2;
- <FONT COLOR=red><A NAME="47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>'<b>Digits</b> - 1;
- <FONT COLOR=red><A NAME="48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := 3;
+ <FONT COLOR=red><A NAME="ref_46_4">Default_Fore</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 2;
+ <FONT COLOR=red><A NAME="ref_47_4">Default_Aft</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>'<b>Digits</b> - 1;
+ <FONT COLOR=red><A NAME="ref_48_4">Default_Exp</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := 3;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="50_14"></A></FONT>
- (<FONT COLOR=red><A NAME="51_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="52_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="53_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="54_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="55_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_50_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_52_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_54_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_53_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_55_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_54_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-float_io__adb.htm#66_14">Put</A><FONT COLOR=red><A NAME="57_14"></A></FONT>
- (<FONT COLOR=red><A NAME="58_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="59_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#46_4">Default_Fore</A>;
- <FONT COLOR=red><A NAME="60_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#47_4">Default_Aft</A>;
- <FONT COLOR=red><A NAME="61_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#48_4">Default_Exp</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_57_14" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_66_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_67_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_59_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_68_7">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_46_4">Default_Fore</A>;
+ <FONT COLOR=red><A NAME="ref_60_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_69_7">Aft</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_47_4">Default_Aft</A>;
+ <FONT COLOR=red><A NAME="ref_61_7" HREF="terminal_interface-curses-text_io-float_io__adb.htm#ref_70_7">Exp</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_48_4">Default_Exp</A>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">Float_IO</A><A HREF="terminal_interface-curses-text_io-float_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-float_io__ads.htm#ref_44_43">Float_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">Integer_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
- <b>package</b> <FONT COLOR=red><A NAME="47_12">IIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Integer_IO (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>);
+ <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">IIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Integer_IO (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#50_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#51_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#52_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
- <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#53_7">Base</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Base</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
+ <FONT COLOR=red><A NAME="ref_55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#47_12">IIO</A>.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#53_7">Base</A>);
- <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#52_7">Width</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#49_14">Put</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#49_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_47_12">IIO</A>.Put (<A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_53_7">Base</A>);
+ <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_52_7">Width</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">Put</A><FONT COLOR=red><A NAME="61_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#56_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#57_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
- <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#58_7">Base</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Base</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#58_7">Base</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">Put</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#55_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_58_7">Base</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_55_14">Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">Integer_IO</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-integer_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-integer_io.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>range</b> <>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>range</b> <>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Integer_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_44_48">Integer_IO</A></FONT> <b>is</b>
- <FONT COLOR=red><A NAME="46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>'Width;
- <FONT COLOR=red><A NAME="47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := 10;
+ <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>'Width;
+ <FONT COLOR=red><A NAME="ref_47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<FONT COLOR=red><A NAME="50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
- <FONT COLOR=red><A NAME="53_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Base</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_53_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-integer_io__adb.htm#61_14">Put</A><FONT COLOR=red><A NAME="55_14"></A></FONT>
- (<FONT COLOR=red><A NAME="56_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#46_4">Default_Width</A>;
- <FONT COLOR=red><A NAME="58_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#47_4">Default_Base</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_61_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_62_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_63_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-integer_io__adb.htm#ref_64_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_47_4">Default_Base</A>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">Integer_IO</A><A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-integer_io__ads.htm#ref_44_43">Integer_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Ada.Text_IO;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">Modular_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_48" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A></FONT> <b>is</b>
- <b>package</b> <FONT COLOR=red><A NAME="46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#41_51">Aux</A>;
- <b>package</b> <FONT COLOR=red><A NAME="47_12">MIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Modular_IO (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>);
+ <b>package</b> <FONT COLOR=red><A NAME="ref_46_12">Aux</A></FONT> <b>renames</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_41_51">Aux</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_47_12">MIO</A></FONT> <b>is</b> <b>new</b> Ada.Text_IO.Modular_IO (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#50_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#51_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#52_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
- <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#53_7">Base</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Base</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A>'Last);
+ <FONT COLOR=red><A NAME="ref_55_7">Buf</A></FONT> : String (1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A>'Last);
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#47_12">MIO</A>.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#53_7">Base</A>);
- <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#52_7">Width</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#49_14">Put</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#49_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_47_12">MIO</A>.Put (<A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_51_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_53_7">Base</A>);
+ <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_46_12">Aux</A>.<A HREF="terminal_interface-curses-text_io-aux__ads.htm#ref_47_14">Put_Buf</A> (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_50_7">Win</A>, <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_55_7">Buf</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_52_7">Width</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">Put</A><FONT COLOR=red><A NAME="61_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#56_7">Item</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
- <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#57_7">Width</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
- <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#58_7">Base</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Base</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_61_14" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_62_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_63_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_64_7" HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#58_7">Base</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">Put</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#55_14">;</A>
+ <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_49_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_56_7">Item</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_57_7">Width</A>, <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_58_7">Base</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_55_14">Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">Modular_IO</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io-modular_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io-modular_io.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="42_9">Num</A></FONT> <b>is</b> <b>mod</b> <>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_42_9">Num</A></FONT> <b>is</b> <b>mod</b> <>;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<FONT COLOR=red><A NAME="44_43">Modular_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<FONT COLOR=red><A NAME="ref_44_43" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_44_48">Modular_IO</A></FONT> <b>is</b>
- <FONT COLOR=red><A NAME="46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>'Width;
- <FONT COLOR=red><A NAME="47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := 10;
+ <FONT COLOR=red><A NAME="ref_46_4">Default_Width</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>'Width;
+ <FONT COLOR=red><A NAME="ref_47_4">Default_Base</A></FONT> : <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := 10;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#49_14">Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT>
- (<FONT COLOR=red><A NAME="50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
- <FONT COLOR=red><A NAME="53_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Base</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_49_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_50_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_50_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_51_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_51_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_52_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_52_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_53_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_53_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io-modular_io__adb.htm#61_14">Put</A><FONT COLOR=red><A NAME="55_14"></A></FONT>
- (<FONT COLOR=red><A NAME="56_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#42_9">Num</A>;
- <FONT COLOR=red><A NAME="57_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#46_4">Default_Width</A>;
- <FONT COLOR=red><A NAME="58_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#47_4">Default_Base</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_55_14" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_61_14">Put</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_56_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_62_7">Item</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_42_9">Num</A>;
+ <FONT COLOR=red><A NAME="ref_57_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_63_7">Width</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_50_12">Field</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_46_4">Default_Width</A>;
+ <FONT COLOR=red><A NAME="ref_58_7" HREF="terminal_interface-curses-text_io-modular_io__adb.htm#ref_64_7">Base</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_51_12">Number_Base</A> := <A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_47_4">Default_Base</A>);
<b>private</b>
<b>pragma</b> Inline (Put);
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">Modular_IO</A><A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#44_43">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>.<A HREF="terminal_interface-curses-text_io-modular_io__ads.htm#ref_44_43">Modular_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.14 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.17 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_40" HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A></FONT> <b>is</b>
- <FONT COLOR=red><A NAME="43_4">Default_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A>;
+ <FONT COLOR=red><A NAME="ref_44_4">Default_Window</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#59_14">Set_Window</A><FONT COLOR=red><A NAME="45_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#59_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_46_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_46_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#59_26">Win</A>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#59_14">Set_Window</A><A HREF="terminal_interface-curses-text_io__ads.htm#59_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_59_26">Win</A>;
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_59_14">Set_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_52_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#43_4">Default_Window</A>;
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_44_4">Default_Window</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A><A HREF="terminal_interface-curses-text_io__ads.htm#62_13">;</A>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>;
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#65_14">Flush</A><FONT COLOR=red><A NAME="62_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#65_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_63_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_63_21" HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1038_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#65_21">Win</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#65_14">Flush</A><A HREF="terminal_interface-curses-text_io__ads.htm#65_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_21">Win</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#66_14">Flush</A><FONT COLOR=red><A NAME="68_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_69_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A></FONT>
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#65_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#66_14">Flush</A><A HREF="terminal_interface-curses-text_io__ads.htm#66_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_65_14">Flush</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_66_14">Flush</A>;
<FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
<FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
<FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#77_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#77_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_84_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_84_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
<b>is</b>
- <FONT COLOR=red><A NAME="85_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="86_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_86_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_87_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#85_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Cols</A>);
- <b>if</b> Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Cols</A>) > Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#86_7">N_Cols</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#77_13">Line_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#77_13">;</A>
-
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_86_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
+ <FONT COLOR=green><EM>-- if Natural (N_Cols) > Natural (Count'Last) then</EM></FONT>
+ <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+ <FONT COLOR=green><EM>-- end if;</EM></FONT>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_87_7">N_Cols</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A>;
+
+ <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#77_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#78_13">Line_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#78_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_77_13">Line_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_78_13">Line_Length</A>;
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#80_26">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_102_26" HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
<b>is</b>
- <FONT COLOR=red><A NAME="103_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="104_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_104_7">N_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_105_7">N_Cols</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1015_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#80_26">Win</A>) <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>) <b>then</b>
<b>return</b> 0;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#103_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#104_7">N_Cols</A>);
- <b>if</b> Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#103_7">N_Lines</A>) > Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#103_7">N_Lines</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_26">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_105_7">N_Cols</A>);
+ <FONT COLOR=green><EM>-- if Natural (N_Lines) > Natural (Count'Last) then</EM></FONT>
+ <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+ <FONT COLOR=green><EM>-- end if;</EM></FONT>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_104_7">N_Lines</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#80_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A>;
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_118_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#81_13">Page_Length</A><A HREF="terminal_interface-curses-text_io__ads.htm#81_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_81_13">Page_Length</A>;
<FONT COLOR=green><EM>------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Column, Line, and Page Control --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A><FONT COLOR=red><A NAME="126_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#86_41">Spacing</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_127_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_127_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_127_41" HREF="terminal_interface-curses-text_io__ads.htm#ref_86_41">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1)
<b>is</b>
- <FONT COLOR=red><A NAME="128_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>);
+ <FONT COLOR=red><A NAME="ref_129_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#86_41">Spacing</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_41">Spacing</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>for</b> <FONT COLOR=red><A NAME="134_11">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#86_41">Spacing</A> <b>loop</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#128_7">P_Size</A> > 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>) >= <A HREF="terminal_interface-curses-text_io__adb.htm#128_7">P_Size</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>);
+ <b>for</b> <FONT COLOR=red><A NAME="ref_135_11">I</A></FONT> <b>in</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_41">Spacing</A> <b>loop</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> > 0 <b>and</b> <b>then</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>) >= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_129_7">P_Size</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>);
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#521_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#86_24">Win</A>, ASCII.LF);
+ <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_24">Win</A>, ASCII.LF);
<b>end</b> <b>if</b>;
<b>end</b> <b>loop</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#86_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A><FONT COLOR=red><A NAME="143_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Spacing</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_144_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_144_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#87_24">Spacing</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#87_14">New_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#87_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_24">Spacing</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_87_14">New_Line</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A><FONT COLOR=red><A NAME="149_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#89_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_150_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_150_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1073_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#89_24">Win</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A><A HREF="terminal_interface-curses-text_io__ads.htm#89_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_24">Win</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A><FONT COLOR=red><A NAME="155_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_156_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A></FONT>
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#90_14">New_Page</A><A HREF="terminal_interface-curses-text_io__ads.htm#90_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_90_14">New_Page</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#92_14">Set_Col</A><FONT COLOR=red><A NAME="161_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#92_41">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_162_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_162_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_162_41" HREF="terminal_interface-curses-text_io__ads.htm#ref_92_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="163_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="164_7">X1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="165_7">X2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="166_7">N</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_164_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_165_7">X1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_166_7">X2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_167_7">N</A></FONT> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#92_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#163_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#92_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A> - 1;
- <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#166_7">N</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A> > <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A>, 1);
- <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A> := 0;
+ <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_164_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A> - 1;
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_167_7">N</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> > <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, 1);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> := 0;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A> < <A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A> < <A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A> <b>then</b>
<b>declare</b>
- <FONT COLOR=red><A NAME="181_13">Filler</A></FONT> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#164_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#165_7">X2</A>) - 1))
+ <FONT COLOR=red><A NAME="ref_182_13">Filler</A></FONT> : <b>constant</b> String (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_165_7">X1</A>) .. (Integer (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_166_7">X2</A>) - 1))
:= (<b>others</b> => ' ');
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#181_13">Filler</A>);
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_23">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_182_13">Filler</A>);
<b>end</b>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#92_14">Set_Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#92_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#93_14">Set_Col</A><FONT COLOR=red><A NAME="189_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#93_23">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_190_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_190_23" HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#92_14">Set_Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#93_23">To</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#93_14">Set_Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#93_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_92_14">Set_Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_23">To</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_93_14">Set_Col</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#95_14">Set_Line</A><FONT COLOR=red><A NAME="195_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#95_41">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_196_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_196_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_196_41" HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="197_7">Y1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="198_7">Y2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="199_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="200_7">N</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_198_7">Y1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_199_7">Y2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_200_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_201_7">N</A></FONT> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#95_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">To</A> <b>not</b> <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#199_7">X</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#95_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A> - 1;
- <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#200_7">N</A>);
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> < <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A> := 0;
+ <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_200_7">X</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_41">To</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A> - 1;
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_201_7">N</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> < <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> := 0;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A> < <A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#198_7">Y2</A> - <A HREF="terminal_interface-curses-text_io__adb.htm#197_7">Y1</A>));
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A> < <A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_24">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_199_7">Y2</A> - <A HREF="terminal_interface-curses-text_io__adb.htm#ref_198_7">Y1</A>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#95_14">Set_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#95_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#96_14">Set_Line</A><FONT COLOR=red><A NAME="218_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#96_24">To</A> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_219_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_219_24" HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#95_14">Set_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#96_24">To</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#96_14">Set_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#96_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_95_14">Set_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_24">To</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_96_14">Set_Line</A>;
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#98_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#98_18">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_225_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_225_18" HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
<b>is</b>
- <FONT COLOR=red><A NAME="226_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="227_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="228_7">N</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_227_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_228_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_229_7">N</A></FONT> : Natural;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#226_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#227_7">X</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#227_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> + 1;
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A> > Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#228_7">N</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#98_13">Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#98_13">;</A>
-
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_18">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_227_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_228_7">X</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A> + 1;
+ <FONT COLOR=green><EM>-- if N > Natural (Count'Last) then</EM></FONT>
+ <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+ <FONT COLOR=green><EM>-- end if;</EM></FONT>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_229_7">N</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A>;
+
+ <b>function</b> <FONT COLOR=red><A NAME="ref_239_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#98_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#99_13">Col</A><A HREF="terminal_interface-curses-text_io__ads.htm#99_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_98_13">Col</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_99_13">Col</A>;
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#101_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_245_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_245_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
<b>is</b>
- <FONT COLOR=red><A NAME="246_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="247_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="248_7">N</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_247_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_248_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_249_7">N</A></FONT> : Natural;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#246_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#247_7">X</A>);
- <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#246_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> + 1;
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A> > Natural (<A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses-text_io__ads.htm#134_4">Layout_Error</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#248_7">N</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#101_13">;</A>
-
- <b>function</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_248_7">X</A>);
+ <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := Natural (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_247_7">Y</A>); <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> := <A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A> + 1;
+ <FONT COLOR=green><EM>-- if N > Natural (Count'Last) then</EM></FONT>
+ <FONT COLOR=green><EM>-- raise Layout_Error;</EM></FONT>
+ <FONT COLOR=green><EM>-- end if;</EM></FONT>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_249_7">N</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A>;
+
+ <b>function</b> <FONT COLOR=red><A NAME="ref_259_13" HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#102_13">Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#102_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_101_13">Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_102_13">Line</A>;
<FONT COLOR=green><EM>-----------------------</EM></FONT>
<FONT COLOR=green><EM>-- Characters Output --</EM></FONT>
<FONT COLOR=green><EM>-----------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A><FONT COLOR=red><A NAME="268_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#108_37">Item</A> : <b>in</b> Character)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_269_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_269_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_269_37" HREF="terminal_interface-curses-text_io__ads.htm#ref_108_37">Item</A></FONT> : <b>in</b> Character)
<b>is</b>
- <FONT COLOR=red><A NAME="270_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>);
- <FONT COLOR=red><A NAME="271_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="272_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="273_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="274_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_271_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>);
+ <FONT COLOR=red><A NAME="ref_272_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_273_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_274_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_275_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#270_7">P_Size</A> > 0 <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#271_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#272_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#273_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#274_7">C</A>);
- <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#271_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#273_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#272_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#274_7">C</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_271_7">P_Size</A> > 0 <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A>);
+ <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_272_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_274_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_273_7">X</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_275_7">C</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#521_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#108_37">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#108_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_37">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A><FONT COLOR=red><A NAME="286_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Item</A> : <b>in</b> Character)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_287_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_287_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A></FONT> : <b>in</b> Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#108_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#109_19">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#109_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#109_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_108_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_19">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_109_14">Put</A>;
<FONT COLOR=green><EM>--------------------</EM></FONT>
<FONT COLOR=green><EM>-- Strings-Output --</EM></FONT>
<FONT COLOR=green><EM>--------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A><FONT COLOR=red><A NAME="296_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <A HREF="terminal_interface-curses-text_io__ads.htm#115_37">Item</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_297_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_297_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_297_37" HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A></FONT> : <b>in</b> String)
<b>is</b>
- <FONT COLOR=red><A NAME="298_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>);
- <FONT COLOR=red><A NAME="299_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="300_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="301_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="302_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_299_7">P_Size</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> := <A HREF="terminal_interface-curses-text_io__ads.htm#ref_80_13">Page_Length</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>);
+ <FONT COLOR=red><A NAME="ref_300_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_301_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_302_7">L</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_303_7">C</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#298_7">P_Size</A> > 0 <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#299_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#300_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#301_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#302_7">C</A>);
- <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#299_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#301_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#300_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#115_37">Item</A>'Length) >= <A HREF="terminal_interface-curses-text_io__adb.htm#302_7">C</A> <b>then</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-text_io__adb.htm#ref_299_7">P_Size</A> > 0 <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A>, <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A>);
+ <b>if</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_300_7">Y</A> + 1) = <A HREF="terminal_interface-curses-text_io__adb.htm#ref_302_7">L</A> <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses-text_io__adb.htm#ref_301_7">X</A> + 1 + <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>'Length) >= <A HREF="terminal_interface-curses-text_io__adb.htm#ref_303_7">C</A> <b>then</b>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_89_14">New_Page</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>);
<b>end</b> <b>if</b>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#646_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#115_37">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#115_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_19">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_37">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#116_14">Put</A><FONT COLOR=red><A NAME="314_14"></A></FONT> (<A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Item</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_315_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_315_19" HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A></FONT> : <b>in</b> String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#116_19">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#116_14">Put</A><A HREF="terminal_interface-curses-text_io__ads.htm#116_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_19">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_116_14">Put</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#118_14">Put_Line</A><FONT COLOR=red><A NAME="320_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io__ads.htm#119_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses-text_io__ads.htm#120_7">Item</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_321_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_322_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_323_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A></FONT> : <b>in</b> String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#119_7">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#120_7">Item</A>);
- <A HREF="terminal_interface-curses-text_io__ads.htm#86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#119_7">Win</A>, 1);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#118_14">Put_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#118_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_115_14">Put</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_120_7">Item</A>);
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_86_14">New_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_119_7">Win</A>, 1);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__ads.htm#122_14">Put_Line</A><FONT COLOR=red><A NAME="329_14"></A></FONT>
- (<A HREF="terminal_interface-curses-text_io__ads.htm#123_7">Item</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_330_14" HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_331_7" HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A></FONT> : <b>in</b> String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses-text_io__ads.htm#118_14">Put_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#123_7">Item</A>);
- <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#122_14">Put_Line</A><A HREF="terminal_interface-curses-text_io__ads.htm#122_14">;</A>
+ <A HREF="terminal_interface-curses-text_io__ads.htm#ref_118_14">Put_Line</A> (<A HREF="terminal_interface-curses-text_io__ads.htm#ref_62_13">Get_Window</A>, <A HREF="terminal_interface-curses-text_io__ads.htm#ref_123_7">Item</A>);
+ <b>end</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_122_14">Put_Line</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A><A HREF="terminal_interface-curses-text_io__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-text_io.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-text_io.ads </H1></DIV><HR>
<b>with</b> Ada.Text_IO;
<b>with</b> Ada.IO_Exceptions;
-<b>package</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<FONT COLOR=red><A NAME="44_35">Text_IO</A></FONT> <b>is</b>
+<b>package</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_44_35" HREF="terminal_interface-curses-text_io__adb.htm#ref_42_40">Text_IO</A></FONT> <b>is</b>
<b>use</b> <b>type</b> Ada.Text_IO.Count;
- <b>subtype</b> <FONT COLOR=red><A NAME="47_12">Count</A></FONT> <b>is</b> Ada.Text_IO.Count;
- <b>subtype</b> <FONT COLOR=red><A NAME="48_12">Positive_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>'Last;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_47_12">Count</A></FONT> <b>is</b> Ada.Text_IO.Count;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_48_12">Positive_Count</A></FONT> <b>is</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A> <b>range</b> 1 .. <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>'Last;
- <b>subtype</b> <FONT COLOR=red><A NAME="50_12">Field</A></FONT> <b>is</b> Ada.Text_IO.Field;
- <b>subtype</b> <FONT COLOR=red><A NAME="51_12">Number_Base</A></FONT> <b>is</b> Integer <b>range</b> 2 .. 16;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_50_12">Field</A></FONT> <b>is</b> Ada.Text_IO.Field;
+ <b>subtype</b> <FONT COLOR=red><A NAME="ref_51_12">Number_Base</A></FONT> <b>is</b> Integer <b>range</b> 2 .. 16;
- <b>type</b> <FONT COLOR=red><A NAME="53_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="53_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="53_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="53_46">Mixed_Case</A></FONT>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_53_9">Type_Set</A></FONT> <b>is</b> (<FONT COLOR=red><A NAME="ref_53_22">Lower_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_53_34">Upper_Case</A></FONT>, <FONT COLOR=red><A NAME="ref_53_46">Mixed_Case</A></FONT>);
<FONT COLOR=green><EM>-- For most of the routines you will see a version without a Window</EM></FONT>
<FONT COLOR=green><EM>-- type parameter. They will operate on a default window, which can</EM></FONT>
<FONT COLOR=green><EM>-- be set by the user. It is initially equal to Standard_Window.</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#45_14">Set_Window</A><FONT COLOR=red><A NAME="59_14"></A></FONT> (<FONT COLOR=red><A NAME="59_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_59_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_14">Set_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_59_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_46_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
<FONT COLOR=green><EM>-- Set Win as the default window</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="62_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_62_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_52_13">Get_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
<FONT COLOR=green><EM>-- Get the current default window</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#62_14">Flush</A><FONT COLOR=red><A NAME="65_14"></A></FONT> (<FONT COLOR=red><A NAME="65_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#68_14">Flush</A><FONT COLOR=red><A NAME="66_14"></A></FONT>;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_65_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_14">Flush</A></FONT> (<FONT COLOR=red><A NAME="ref_65_21" HREF="terminal_interface-curses-text_io__adb.htm#ref_63_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_66_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_69_14">Flush</A></FONT>;
<FONT COLOR=green><EM>--------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Specification of line and page lengths --</EM></FONT>
<FONT COLOR=green><EM>-- A scroll-window is interpreted as an page with unbounded page length,</EM></FONT>
<FONT COLOR=green><EM>-- i.e. it returns the conventional 0 as page length.</EM></FONT>
- <b>function</b> <FONT COLOR=red><A NAME="77_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="77_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
- <b>function</b> <FONT COLOR=red><A NAME="78_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_77_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_13">Line_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_77_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_84_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_78_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_96_13">Line_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
- <b>function</b> <FONT COLOR=red><A NAME="80_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="80_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
- <b>function</b> <FONT COLOR=red><A NAME="81_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#47_12">Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_80_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_13">Page_Length</A></FONT> (<FONT COLOR=red><A NAME="ref_80_26" HREF="terminal_interface-curses-text_io__adb.htm#ref_102_26">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_81_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_118_13">Page_Length</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_47_12">Count</A>;
<FONT COLOR=green><EM>------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Column, Line, and Page Control --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#126_14">New_Line</A><FONT COLOR=red><A NAME="86_14"></A></FONT> (<FONT COLOR=red><A NAME="86_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="86_41">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#143_14">New_Line</A><FONT COLOR=red><A NAME="87_14"></A></FONT> (<FONT COLOR=red><A NAME="87_24">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A> := 1);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_86_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_86_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_86_41" HREF="terminal_interface-curses-text_io__adb.htm#ref_127_41">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_87_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_14">New_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_87_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_144_24">Spacing</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A> := 1);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#149_14">New_Page</A><FONT COLOR=red><A NAME="89_14"></A></FONT> (<FONT COLOR=red><A NAME="89_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#155_14">New_Page</A><FONT COLOR=red><A NAME="90_14"></A></FONT>;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_89_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_14">New_Page</A></FONT> (<FONT COLOR=red><A NAME="ref_89_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_150_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_90_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_156_14">New_Page</A></FONT>;
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#161_14">Set_Col</A><FONT COLOR=red><A NAME="92_14"></A></FONT> (<FONT COLOR=red><A NAME="92_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="92_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#189_14">Set_Col</A><FONT COLOR=red><A NAME="93_14"></A></FONT> (<FONT COLOR=red><A NAME="93_23">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_92_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_92_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_92_41" HREF="terminal_interface-curses-text_io__adb.htm#ref_162_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_93_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_14">Set_Col</A></FONT> (<FONT COLOR=red><A NAME="ref_93_23" HREF="terminal_interface-curses-text_io__adb.htm#ref_190_23">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#195_14">Set_Line</A><FONT COLOR=red><A NAME="95_14"></A></FONT> (<FONT COLOR=red><A NAME="95_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="95_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#218_14">Set_Line</A><FONT COLOR=red><A NAME="96_14"></A></FONT> (<FONT COLOR=red><A NAME="96_24">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_95_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_95_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_24">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_95_41" HREF="terminal_interface-curses-text_io__adb.htm#ref_196_41">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_96_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_219_14">Set_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_96_24" HREF="terminal_interface-curses-text_io__adb.htm#ref_219_24">To</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>);
- <b>function</b> <FONT COLOR=red><A NAME="98_13">Col</A></FONT> (<FONT COLOR=red><A NAME="98_18">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
- <b>function</b> <FONT COLOR=red><A NAME="99_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_98_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_225_13">Col</A></FONT> (<FONT COLOR=red><A NAME="ref_98_18" HREF="terminal_interface-curses-text_io__adb.htm#ref_225_18">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_99_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_239_13">Col</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
- <b>function</b> <FONT COLOR=red><A NAME="101_13">Line</A></FONT> (<FONT COLOR=red><A NAME="101_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
- <b>function</b> <FONT COLOR=red><A NAME="102_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#48_12">Positive_Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_101_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_245_13">Line</A></FONT> (<FONT COLOR=red><A NAME="ref_101_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_245_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_102_13" HREF="terminal_interface-curses-text_io__adb.htm#ref_259_13">Line</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-text_io__ads.htm#ref_48_12">Positive_Count</A>;
<FONT COLOR=green><EM>-----------------------</EM></FONT>
<FONT COLOR=green><EM>-- Characters-Output --</EM></FONT>
<FONT COLOR=green><EM>-----------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#268_14">Put</A><FONT COLOR=red><A NAME="108_14"></A></FONT> (<FONT COLOR=red><A NAME="108_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="108_37">Item</A></FONT> : <b>in</b> Character);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#286_14">Put</A><FONT COLOR=red><A NAME="109_14"></A></FONT> (<FONT COLOR=red><A NAME="109_19">Item</A></FONT> : <b>in</b> Character);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_108_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_269_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_108_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_269_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_108_37" HREF="terminal_interface-curses-text_io__adb.htm#ref_269_37">Item</A></FONT> : <b>in</b> Character);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_109_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_287_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_109_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_287_19">Item</A></FONT> : <b>in</b> Character);
<FONT COLOR=green><EM>--------------------</EM></FONT>
<FONT COLOR=green><EM>-- Strings-Output --</EM></FONT>
<FONT COLOR=green><EM>--------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#296_14">Put</A><FONT COLOR=red><A NAME="115_14"></A></FONT> (<FONT COLOR=red><A NAME="115_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="115_37">Item</A></FONT> : <b>in</b> String);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#314_14">Put</A><FONT COLOR=red><A NAME="116_14"></A></FONT> (<FONT COLOR=red><A NAME="116_19">Item</A></FONT> : <b>in</b> String);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_115_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_297_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_115_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_297_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_115_37" HREF="terminal_interface-curses-text_io__adb.htm#ref_297_37">Item</A></FONT> : <b>in</b> String);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_116_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_315_14">Put</A></FONT> (<FONT COLOR=red><A NAME="ref_116_19" HREF="terminal_interface-curses-text_io__adb.htm#ref_315_19">Item</A></FONT> : <b>in</b> String);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#320_14">Put_Line</A><FONT COLOR=red><A NAME="118_14"></A></FONT>
- (<FONT COLOR=red><A NAME="119_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="120_7">Item</A></FONT> : <b>in</b> String);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_118_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_321_14">Put_Line</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_119_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_322_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_120_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_323_7">Item</A></FONT> : <b>in</b> String);
- <b>procedure</b> <A HREF="terminal_interface-curses-text_io__adb.htm#329_14">Put_Line</A><FONT COLOR=red><A NAME="122_14"></A></FONT>
- (<FONT COLOR=red><A NAME="123_7">Item</A></FONT> : <b>in</b> String);
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_122_14" HREF="terminal_interface-curses-text_io__adb.htm#ref_330_14">Put_Line</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_123_7" HREF="terminal_interface-curses-text_io__adb.htm#ref_331_7">Item</A></FONT> : <b>in</b> String);
<FONT COLOR=green><EM>-- Exceptions</EM></FONT>
- <FONT COLOR=red><A NAME="127_4">Status_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
- <FONT COLOR=red><A NAME="128_4">Mode_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
- <FONT COLOR=red><A NAME="129_4">Name_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
- <FONT COLOR=red><A NAME="130_4">Use_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
- <FONT COLOR=red><A NAME="131_4">Device_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
- <FONT COLOR=red><A NAME="132_4">End_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
- <FONT COLOR=red><A NAME="133_4">Data_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
- <FONT COLOR=red><A NAME="134_4">Layout_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
+ <FONT COLOR=red><A NAME="ref_127_4">Status_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Status_Error;
+ <FONT COLOR=red><A NAME="ref_128_4">Mode_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Mode_Error;
+ <FONT COLOR=red><A NAME="ref_129_4">Name_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Name_Error;
+ <FONT COLOR=red><A NAME="ref_130_4">Use_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Use_Error;
+ <FONT COLOR=red><A NAME="ref_131_4">Device_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Device_Error;
+ <FONT COLOR=red><A NAME="ref_132_4">End_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.End_Error;
+ <FONT COLOR=red><A NAME="ref_133_4">Data_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Data_Error;
+ <FONT COLOR=red><A NAME="ref_134_4">Layout_Error</A></FONT> : <b>exception</b> <b>renames</b> Ada.IO_Exceptions.Layout_Error;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#44_35">Text_IO</A><A HREF="terminal_interface-curses-text_io__ads.htm#44_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-text_io__ads.htm#ref_44_35">Text_IO</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-trace.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 2000 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 2000,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.4 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.5 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#42_35">Trace</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<FONT COLOR=red><A NAME="ref_42_40" HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A></FONT> <b>is</b>
- <b>procedure</b> <A HREF="terminal_interface-curses-trace__ads.htm#103_14">Trace_On</A><FONT COLOR=red><A NAME="44_14"></A></FONT> (<A HREF="terminal_interface-curses-trace__ads.htm#103_24">x</A> : <A HREF="terminal_interface-curses-trace__ads.htm#46_9">Trace_Attribute_Set</A>) <b>is</b>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_44_14" HREF="terminal_interface-curses-trace__ads.htm#ref_102_14">Trace_On</A></FONT> (<FONT COLOR=red><A NAME="ref_44_24" HREF="terminal_interface-curses-trace__ads.htm#ref_102_24">x</A></FONT> : <A HREF="terminal_interface-curses-trace__ads.htm#ref_46_9">Trace_Attribute_Set</A>) <b>is</b>
<b>begin</b>
<b>null</b>;
- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#103_14">Trace_On</A><A HREF="terminal_interface-curses-trace__ads.htm#103_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_102_14">Trace_On</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses-trace__ads.htm#107_14">Trace_Put</A><FONT COLOR=red><A NAME="49_14"></A></FONT> (<A HREF="terminal_interface-curses-trace__ads.htm#107_25">str</A> : String) <b>is</b>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_49_14" HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_Put</A></FONT> (<FONT COLOR=red><A NAME="ref_49_25" HREF="terminal_interface-curses-trace__ads.htm#ref_106_25">str</A></FONT> : String) <b>is</b>
<b>begin</b>
<b>null</b>;
- <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#107_14">Trace_Put</A><A HREF="terminal_interface-curses-trace__ads.htm#107_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses-trace__ads.htm#ref_106_14">Trace_Put</A>;
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#42_35">Trace</A><A HREF="terminal_interface-curses-trace__ads.htm#42_35">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-trace__ads.htm#ref_42_35">Trace</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses-trace.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses-trace.ads </H1></DIV><HR>
<b>pragma</b> Warnings (Off);
<b>type</b> Trace_Attribute_Set <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="49_10">Times</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="50_10">Tputs</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="51_10">Update</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="52_10">Cursor_Move</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="53_10">Character_Output</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="54_10">Calls</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="55_10">Virtual_Puts</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="56_10">Input_Events</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="57_10">TTY_State</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="58_10">Internal_Calls</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="59_10">Character_Calls</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_49_10">Times</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_50_10">Tputs</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_51_10">Update</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_52_10">Cursor_Move</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_53_10">Character_Output</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_54_10">Calls</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_55_10">Virtual_Puts</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_56_10">Input_Events</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_57_10">TTY_State</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_58_10">Internal_Calls</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_59_10">Character_Calls</A></FONT> : Boolean;
Termcap_TermInfo : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses-trace__ads.htm#46_9">;</A>
- <b>pragma</b> Pack (Trace_Attribute_Set);
+ <b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Trace_Attribute_Set);
<b>for</b> Trace_Attribute_Set <b>use</b>
Update => True,
Cursor_Move => True,
Character_Output => True,
- <FONT COLOR=red><A NAME="94_4"> </A></FONT> <b>others</b> => False);
+ <FONT COLOR=red><A NAME="ref_93_4"> </A></FONT> <b>others</b> => False);
Trace_Maximum : <b>constant</b> Trace_Attribute_Set := (<b>others</b> => True);
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>pragma</b> Import (C, Current_Trace_Setting, "_nc_tracing");
<b>end</b> Terminal_Interface.Curses.Trace;
-</PRE></BODY></HTML>
\ No newline at end of file
+</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses.adb</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.adb </H1></DIV><HR>
<FONT COLOR=green><EM>-- B O D Y --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.29 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.32 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> System;
-<b>with</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Strings;
-<b>with</b> <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers;
+<b>with</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>.<A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings; <b>use</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Strings;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers;
<b>with</b> Ada.Characters.Handling; <b>use</b> Ada.Characters.Handling;
<b>with</b> Ada.Strings.Fixed;
<b>with</b> Ada.Unchecked_Conversion;
-<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A> <b>is</b>
+<b>package</b> <b>body</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<FONT COLOR=red><A NAME="ref_52_33" HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A></FONT> <b>is</b>
- <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#50_35">Aux</A>;
+ <b>use</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_50_35">Aux</A>;
<b>use</b> <b>type</b> System.Bit_Order;
- <b>package</b> <FONT COLOR=red><A NAME="56_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_57_12">ASF</A></FONT> <b>renames</b> Ada.Strings.Fixed;
- <b>type</b> <FONT COLOR=red><A NAME="58_9">chtype_array</A></FONT> <b>is</b> <b>array</b> (size_t <b>range</b> <>)
- <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>;
- <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A>);
+ <b>type</b> <FONT COLOR=red><A NAME="ref_59_9">chtype_array</A></FONT> <b>is</b> <b>array</b> (size_t <b>range</b> <>)
+ <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+ <b>pragma</b> Convention (C, <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>);
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>generic</b>
- <b>type</b> <FONT COLOR=red><A NAME="64_12">Element</A></FONT> <b>is</b> (<>);
- <b>function</b> <FONT COLOR=red><A NAME="65_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="65_28">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="66_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_65_12">Element</A></FONT> <b>is</b> (<>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_66_13" HREF="terminal_interface-curses__adb.htm#ref_69_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_66_28">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_67_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
- <b>function</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<FONT COLOR=red><A NAME="68_28">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="69_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A> <b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="70_12">E_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>;
- <b>package</b> <FONT COLOR=red><A NAME="71_15">C_E_Array</A></FONT> <b>is</b> <b>new</b>
- <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#70_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#64_12">Element</A>'Val (0));
- <b>use</b> <A HREF="terminal_interface-curses__adb.htm#71_15">C_E_Array</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_69_13" HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A></FONT> (<FONT COLOR=red><A NAME="ref_69_28">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_70_28">Offset</A></FONT> : <b>in</b> Natural) <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A> <b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_71_12">E_Array</A></FONT> <b>is</b> <b>array</b> (Natural <b>range</b> <>) <b>of</b> <b>aliased</b> <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>;
+ <b>package</b> <FONT COLOR=red><A NAME="ref_72_15">C_E_Array</A></FONT> <b>is</b> <b>new</b>
+ <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.Pointers (Natural, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>, <A HREF="terminal_interface-curses__adb.htm#ref_71_12">E_Array</A>, <A HREF="terminal_interface-curses__adb.htm#ref_65_12">Element</A>'Val (0));
+ <b>use</b> <A HREF="terminal_interface-curses__adb.htm#ref_72_15">C_E_Array</A>;
- <b>function</b> <FONT COLOR=red><A NAME="75_16">To_Pointer</A></FONT> <b>is</b> <b>new</b>
- Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>, Pointer);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_76_16">To_Pointer</A></FONT> <b>is</b> <b>new</b>
+ Ada.Unchecked_Conversion (<A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>, Pointer);
- <FONT COLOR=red><A NAME="78_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses__adb.htm#75_16">To_Pointer</A> (<A HREF="terminal_interface-curses__adb.htm#65_28">Win</A>);
+ <FONT COLOR=red><A NAME="ref_79_7">P</A></FONT> : Pointer := <A HREF="terminal_interface-curses__adb.htm#ref_76_16">To_Pointer</A> (<A HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#65_28">Win</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_28">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#78_7">P</A> := <A HREF="terminal_interface-curses__adb.htm#78_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#66_28">Offset</A>);
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#78_7">P</A>.<b>all</b>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_79_7">P</A> := <A HREF="terminal_interface-curses__adb.htm#ref_79_7">P</A> + ptrdiff_t (<A HREF="terminal_interface-curses__adb.htm#ref_67_28">Offset</A>);
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_79_7">P</A>.<b>all</b>;
<b>end</b> <b>if</b>;
<b>end</b> W_Get_Element;
- <b>function</b> <FONT COLOR=red><A NAME="88_13">W_Get_Int</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>);
- <b>function</b> <FONT COLOR=red><A NAME="89_13">W_Get_Short</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>);
- <b>function</b> <FONT COLOR=red><A NAME="90_13">W_Get_Byte</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#65_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.unsigned_char);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_89_13">W_Get_Int</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_90_13">W_Get_Short</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>);
+ <b>function</b> <FONT COLOR=red><A NAME="ref_91_13">W_Get_Byte</A></FONT> <b>is</b> <b>new</b> <A HREF="terminal_interface-curses__adb.htm#ref_66_13">W_Get_Element</A> (<A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.unsigned_char);
- <b>function</b> <FONT COLOR=red><A NAME="92_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="92_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="93_23">Offset</A></FONT> : Natural) <b>return</b> Boolean;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_93_13" HREF="terminal_interface-curses__adb.htm#ref_96_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_93_23" HREF="terminal_interface-curses__adb.htm#ref_96_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_94_23" HREF="terminal_interface-curses__adb.htm#ref_97_23">Offset</A></FONT> : Natural) <b>return</b> Boolean;
- <b>function</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A> (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A> : Natural) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_96_13" HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A></FONT> (<FONT COLOR=red><A NAME="ref_96_23" HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_97_23" HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A></FONT> : Natural) <b>return</b> Boolean
<b>is</b>
- <FONT COLOR=red><A NAME="98_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_99_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1927_4">Sizeof_bool</A> <b>is</b>
- <b>when</b> 1 => <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#90_13">W_Get_Byte</A> (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A>));
- <b>when</b> 2 => <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A>));
- <b>when</b> 4 => <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#88_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__adb.htm#92_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#93_23">Offset</A>));
- <b>when</b> <b>others</b> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1928_4">Sizeof_bool</A> <b>is</b>
+ <b>when</b> 1 => <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_91_13">W_Get_Byte</A> (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+ <b>when</b> 2 => <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+ <b>when</b> 4 => <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_89_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_93_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_94_23">Offset</A>));
+ <b>when</b> <b>others</b> => <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>case</b>;
- <b>case</b> <A HREF="terminal_interface-curses__adb.htm#98_7">Res</A> <b>is</b>
+ <b>case</b> <A HREF="terminal_interface-curses__adb.htm#ref_99_7">Res</A> <b>is</b>
<b>when</b> 0 => <b>return</b> False;
<b>when</b> <b>others</b> => <b>return</b> True;
<b>end</b> <b>case</b>;
- <b>end</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A><A HREF="terminal_interface-curses__adb.htm#92_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1609_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_115_13" HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_115_23" HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="116_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="116_25">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#116_16">Keyname</A>, "keyname");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_117_16">Keyname</A></FONT> (<FONT COLOR=red><A NAME="ref_117_25">K</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_117_16">Keyname</A>, "keyname");
- <FONT COLOR=red><A NAME="119_7">Ch</A></FONT> : Character;
+ <FONT COLOR=red><A NAME="ref_120_7">Ch</A></FONT> : Character;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A> <= Character'Pos (Character'Last) <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A>);
- <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>) <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1620_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>,
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
- <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>) <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A> <= Character'Pos (Character'Last) <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A> := Character'Val (<A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A>);
+ <b>if</b> Is_Control (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+ <b>elsif</b> Is_Graphic (<A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>) <b>then</b>
<b>declare</b>
- <FONT COLOR=red><A NAME="129_16">S</A></FONT> : String (1 .. 1);
+ <FONT COLOR=red><A NAME="ref_130_16">S</A></FONT> : String (1 .. 1);
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#129_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#119_7">Ch</A>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#129_16">S</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A> (1) := <A HREF="terminal_interface-curses__adb.htm#ref_120_7">Ch</A>;
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_130_16">S</A>;
<b>end</b>;
<b>else</b>
<b>return</b> "";
<b>end</b> <b>if</b>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#116_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1609_23">Key</A>)));
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_117_16">Keyname</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1610_23">Key</A>)));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1609_13">Key_Name</A><A HREF="terminal_interface-curses__ads.htm#1609_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1603_14">Key_Name</A><FONT COLOR=red><A NAME="142_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1603_24">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>;
- <A HREF="terminal_interface-curses__ads.htm#1604_24">Name</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_143_14" HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_143_24" HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>;
+ <FONT COLOR=red><A NAME="ref_144_24" HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A></FONT> : <b>out</b> String)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#56_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#1609_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#1603_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1604_24">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1603_14">Key_Name</A><A HREF="terminal_interface-curses__ads.htm#1603_14">;</A>
+ <A HREF="terminal_interface-curses__adb.htm#ref_57_12">ASF</A>.Move (<A HREF="terminal_interface-curses__ads.htm#ref_1610_13">Key_Name</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1604_24">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1605_24">Name</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1604_14">Key_Name</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#479_14">Init_Screen</A><FONT COLOR=red><A NAME="150_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_151_14" HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="152_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#152_16">Initscr</A>, "initscr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_153_16">Initscr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_153_16">Initscr</A>, "initscr");
- <FONT COLOR=red><A NAME="155_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_156_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#155_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#152_16">Initscr</A>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#155_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_156_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_153_16">Initscr</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_156_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#479_14">Init_Screen</A><A HREF="terminal_interface-curses__ads.htm#479_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_480_14">Init_Screen</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#488_14">End_Windows</A><FONT COLOR=red><A NAME="163_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_164_14" HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="165_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#165_16">Endwin</A>, "endwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_166_16">Endwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_166_16">Endwin</A>, "endwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#165_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_166_16">Endwin</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#488_14">End_Windows</A><A HREF="terminal_interface-curses__ads.htm#488_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_489_14">End_Windows</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#495_13">Is_End_Window</A> <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_174_13" HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A></FONT> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="175_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#175_16">Isendwin</A>, "isendwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_176_16">Isendwin</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_176_16">Isendwin</A>, "isendwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#175_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_176_16">Isendwin</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#495_13">Is_End_Window</A><A HREF="terminal_interface-curses__ads.htm#495_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_496_13">Is_End_Window</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A><FONT COLOR=red><A NAME="185_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#504_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#505_27">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#506_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_186_14" HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A></FONT> (<FONT COLOR=red><A NAME="ref_186_27" HREF="terminal_interface-curses__ads.htm#ref_505_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_187_27" HREF="terminal_interface-curses__ads.htm#ref_506_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_188_27" HREF="terminal_interface-curses__ads.htm#ref_507_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="189_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="189_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="190_23">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="191_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>
- ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#189_16">Wmove</A>, "wmove");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_190_16">Wmove</A></FONT> (<FONT COLOR=red><A NAME="ref_190_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_191_23">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_192_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>
+ ) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_190_16">Wmove</A>, "wmove");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#189_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#504_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#505_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#506_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_190_16">Wmove</A> (<A HREF="terminal_interface-curses__ads.htm#ref_505_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_506_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_507_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A><A HREF="terminal_interface-curses__ads.htm#504_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#516_14">Add</A><FONT COLOR=red><A NAME="200_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#516_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#517_19">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_201_14" HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_201_19" HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_202_19" HREF="terminal_interface-curses__ads.htm#ref_518_19">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="203_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="203_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="204_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#203_16">Waddch</A>, "waddch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_204_16">Waddch</A></FONT> (<FONT COLOR=red><A NAME="ref_204_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_205_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_204_16">Waddch</A>, "waddch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#203_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#516_19">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#517_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_204_16">Waddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_517_19">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_518_19">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#516_14">Add</A><A HREF="terminal_interface-curses__ads.htm#516_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#521_14">Add</A><FONT COLOR=red><A NAME="212_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#521_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#522_19">Ch</A> : <b>in</b> Character)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_213_14" HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_213_19" HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_214_19" HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A></FONT> : <b>in</b> Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#516_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#521_19">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#522_19">Ch</A>,
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#521_14">Add</A><A HREF="terminal_interface-curses__ads.htm#521_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_517_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_522_19">Win</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#ref_523_19">Ch</A>,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_522_14">Add</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#527_14">Add</A><FONT COLOR=red><A NAME="222_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#528_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#529_7">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#530_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#531_7">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_223_14" HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_224_7" HREF="terminal_interface-curses__ads.htm#ref_529_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_225_7" HREF="terminal_interface-curses__ads.htm#ref_530_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_226_7" HREF="terminal_interface-curses__ads.htm#ref_531_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_227_7" HREF="terminal_interface-curses__ads.htm#ref_532_7">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="228_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="228_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="229_26">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="230_26">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="231_26">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#228_16">mvwaddch</A>, "mvwaddch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_229_16">mvwaddch</A></FONT> (<FONT COLOR=red><A NAME="ref_229_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_230_26">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_231_26">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_232_26">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_229_16">mvwaddch</A>, "mvwaddch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#228_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#528_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#529_7">Line</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#530_7">Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#531_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_229_16">mvwaddch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_529_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_530_7">Line</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_531_7">Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_532_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#527_14">Add</A><A HREF="terminal_interface-curses__ads.htm#527_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#535_14">Add</A><FONT COLOR=red><A NAME="241_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#536_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#537_7">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#538_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#539_7">Ch</A> : <b>in</b> Character)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_242_14" HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_243_7" HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_244_7" HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_245_7" HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_246_7" HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A></FONT> : <b>in</b> Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#527_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#536_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#537_7">Line</A>,
- <A HREF="terminal_interface-curses__ads.htm#538_7">Column</A>,
- <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#539_7">Ch</A>,
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#535_14">Add</A><A HREF="terminal_interface-curses__ads.htm#535_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_528_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_537_7">Win</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_538_7">Line</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_539_7">Column</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#ref_540_7">Ch</A>,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_536_14">Add</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#544_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="256_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#545_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#546_7">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_257_14" HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_258_7" HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_259_7" HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="260_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="260_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="261_27">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#260_16">Wechochar</A>, "wechochar");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_261_16">Wechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_261_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_262_27">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_261_16">Wechochar</A>, "wechochar");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#260_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#545_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#546_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_261_16">Wechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_546_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_547_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#544_14">Add_With_Immediate_Echo</A><A HREF="terminal_interface-curses__ads.htm#544_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#550_14">Add_With_Immediate_Echo</A><FONT COLOR=red><A NAME="269_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#551_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#552_7">Ch</A> : <b>in</b> Character)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_270_14" HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_271_7" HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_272_7" HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A></FONT> : <b>in</b> Character)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#544_14">Add_With_Immediate_Echo</A>
- (<A HREF="terminal_interface-curses__ads.htm#551_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#552_7">Ch</A>,
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#550_14">Add_With_Immediate_Echo</A><A HREF="terminal_interface-curses__ads.htm#550_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_545_14">Add_With_Immediate_Echo</A>
+ (<A HREF="terminal_interface-curses__ads.htm#ref_552_7">Win</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#ref_553_7">Ch</A>,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_551_14">Add_With_Immediate_Echo</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#562_13">Create</A> (<A HREF="terminal_interface-curses__ads.htm#563_7">Number_Of_Lines</A> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#564_7">Number_Of_Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#565_7">First_Line_Position</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#566_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="286_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="286_24">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="287_24">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="288_24">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="289_24">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#286_16">Newwin</A>, "newwin");
-
- <FONT COLOR=red><A NAME="292_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#292_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#286_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#563_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#564_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#565_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#566_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#292_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#292_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#562_13">Create</A><A HREF="terminal_interface-curses__ads.htm#562_13">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#581_14">Delete</A><FONT COLOR=red><A NAME="304_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#581_22">Win</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="306_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="306_25">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#306_16">Wdelwin</A>, "delwin");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#306_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#581_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_282_13" HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A></FONT> (<FONT COLOR=red><A NAME="ref_282_21" HREF="terminal_interface-curses__ads.htm#ref_564_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_283_21" HREF="terminal_interface-curses__ads.htm#ref_565_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_284_21" HREF="terminal_interface-curses__ads.htm#ref_566_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_285_21" HREF="terminal_interface-curses__ads.htm#ref_567_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_287_16">Newwin</A></FONT> (<FONT COLOR=red><A NAME="ref_287_24">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_288_24">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_289_24">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_290_24">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_287_16">Newwin</A>, "newwin");
+
+ <FONT COLOR=red><A NAME="ref_293_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_287_16">Newwin</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_564_7">Number_Of_Lines</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_565_7">Number_Of_Columns</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_566_7">First_Line_Position</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_567_7">First_Column_Position</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_293_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_563_13">Create</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_305_14" HREF="terminal_interface-curses__ads.htm#ref_582_14">Delete</A></FONT> (<FONT COLOR=red><A NAME="ref_305_22" HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_307_16">Wdelwin</A></FONT> (<FONT COLOR=red><A NAME="ref_307_25">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_307_16">Wdelwin</A>, "delwin");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_307_16">Wdelwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__ads.htm#581_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#581_14">Delete</A><A HREF="terminal_interface-curses__ads.htm#581_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_582_22">Win</A> := <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_582_14">Delete</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#587_13">Sub_Window</A>
- (<A HREF="terminal_interface-curses__ads.htm#588_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#589_7">Number_Of_Lines</A> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#590_7">Number_Of_Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#591_7">First_Line_Position</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#592_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_316_13" HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_317_7" HREF="terminal_interface-curses__ads.htm#ref_589_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_318_7" HREF="terminal_interface-curses__ads.htm#ref_590_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_319_7" HREF="terminal_interface-curses__ads.htm#ref_591_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_320_7" HREF="terminal_interface-curses__ads.htm#ref_592_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_321_7" HREF="terminal_interface-curses__ads.htm#ref_593_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="322_16">Subwin</A></FONT>
- (<FONT COLOR=red><A NAME="323_10">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="324_10">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="325_10">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="326_10">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="327_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#322_16">Subwin</A>, "subwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_323_16">Subwin</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_324_10">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_325_10">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_326_10">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_327_10">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_328_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_323_16">Subwin</A>, "subwin");
- <FONT COLOR=red><A NAME="330_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_331_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#330_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#322_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#588_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#589_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#590_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#591_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#592_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#330_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_323_16">Subwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_589_7">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_590_7">Number_Of_Lines</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_591_7">Number_Of_Columns</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_592_7">First_Line_Position</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_593_7">First_Column_Position</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#330_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#587_13">Sub_Window</A><A HREF="terminal_interface-curses__ads.htm#587_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_331_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_588_13">Sub_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#597_13">Derived_Window</A>
- (<A HREF="terminal_interface-curses__ads.htm#598_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#599_7">Number_Of_Lines</A> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#600_7">Number_Of_Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#601_7">First_Line_Position</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#602_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_344_13" HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_345_7" HREF="terminal_interface-curses__ads.htm#ref_599_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_346_7" HREF="terminal_interface-curses__ads.htm#ref_600_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_347_7" HREF="terminal_interface-curses__ads.htm#ref_601_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_348_7" HREF="terminal_interface-curses__ads.htm#ref_602_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_349_7" HREF="terminal_interface-curses__ads.htm#ref_603_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="350_16">Derwin</A></FONT>
- (<FONT COLOR=red><A NAME="351_10">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="352_10">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="353_10">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="354_10">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="355_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#350_16">Derwin</A>, "derwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_351_16">Derwin</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_352_10">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_353_10">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_354_10">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_355_10">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_356_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Derwin</A>, "derwin");
- <FONT COLOR=red><A NAME="358_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_359_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#358_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#350_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#598_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#599_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#600_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#601_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#602_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#358_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_351_16">Derwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_599_7">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_600_7">Number_Of_Lines</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_601_7">Number_Of_Columns</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_602_7">First_Line_Position</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_603_7">First_Column_Position</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#358_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#597_13">Derived_Window</A><A HREF="terminal_interface-curses__ads.htm#597_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_359_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_598_13">Derived_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#607_13">Duplicate</A> (<A HREF="terminal_interface-curses__ads.htm#607_24">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_372_13" HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A></FONT> (<FONT COLOR=red><A NAME="ref_372_24" HREF="terminal_interface-curses__ads.htm#ref_608_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="373_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="373_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#373_16">Dupwin</A>, "dupwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_374_16">Dupwin</A></FONT> (<FONT COLOR=red><A NAME="ref_374_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_374_16">Dupwin</A>, "dupwin");
- <FONT COLOR=red><A NAME="376_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#373_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#607_24">Win</A>);
+ <FONT COLOR=red><A NAME="ref_377_7">W</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__adb.htm#ref_374_16">Dupwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_608_24">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#376_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#376_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#607_13">Duplicate</A><A HREF="terminal_interface-curses__ads.htm#607_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_377_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_608_13">Duplicate</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#612_14">Move_Window</A><FONT COLOR=red><A NAME="384_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#612_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#613_27">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#614_27">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_385_14" HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_385_27" HREF="terminal_interface-curses__ads.htm#ref_613_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_386_27" HREF="terminal_interface-curses__ads.htm#ref_614_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_387_27" HREF="terminal_interface-curses__ads.htm#ref_615_27">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="388_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="388_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="389_23">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="390_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#388_16">Mvwin</A>, "mvwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_389_16">Mvwin</A></FONT> (<FONT COLOR=red><A NAME="ref_389_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_390_23">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_391_23">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_389_16">Mvwin</A>, "mvwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#388_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#612_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#613_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#614_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_389_16">Mvwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_613_27">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_614_27">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_615_27">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#612_14">Move_Window</A><A HREF="terminal_interface-curses__ads.htm#612_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_613_14">Move_Window</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#619_14">Move_Derived_Window</A><FONT COLOR=red><A NAME="398_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#619_35">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#620_35">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#621_35">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_399_14" HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A></FONT> (<FONT COLOR=red><A NAME="ref_399_35" HREF="terminal_interface-curses__ads.htm#ref_620_35">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_400_35" HREF="terminal_interface-curses__ads.htm#ref_621_35">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_401_35" HREF="terminal_interface-curses__ads.htm#ref_622_35">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="402_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="402_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="403_26">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="404_26">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#402_16">Mvderwin</A>, "mvderwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_403_16">Mvderwin</A></FONT> (<FONT COLOR=red><A NAME="ref_403_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_404_26">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_405_26">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_403_16">Mvderwin</A>, "mvderwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#402_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#619_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#620_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#621_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_403_16">Mvderwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_620_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_621_35">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_622_35">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#619_14">Move_Derived_Window</A><A HREF="terminal_interface-curses__ads.htm#619_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_620_14">Move_Derived_Window</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#636_14">Set_Synch_Mode</A><FONT COLOR=red><A NAME="412_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#636_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#637_30">Mode</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_413_14" HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_413_30" HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_414_30" HREF="terminal_interface-curses__ads.htm#ref_638_30">Mode</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="415_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="415_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="416_24">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#415_16">Syncok</A>, "syncok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_416_16">Syncok</A></FONT> (<FONT COLOR=red><A NAME="ref_416_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_417_24">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_416_16">Syncok</A>, "syncok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#415_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#636_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#637_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_416_16">Syncok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_637_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_638_30">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#636_14">Set_Synch_Mode</A><A HREF="terminal_interface-curses__ads.htm#636_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_637_14">Set_Synch_Mode</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#646_14">Add</A><FONT COLOR=red><A NAME="424_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#646_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#647_19">Str</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses__ads.htm#648_19">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_425_14" HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A></FONT> (<FONT COLOR=red><A NAME="ref_425_19" HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_426_19" HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_427_19" HREF="terminal_interface-curses__ads.htm#ref_649_19">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="428_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="428_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="429_26">Str</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="430_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#428_16">Waddnstr</A>, "waddnstr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_429_16">Waddnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_429_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_430_26">Str</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_431_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_429_16">Waddnstr</A>, "waddnstr");
- <FONT COLOR=red><A NAME="433_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#647_19">Str</A>'Length);
- <FONT COLOR=red><A NAME="434_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_434_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_435_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#647_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#433_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#434_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#428_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#646_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#433_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#648_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_648_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_435_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_429_16">Waddnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_647_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_434_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_649_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#646_14">Add</A><A HREF="terminal_interface-curses__ads.htm#646_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#655_14">Add</A><FONT COLOR=red><A NAME="442_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#655_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#656_19">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#657_19">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#658_19">Str</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses__ads.htm#659_19">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_443_14" HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_444_7" HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_445_7" HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_446_7" HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_447_7" HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_448_7" HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#655_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#656_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#657_19">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#646_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#655_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#658_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#659_19">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#655_14">Add</A><A HREF="terminal_interface-curses__ads.htm#655_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_657_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_658_19">Column</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_647_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_656_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_659_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_660_19">Len</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_656_14">Add</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#670_14">Add</A><FONT COLOR=red><A NAME="454_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#670_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#671_19">Str</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
- <A HREF="terminal_interface-curses__ads.htm#672_19">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_455_14" HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_456_7" HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_457_7" HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+ <FONT COLOR=red><A NAME="ref_458_7" HREF="terminal_interface-curses__ads.htm#ref_673_19">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="459_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="459_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="460_28">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A>;
- <FONT COLOR=red><A NAME="461_28">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#459_16">Waddchnstr</A>, "waddchnstr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_460_16">Waddchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_460_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_461_28">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>;
+ <FONT COLOR=red><A NAME="ref_462_28">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_460_16">Waddchnstr</A>, "waddchnstr");
- <FONT COLOR=red><A NAME="464_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#671_19">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_465_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length);
<b>begin</b>
- <b>for</b> <FONT COLOR=red><A NAME="466_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#671_19">Str</A>'Length) <b>loop</b>
- <A HREF="terminal_interface-curses__adb.htm#464_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#466_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#671_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#466_11">Length</A>));
+ <b>for</b> <FONT COLOR=red><A NAME="ref_467_11">Length</A></FONT> <b>in</b> 1 .. size_t (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) <b>loop</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A> - 1) := <A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A> (Natural (<A HREF="terminal_interface-curses__adb.htm#ref_467_11">Length</A>));
<b>end</b> <b>loop</b>;
- <A HREF="terminal_interface-curses__adb.htm#464_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#671_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#459_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#670_19">Win</A>,
- <A HREF="terminal_interface-curses__adb.htm#464_7">Txt</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#672_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A> (<A HREF="terminal_interface-curses__ads.htm#ref_672_19">Str</A>'Length) := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_460_16">Waddchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_671_19">Win</A>,
+ <A HREF="terminal_interface-curses__adb.htm#ref_465_7">Txt</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_673_19">Len</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#670_14">Add</A><A HREF="terminal_interface-curses__ads.htm#670_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#679_14">Add</A><FONT COLOR=red><A NAME="477_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#679_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#680_19">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#681_19">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#682_19">Str</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
- <A HREF="terminal_interface-curses__ads.htm#683_19">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_478_14" HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_479_7" HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_480_7" HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_481_7" HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_482_7" HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+ <FONT COLOR=red><A NAME="ref_483_7" HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#679_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#680_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#681_19">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#670_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#679_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#682_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#683_19">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#679_14">Add</A><A HREF="terminal_interface-curses__ads.htm#679_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_681_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_682_19">Column</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_671_14">Add</A> (<A HREF="terminal_interface-curses__ads.htm#ref_680_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_683_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_684_19">Len</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_680_14">Add</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#697_14">Border</A><FONT COLOR=red><A NAME="489_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#698_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#699_7">Left_Side_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#700_7">Right_Side_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#701_7">Top_Side_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#702_7">Bottom_Side_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#703_7">Upper_Left_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#704_7">Upper_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#705_7">Lower_Left_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#706_7">Lower_Right_Corner_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="500_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="500_25">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="501_25">LS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="502_25">RS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="503_25">TS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="504_25">BS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="505_25">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="506_25">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="507_25">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="508_25">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#500_16">Wborder</A>, "wborder");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#500_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#698_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#699_7">Left_Side_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#700_7">Right_Side_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#701_7">Top_Side_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#702_7">Bottom_Side_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#703_7">Upper_Left_Corner_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#704_7">Upper_Right_Corner_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#705_7">Lower_Left_Corner_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#706_7">Lower_Right_Corner_Symbol</A>)
- ) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_490_14" HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_491_7" HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_492_7" HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_493_7" HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_494_7" HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_495_7" HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_496_7" HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_497_7" HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_498_7" HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_499_7" HREF="terminal_interface-curses__ads.htm#ref_707_7">Lower_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_501_16">Wborder</A></FONT> (<FONT COLOR=red><A NAME="ref_501_25">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_502_25">LS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_503_25">RS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_504_25">TS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_505_25">BS</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_506_25">ULC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_507_25">URC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_508_25">LLC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_509_25">LRC</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_501_16">Wborder</A>, "wborder");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_501_16">Wborder</A> (<A HREF="terminal_interface-curses__ads.htm#ref_699_7">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_700_7">Left_Side_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_701_7">Right_Side_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_702_7">Top_Side_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_703_7">Bottom_Side_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_704_7">Upper_Left_Corner_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_705_7">Upper_Right_Corner_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_706_7">Lower_Left_Corner_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_707_7">Lower_Right_Corner_Symbol</A>)
+ ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A>
<b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#697_14">Border</A><A HREF="terminal_interface-curses__ads.htm#697_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#713_14">Box</A><FONT COLOR=red><A NAME="526_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#714_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#715_7">Vertical_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#716_7">Horizontal_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_527_14" HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_528_7" HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_529_7" HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#697_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#714_7">Win</A>,
- <A HREF="terminal_interface-curses__ads.htm#715_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#715_7">Vertical_Symbol</A>,
- <A HREF="terminal_interface-curses__ads.htm#716_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#716_7">Horizontal_Symbol</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#713_14">Box</A><A HREF="terminal_interface-curses__ads.htm#713_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_698_14">Border</A> (<A HREF="terminal_interface-curses__ads.htm#ref_715_7">Win</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_716_7">Vertical_Symbol</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>, <A HREF="terminal_interface-curses__ads.htm#ref_717_7">Horizontal_Symbol</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_714_14">Box</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#721_14">Horizontal_Line</A><FONT COLOR=red><A NAME="537_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#722_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#723_7">Line_Size</A> : <b>in</b> Natural;
- <A HREF="terminal_interface-curses__ads.htm#724_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_538_14" HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__ads.htm#ref_724_7">Line_Size</A></FONT> : <b>in</b> Natural;
+ <FONT COLOR=red><A NAME="ref_541_7" HREF="terminal_interface-curses__ads.htm#ref_725_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="542_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="542_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="543_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="544_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#542_16">Whline</A>, "whline");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_543_16">Whline</A></FONT> (<FONT COLOR=red><A NAME="ref_543_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_544_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_545_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_543_16">Whline</A>, "whline");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#542_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#722_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#724_7">Line_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#723_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_543_16">Whline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_723_7">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_725_7">Line_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_724_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#721_14">Horizontal_Line</A><A HREF="terminal_interface-curses__ads.htm#721_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_722_14">Horizontal_Line</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#730_14">Vertical_Line</A><FONT COLOR=red><A NAME="554_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#731_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#732_7">Line_Size</A> : <b>in</b> Natural;
- <A HREF="terminal_interface-curses__ads.htm#733_7">Line_Symbol</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_555_14" HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_556_7" HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_557_7" HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Size</A></FONT> : <b>in</b> Natural;
+ <FONT COLOR=red><A NAME="ref_558_7" HREF="terminal_interface-curses__ads.htm#ref_734_7">Line_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="559_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="559_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="560_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <FONT COLOR=red><A NAME="561_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#559_16">Wvline</A>, "wvline");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_560_16">Wvline</A></FONT> (<FONT COLOR=red><A NAME="ref_560_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_561_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <FONT COLOR=red><A NAME="ref_562_24">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_560_16">Wvline</A>, "wvline");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#559_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#731_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#733_7">Line_Symbol</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#732_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_560_16">Wvline</A> (<A HREF="terminal_interface-curses__ads.htm#ref_732_7">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_734_7">Line_Symbol</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_733_7">Line_Size</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#730_14">Vertical_Line</A><A HREF="terminal_interface-curses__ads.htm#730_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_731_14">Vertical_Line</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#744_13">Get_Keystroke</A> (<A HREF="terminal_interface-curses__ads.htm#744_28">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_573_13" HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_573_28" HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="575_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="575_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#575_16">Wgetch</A>, "wgetch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_576_16">Wgetch</A></FONT> (<FONT COLOR=red><A NAME="ref_576_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_576_16">Wgetch</A>, "wgetch");
- <FONT COLOR=red><A NAME="578_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#575_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#744_28">Win</A>);
+ <FONT COLOR=red><A NAME="ref_579_7">C</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_576_16">Wgetch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_745_28">Win</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#578_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#86_4">Key_None</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_579_7">C</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_88_4">Key_None</A>;
<b>else</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#578_7">C</A>);
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (<A HREF="terminal_interface-curses__adb.htm#ref_579_7">C</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#744_13">Get_Keystroke</A><A HREF="terminal_interface-curses__ads.htm#744_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_745_13">Get_Keystroke</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#755_14">Undo_Keystroke</A><FONT COLOR=red><A NAME="587_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#755_30">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_588_14" HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A></FONT> (<FONT COLOR=red><A NAME="ref_588_30" HREF="terminal_interface-curses__ads.htm#ref_756_30">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="589_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="589_25">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#589_16">Ungetch</A>, "ungetch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_590_16">Ungetch</A></FONT> (<FONT COLOR=red><A NAME="ref_590_25">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_590_16">Ungetch</A>, "ungetch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#589_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#755_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_590_16">Ungetch</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_756_30">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#755_14">Undo_Keystroke</A><A HREF="terminal_interface-curses__ads.htm#755_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_756_14">Undo_Keystroke</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#760_13">Has_Key</A> (<A HREF="terminal_interface-curses__ads.htm#760_22">Key</A> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_598_13" HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_598_22" HREF="terminal_interface-curses__ads.htm#ref_761_22">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="599_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="599_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#599_16">Haskey</A>, "has_key");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_600_16">Haskey</A></FONT> (<FONT COLOR=red><A NAME="ref_600_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_600_16">Haskey</A>, "has_key");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#599_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#760_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_600_16">Haskey</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_761_22">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#760_13">Has_Key</A><A HREF="terminal_interface-curses__ads.htm#760_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_761_13">Has_Key</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#767_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#767_30">Key</A> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_610_13" HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_610_30" HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>) <b>return</b> Boolean
<b>is</b>
- <FONT COLOR=red><A NAME="611_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>) +
- Natural (<A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A>'Last));
+ <FONT COLOR=red><A NAME="ref_612_7">L</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) +
+ Natural (<A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>'Last));
<b>begin</b>
- <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#767_30">Key</A> >= <A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#767_30">Key</A> <= <A HREF="terminal_interface-curses__adb.htm#611_7">L</A>) <b>then</b>
+ <b>if</b> (<A HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A> >= <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) <b>and</b> <b>then</b> (<A HREF="terminal_interface-curses__ads.htm#ref_768_30">Key</A> <= <A HREF="terminal_interface-curses__adb.htm#ref_612_7">L</A>) <b>then</b>
<b>return</b> True;
<b>else</b>
<b>return</b> False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#767_13">Is_Function_Key</A><A HREF="terminal_interface-curses__ads.htm#767_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#774_13">Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#774_27">Key</A> : <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_622_13" HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_622_27" HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>
<b>is</b>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#767_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#774_27">Key</A>) <b>then</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#774_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_768_13">Is_Function_Key</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A>) <b>then</b>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A> (<A HREF="terminal_interface-curses__ads.htm#ref_775_27">Key</A> - <A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>);
<b>else</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#774_13">Function_Key</A><A HREF="terminal_interface-curses__ads.htm#774_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_775_13">Function_Key</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#779_13">Function_Key_Code</A> (<A HREF="terminal_interface-curses__ads.htm#779_32">Key</A> : <A HREF="terminal_interface-curses__ads.htm#771_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_633_13" HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A></FONT> (<FONT COLOR=red><A NAME="ref_633_32" HREF="terminal_interface-curses__ads.htm#ref_780_32">Key</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_772_12">Function_Key_Number</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A>
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#71_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#96_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#779_32">Key</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#779_13">Function_Key_Code</A><A HREF="terminal_interface-curses__ads.htm#779_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_73_12">Real_Key_Code</A> (Natural (<A HREF="terminal_interface-curses__ads.htm#ref_98_4">Key_F0</A>) + Natural (<A HREF="terminal_interface-curses__ads.htm#ref_780_32">Key</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_780_13">Function_Key_Code</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#793_14">Standout</A><FONT COLOR=red><A NAME="638_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#793_24">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#794_24">On</A> : Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_639_14" HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A></FONT> (<FONT COLOR=red><A NAME="ref_639_24" HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_640_24" HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A></FONT> : Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="641_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="641_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#641_16">wstandout</A>, "wstandout");
- <b>function</b> <FONT COLOR=red><A NAME="643_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="643_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#643_16">wstandend</A>, "wstandend");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_642_16">wstandout</A></FONT> (<FONT COLOR=red><A NAME="ref_642_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_642_16">wstandout</A>, "wstandout");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_644_16">wstandend</A></FONT> (<FONT COLOR=red><A NAME="ref_644_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_644_16">wstandend</A>, "wstandend");
- <FONT COLOR=red><A NAME="646_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_647_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#794_24">On</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#646_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#641_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#793_24">Win</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_795_24">On</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_642_16">wstandout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#646_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#643_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#793_24">Win</A>);
+ <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_644_16">wstandend</A> (<A HREF="terminal_interface-curses__ads.htm#ref_794_24">Win</A>);
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#646_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_647_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#793_14">Standout</A><A HREF="terminal_interface-curses__ads.htm#793_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_794_14">Standout</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#799_14">Switch_Character_Attribute</A><FONT COLOR=red><A NAME="658_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#800_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#801_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses__ads.htm#802_7">On</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_659_14" HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_660_7" HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_661_7" HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_662_7" HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="663_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="663_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="664_25">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#663_16">Wattron</A>, "wattr_on");
- <b>function</b> <FONT COLOR=red><A NAME="666_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="666_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="667_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#666_16">Wattroff</A>, "wattr_off");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_664_16">Wattron</A></FONT> (<FONT COLOR=red><A NAME="ref_664_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_665_25">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_664_16">Wattron</A>, "wattr_on");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_667_16">Wattroff</A></FONT> (<FONT COLOR=red><A NAME="ref_667_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_668_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_667_16">Wattroff</A>, "wattr_off");
<FONT COLOR=green><EM>-- In Ada we use the On Boolean to control whether or not we want to</EM></FONT>
<FONT COLOR=green><EM>-- switch on or off the attributes in the set.</EM></FONT>
- <FONT COLOR=red><A NAME="671_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="672_7">AC</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#801_7">Attr</A>);
+ <FONT COLOR=red><A NAME="ref_672_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_673_7">AC</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_802_7">Attr</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#802_7">On</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#671_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#663_16">Wattron</A> (<A HREF="terminal_interface-curses__ads.htm#800_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#672_7">AC</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_803_7">On</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_664_16">Wattron</A> (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#671_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#666_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#800_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#672_7">AC</A>));
+ <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_667_16">Wattroff</A> (<A HREF="terminal_interface-curses__ads.htm#ref_801_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#ref_673_7">AC</A>));
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#671_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_672_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#799_14">Switch_Character_Attribute</A><A HREF="terminal_interface-curses__ads.htm#799_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_800_14">Switch_Character_Attribute</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#810_14">Set_Character_Attributes</A><FONT COLOR=red><A NAME="686_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#811_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#812_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses__ads.htm#813_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_687_14" HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_688_7" HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_689_7" HREF="terminal_interface-curses__ads.htm#ref_813_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_690_7" HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="691_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="691_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="692_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#691_16">Wattrset</A>, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_692_16">Wattrset</A></FONT> (<FONT COLOR=red><A NAME="ref_692_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_693_26">C_Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_692_16">Wattrset</A>, "wattrset"); <FONT COLOR=green><EM>-- ??? wattr_set</EM></FONT>
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#691_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#811_7">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_692_16">Wattrset</A> (<A HREF="terminal_interface-curses__ads.htm#ref_812_7">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'
(Ch => Character'First,
- Color => <A HREF="terminal_interface-curses__ads.htm#813_7">Color</A>,
- Attr => <A HREF="terminal_interface-curses__ads.htm#812_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_814_7">Color</A>,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_813_7">Attr</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#810_14">Set_Character_Attributes</A><A HREF="terminal_interface-curses__ads.htm#810_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_811_14">Set_Character_Attributes</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#819_13">Get_Character_Attribute</A> (<A HREF="terminal_interface-curses__ads.htm#820_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_705_13" HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_705_38" HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="707_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="707_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="708_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
- <FONT COLOR=red><A NAME="709_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="710_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#707_16">Wattrget</A>, "wattr_get");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_708_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_708_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_709_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+ <FONT COLOR=red><A NAME="ref_710_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_711_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_708_16">Wattrget</A>, "wattr_get");
- <FONT COLOR=red><A NAME="713_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
- <FONT COLOR=red><A NAME="714_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="715_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#707_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#820_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#713_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#714_7">Col</A>'<b>Access</b>,
+ <FONT COLOR=red><A NAME="ref_714_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+ <FONT COLOR=red><A NAME="ref_715_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_716_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_708_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_821_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_715_7">Col</A>'<b>Access</b>,
System.Null_Address);
- <FONT COLOR=red><A NAME="717_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>;
+ <FONT COLOR=red><A NAME="ref_718_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#715_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#71_4">Curses_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#717_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#713_7">Attr</A>);
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#717_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_716_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_718_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_714_7">Attr</A>);
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_718_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
<b>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#819_13">Get_Character_Attribute</A><A HREF="terminal_interface-curses__ads.htm#819_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_820_13">Get_Character_Attribute</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#825_13">Get_Character_Attribute</A> (<A HREF="terminal_interface-curses__ads.htm#826_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_728_13" HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A></FONT> (<FONT COLOR=red><A NAME="ref_728_38" HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="730_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="730_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="731_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
- <FONT COLOR=red><A NAME="732_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="733_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#730_16">Wattrget</A>, "wattr_get");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_731_16">Wattrget</A></FONT> (<FONT COLOR=red><A NAME="ref_731_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_732_26">Atr</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+ <FONT COLOR=red><A NAME="ref_733_26">Col</A></FONT> : <b>access</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_734_26">Opt</A></FONT> : System.Address) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_731_16">Wattrget</A>, "wattr_get");
- <FONT COLOR=red><A NAME="736_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
- <FONT COLOR=red><A NAME="737_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="738_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#730_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#826_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#736_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#737_7">Col</A>'<b>Access</b>,
+ <FONT COLOR=red><A NAME="ref_737_7">Attr</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+ <FONT COLOR=red><A NAME="ref_738_7">Col</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_739_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_731_16">Wattrget</A> (<A HREF="terminal_interface-curses__ads.htm#ref_827_7">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_738_7">Col</A>'<b>Access</b>,
System.Null_Address);
- <FONT COLOR=red><A NAME="740_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>;
+ <FONT COLOR=red><A NAME="ref_741_7">Ch</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#738_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#71_4">Curses_Ok</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#740_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#736_7">Attr</A>);
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#740_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_739_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_71_4">Curses_Ok</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_741_7">Ch</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_112_13">AttrType_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_737_7">Attr</A>);
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_741_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
<b>else</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#825_13">Get_Character_Attribute</A><A HREF="terminal_interface-curses__ads.htm#825_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_826_13">Get_Character_Attribute</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#831_14">Set_Color</A><FONT COLOR=red><A NAME="750_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#831_25">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#832_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_751_14" HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_751_25" HREF="terminal_interface-curses__ads.htm#ref_832_25">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_752_25" HREF="terminal_interface-curses__ads.htm#ref_833_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="753_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="753_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="754_28">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="755_28">Opts</A></FONT> : C_Void_Ptr) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#753_16">Wset_Color</A>, "wcolor_set");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_754_16">Wset_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_754_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_755_28">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_756_28">Opts</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_754_16">Wset_Color</A>, "wcolor_set");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#753_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#831_25">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#832_25">Pair</A>),
- C_Void_Ptr (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_754_16">Wset_Color</A> (<A HREF="terminal_interface-curses__ads.htm#ref_832_25">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_833_25">Pair</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_62_12">C_Void_Ptr</A> (System.Null_Address)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#831_14">Set_Color</A><A HREF="terminal_interface-curses__ads.htm#831_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_832_14">Set_Color</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#838_14">Change_Attributes</A><FONT COLOR=red><A NAME="765_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#839_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#840_7">Count</A> : <b>in</b> Integer := -1;
- <A HREF="terminal_interface-curses__ads.htm#841_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses__ads.htm#842_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_766_14" HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_767_7" HREF="terminal_interface-curses__ads.htm#ref_840_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_768_7" HREF="terminal_interface-curses__ads.htm#ref_841_7">Count</A></FONT> : <b>in</b> Integer := -1;
+ <FONT COLOR=red><A NAME="ref_769_7" HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_770_7" HREF="terminal_interface-curses__ads.htm#ref_843_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="771_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="771_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="772_24">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="773_24">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#64_12">C_AttrType</A>;
- <FONT COLOR=red><A NAME="774_24">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="775_24">Opts</A></FONT> : System.Address := System.Null_Address)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#771_16">Wchgat</A>, "wchgat");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_772_16">Wchgat</A></FONT> (<FONT COLOR=red><A NAME="ref_772_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_773_24">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_774_24">Attr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_64_12">C_AttrType</A>;
+ <FONT COLOR=red><A NAME="ref_775_24">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_776_24">Opts</A></FONT> : System.Address := System.Null_Address)
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Wchgat</A>, "wchgat");
- <FONT COLOR=red><A NAME="779_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> :=
- (Ch => Character'First, Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First, Attr => <A HREF="terminal_interface-curses__ads.htm#841_7">Attr</A>);
+ <FONT COLOR=red><A NAME="ref_780_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> :=
+ (Ch => Character'First, Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First, Attr => <A HREF="terminal_interface-curses__ads.htm#ref_842_7">Attr</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#771_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#839_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#840_7">Count</A>), <A HREF="terminal_interface-curses-aux__ads.htm#108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#779_7">Ch</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#842_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_772_16">Wchgat</A> (<A HREF="terminal_interface-curses__ads.htm#ref_840_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_841_7">Count</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_108_13">AttrChar_To_AttrType</A> (<A HREF="terminal_interface-curses__adb.htm#ref_780_7">Ch</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_843_7">Color</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#838_14">Change_Attributes</A><A HREF="terminal_interface-curses__ads.htm#838_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#847_14">Change_Attributes</A><FONT COLOR=red><A NAME="788_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#848_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#849_7">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>'First;
- <A HREF="terminal_interface-curses__ads.htm#850_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>'First;
- <A HREF="terminal_interface-curses__ads.htm#851_7">Count</A> : <b>in</b> Integer := -1;
- <A HREF="terminal_interface-curses__ads.htm#852_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses__ads.htm#853_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_789_14" HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_790_7" HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_791_7" HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'First;
+ <FONT COLOR=red><A NAME="ref_792_7" HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'First;
+ <FONT COLOR=red><A NAME="ref_793_7" HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A></FONT> : <b>in</b> Integer := -1;
+ <FONT COLOR=red><A NAME="ref_794_7" HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_795_7" HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#848_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#849_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#850_7">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#838_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#848_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#851_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#852_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#853_7">Color</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#847_14">Change_Attributes</A><A HREF="terminal_interface-curses__ads.htm#847_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_850_7">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_851_7">Column</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_839_14">Change_Attributes</A> (<A HREF="terminal_interface-curses__ads.htm#ref_849_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_852_7">Count</A>, <A HREF="terminal_interface-curses__ads.htm#ref_853_7">Attr</A>, <A HREF="terminal_interface-curses__ads.htm#ref_854_7">Color</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_848_14">Change_Attributes</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#863_14">Beep</A><FONT COLOR=red><A NAME="801_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_802_14" HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="803_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#803_16">Beeper</A>, "beep");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_804_16">Beeper</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_804_16">Beeper</A>, "beep");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#803_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_804_16">Beeper</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#863_14">Beep</A><A HREF="terminal_interface-curses__ads.htm#863_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_864_14">Beep</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#868_14">Flash_Screen</A><FONT COLOR=red><A NAME="811_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_812_14" HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="813_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#813_16">Flash</A>, "flash");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_814_16">Flash</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_814_16">Flash</A>, "flash");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#813_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_814_16">Flash</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#868_14">Flash_Screen</A><A HREF="terminal_interface-curses__ads.htm#868_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_869_14">Flash_Screen</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#879_14">Set_Cbreak_Mode</A><FONT COLOR=red><A NAME="821_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#879_31">SwitchOn</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_822_14" HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_822_31" HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="823_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#823_16">Cbreak</A>, "cbreak");
- <b>function</b> <FONT COLOR=red><A NAME="825_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#825_16">NoCbreak</A>, "nocbreak");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_824_16">Cbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_824_16">Cbreak</A>, "cbreak");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_826_16">NoCbreak</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_826_16">NoCbreak</A>, "nocbreak");
- <FONT COLOR=red><A NAME="828_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_829_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#879_31">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#828_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#823_16">Cbreak</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_31">SwitchOn</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_824_16">Cbreak</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#828_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#825_16">NoCbreak</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_826_16">NoCbreak</A>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#828_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_829_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#879_14">Set_Cbreak_Mode</A><A HREF="terminal_interface-curses__ads.htm#879_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_880_14">Set_Cbreak_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#885_14">Set_Raw_Mode</A><FONT COLOR=red><A NAME="840_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#885_28">SwitchOn</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_841_14" HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_841_28" HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="842_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#842_16">Raw</A>, "raw");
- <b>function</b> <FONT COLOR=red><A NAME="844_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#844_16">NoRaw</A>, "noraw");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_843_16">Raw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_843_16">Raw</A>, "raw");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_845_16">NoRaw</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_845_16">NoRaw</A>, "noraw");
- <FONT COLOR=red><A NAME="847_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_848_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#885_28">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#847_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#842_16">Raw</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_28">SwitchOn</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_843_16">Raw</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#847_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#844_16">NoRaw</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_845_16">NoRaw</A>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#847_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_848_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#885_14">Set_Raw_Mode</A><A HREF="terminal_interface-curses__ads.htm#885_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_886_14">Set_Raw_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#891_14">Set_Echo_Mode</A><FONT COLOR=red><A NAME="859_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#891_29">SwitchOn</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_860_14" HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_860_29" HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="861_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#861_16">Echo</A>, "echo");
- <b>function</b> <FONT COLOR=red><A NAME="863_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#863_16">NoEcho</A>, "noecho");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_862_16">Echo</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_862_16">Echo</A>, "echo");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_864_16">NoEcho</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_864_16">NoEcho</A>, "noecho");
- <FONT COLOR=red><A NAME="866_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_867_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#891_29">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#866_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#861_16">Echo</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_29">SwitchOn</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_862_16">Echo</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#866_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#863_16">NoEcho</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_864_16">NoEcho</A>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#866_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_867_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#891_14">Set_Echo_Mode</A><A HREF="terminal_interface-curses__ads.htm#891_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_892_14">Set_Echo_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#897_14">Set_Meta_Mode</A><FONT COLOR=red><A NAME="878_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#897_29">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#898_29">SwitchOn</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_879_14" HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_879_29" HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_880_29" HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="881_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="881_22">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="881_34">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#881_16">Meta</A>, "meta");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_882_16">Meta</A></FONT> (<FONT COLOR=red><A NAME="ref_882_22">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_882_34">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_882_16">Meta</A>, "meta");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#881_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#897_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#898_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_882_16">Meta</A> (<A HREF="terminal_interface-curses__ads.htm#ref_898_29">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_899_29">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#897_14">Set_Meta_Mode</A><A HREF="terminal_interface-curses__ads.htm#897_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_898_14">Set_Meta_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#903_14">Set_KeyPad_Mode</A><FONT COLOR=red><A NAME="889_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#903_31">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#904_31">SwitchOn</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_890_14" HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_890_31" HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_891_31" HREF="terminal_interface-curses__ads.htm#ref_905_31">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="892_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="892_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="892_36">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#892_16">Keypad</A>, "keypad");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_893_16">Keypad</A></FONT> (<FONT COLOR=red><A NAME="ref_893_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_893_36">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_893_16">Keypad</A>, "keypad");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#892_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#903_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#904_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_893_16">Keypad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_904_31">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_905_31">SwitchOn</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#903_14">Set_KeyPad_Mode</A><A HREF="terminal_interface-curses__ads.htm#903_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_904_14">Set_KeyPad_Mode</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#908_13">Get_KeyPad_Mode</A> (<A HREF="terminal_interface-curses__ads.htm#908_30">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>function</b> <FONT COLOR=red><A NAME="ref_901_13" HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_901_30" HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>return</b> Boolean
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#908_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1926_4">Offset_use_keypad</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#908_13">Get_KeyPad_Mode</A><A HREF="terminal_interface-curses__ads.htm#908_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_909_30">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1927_4">Offset_use_keypad</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_909_13">Get_KeyPad_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#916_14">Half_Delay</A><FONT COLOR=red><A NAME="907_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#916_26">Amount</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#913_9">Half_Delay_Amount</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_908_14" HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A></FONT> (<FONT COLOR=red><A NAME="ref_908_26" HREF="terminal_interface-curses__ads.htm#ref_917_26">Amount</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_914_9">Half_Delay_Amount</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="909_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="909_27">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#909_16">Halfdelay</A>, "halfdelay");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_910_16">Halfdelay</A></FONT> (<FONT COLOR=red><A NAME="ref_910_27">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_910_16">Halfdelay</A>, "halfdelay");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#909_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#916_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_910_16">Halfdelay</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_917_26">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#916_14">Half_Delay</A><A HREF="terminal_interface-curses__ads.htm#916_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_917_14">Half_Delay</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#921_14">Set_Flush_On_Interrupt_Mode</A><FONT COLOR=red><A NAME="917_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#922_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#923_7">Mode</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_918_14" HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_919_7" HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_920_7" HREF="terminal_interface-curses__ads.htm#ref_924_7">Mode</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="921_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="921_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="921_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#921_16">Intrflush</A>, "intrflush");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_922_16">Intrflush</A></FONT> (<FONT COLOR=red><A NAME="ref_922_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_922_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_922_16">Intrflush</A>, "intrflush");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#921_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#922_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#923_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_922_16">Intrflush</A> (<A HREF="terminal_interface-curses__ads.htm#ref_923_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_924_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#921_14">Set_Flush_On_Interrupt_Mode</A><A HREF="terminal_interface-curses__ads.htm#921_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_922_14">Set_Flush_On_Interrupt_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#928_14">Set_Queue_Interrupt_Mode</A><FONT COLOR=red><A NAME="929_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#929_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#930_7">Flush</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_930_14" HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_932_7" HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="933_17">Qiflush</A></FONT>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#933_17">Qiflush</A>, "qiflush");
- <b>procedure</b> <FONT COLOR=red><A NAME="935_17">No_Qiflush</A></FONT>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#935_17">No_Qiflush</A>, "noqiflush");
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_934_17">Qiflush</A></FONT>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_934_17">Qiflush</A>, "qiflush");
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_936_17">No_Qiflush</A></FONT>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_936_17">No_Qiflush</A>, "noqiflush");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#930_7">Flush</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#933_17">Qiflush</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_930_7">Win</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_931_7">Flush</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_934_17">Qiflush</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#935_17">No_Qiflush</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_936_17">No_Qiflush</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#928_14">Set_Queue_Interrupt_Mode</A><A HREF="terminal_interface-curses__ads.htm#928_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_929_14">Set_Queue_Interrupt_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#936_14">Set_NoDelay_Mode</A><FONT COLOR=red><A NAME="945_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#937_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#938_7">Mode</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_949_14" HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_950_7" HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_951_7" HREF="terminal_interface-curses__ads.htm#ref_939_7">Mode</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="949_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="949_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="949_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#949_16">Nodelay</A>, "nodelay");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_953_16">Nodelay</A></FONT> (<FONT COLOR=red><A NAME="ref_953_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_953_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_953_16">Nodelay</A>, "nodelay");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#949_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#937_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#938_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_953_16">Nodelay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_938_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_939_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#936_14">Set_NoDelay_Mode</A><A HREF="terminal_interface-curses__ads.htm#936_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_937_14">Set_NoDelay_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#945_14">Set_Timeout_Mode</A><FONT COLOR=red><A NAME="957_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#945_32">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#946_32">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#942_9">Timeout_Mode</A>;
- <A HREF="terminal_interface-curses__ads.htm#947_32">Amount</A> : <b>in</b> Natural)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_961_14" HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_961_32" HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_962_32" HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Timeout_Mode</A>;
+ <FONT COLOR=red><A NAME="ref_963_32" HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A></FONT> : <b>in</b> Natural)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="961_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="961_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="961_40">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#961_16">Wtimeout</A>, "wtimeout");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_965_16">Wtimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_965_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_965_40">Amount</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_965_16">Wtimeout</A>, "wtimeout");
- <FONT COLOR=red><A NAME="964_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_968_7">Time</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#946_32">Mode</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#942_26">Blocking</A> => <A HREF="terminal_interface-curses__adb.htm#964_7">Time</A> := -1;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#942_36">Non_Blocking</A> => <A HREF="terminal_interface-curses__adb.htm#964_7">Time</A> := 0;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#942_50">Delayed</A> =>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#947_32">Amount</A> = 0 <b>then</b>
+ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_947_32">Mode</A> <b>is</b>
+ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_26">Blocking</A> => <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := -1;
+ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_36">Non_Blocking</A> => <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := 0;
+ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_50">Delayed</A> =>
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A> = 0 <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#964_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#947_32">Amount</A>);
+ <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_948_32">Amount</A>);
<b>end</b> <b>case</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#961_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#945_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#964_7">Time</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_965_16">Wtimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_946_32">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_968_7">Time</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#945_14">Set_Timeout_Mode</A><A HREF="terminal_interface-curses__ads.htm#945_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_946_14">Set_Timeout_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#957_14">Set_Escape_Timer_Mode</A><FONT COLOR=red><A NAME="980_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#958_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#959_7">Timer_Off</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_984_14" HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_985_7" HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_986_7" HREF="terminal_interface-curses__ads.htm#ref_960_7">Timer_Off</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="984_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="984_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="984_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#984_16">Notimeout</A>, "notimeout");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_988_16">Notimeout</A></FONT> (<FONT COLOR=red><A NAME="ref_988_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_988_41">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_988_16">Notimeout</A>, "notimeout");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#984_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#958_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#959_7">Timer_Off</A>)))
- = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_988_16">Notimeout</A> (<A HREF="terminal_interface-curses__ads.htm#ref_959_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_960_7">Timer_Off</A>)))
+ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#957_14">Set_Escape_Timer_Mode</A><A HREF="terminal_interface-curses__ads.htm#957_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_958_14">Set_Escape_Timer_Mode</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#968_14">Set_NL_Mode</A><FONT COLOR=red><A NAME="994_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#968_27">SwitchOn</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_998_14" HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_998_27" HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="996_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#996_16">NL</A>, "nl");
- <b>function</b> <FONT COLOR=red><A NAME="998_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#998_16">NoNL</A>, "nonl");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1000_16">NL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1000_16">NL</A>, "nl");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1002_16">NoNL</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">NoNL</A>, "nonl");
- <FONT COLOR=red><A NAME="1001_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1005_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#968_27">SwitchOn</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#1001_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#996_16">NL</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_27">SwitchOn</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1000_16">NL</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#1001_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#998_16">NoNL</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1002_16">NoNL</A>;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1001_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1005_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#968_14">Set_NL_Mode</A><A HREF="terminal_interface-curses__ads.htm#968_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_969_14">Set_NL_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#974_14">Clear_On_Next_Update</A><FONT COLOR=red><A NAME="1013_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#975_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#976_7">Do_Clear</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1017_14" HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1018_7" HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1019_7" HREF="terminal_interface-curses__ads.htm#ref_977_7">Do_Clear</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1017_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="1017_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1017_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1017_16">Clear_Ok</A>, "clearok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1021_16">Clear_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1021_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1021_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1021_16">Clear_Ok</A>, "clearok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1017_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#975_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#976_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1021_16">Clear_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_976_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_977_7">Do_Clear</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#974_14">Clear_On_Next_Update</A><A HREF="terminal_interface-curses__ads.htm#974_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_975_14">Clear_On_Next_Update</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#981_14">Use_Insert_Delete_Line</A><FONT COLOR=red><A NAME="1025_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#982_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#983_7">Do_Idl</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1029_14" HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1030_7" HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1031_7" HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Idl</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1029_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="1029_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1029_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1029_16">IDL_Ok</A>, "idlok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1033_16">IDL_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1033_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1033_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1033_16">IDL_Ok</A>, "idlok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1029_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#982_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#983_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1033_16">IDL_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_983_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_984_7">Do_Idl</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#981_14">Use_Insert_Delete_Line</A><A HREF="terminal_interface-curses__ads.htm#981_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_982_14">Use_Insert_Delete_Line</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#988_14">Use_Insert_Delete_Character</A><FONT COLOR=red><A NAME="1037_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#989_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#990_7">Do_Idc</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1041_14" HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1042_7" HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1043_7" HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1041_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="1041_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1041_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1041_16">IDC_Ok</A>, "idcok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1045_16">IDC_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1045_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1045_36">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1045_16">IDC_Ok</A>, "idcok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1041_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#989_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#990_7">Do_Idc</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1045_16">IDC_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_990_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_991_7">Do_Idc</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#988_14">Use_Insert_Delete_Character</A><A HREF="terminal_interface-curses__ads.htm#988_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_989_14">Use_Insert_Delete_Character</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#995_14">Leave_Cursor_After_Update</A><FONT COLOR=red><A NAME="1049_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#996_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#997_7">Do_Leave</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1053_14" HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1054_7" HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1055_7" HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Leave</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1053_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="1053_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1053_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1053_16">Leave_Ok</A>, "leaveok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1057_16">Leave_Ok</A></FONT> (<FONT COLOR=red><A NAME="ref_1057_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1057_38">Flag</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1057_16">Leave_Ok</A>, "leaveok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1053_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#996_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#997_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1057_16">Leave_Ok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_997_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_998_7">Do_Leave</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#995_14">Leave_Cursor_After_Update</A><A HREF="terminal_interface-curses__ads.htm#995_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_996_14">Leave_Cursor_After_Update</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1002_14">Immediate_Update_Mode</A><FONT COLOR=red><A NAME="1061_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1003_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1004_7">Mode</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1065_14" HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1066_7" HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1067_7" HREF="terminal_interface-curses__ads.htm#ref_1005_7">Mode</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1065_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="1065_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1065_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1065_16">Immedok</A>, "immedok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1069_16">Immedok</A></FONT> (<FONT COLOR=red><A NAME="ref_1069_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1069_39">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Immedok</A>, "immedok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1065_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#1003_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1004_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1069_16">Immedok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1004_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1005_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1002_14">Immediate_Update_Mode</A><A HREF="terminal_interface-curses__ads.htm#1002_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1003_14">Immediate_Update_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1009_14">Allow_Scrolling</A><FONT COLOR=red><A NAME="1073_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1010_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1011_7">Mode</A> : <b>in</b> Boolean := False)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1077_14" HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1078_7" HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1079_7" HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A></FONT> : <b>in</b> Boolean := False)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1077_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="1077_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1077_40">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1077_16">Scrollok</A>, "scrollok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1081_16">Scrollok</A></FONT> (<FONT COLOR=red><A NAME="ref_1081_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1081_40">Mode</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1081_16">Scrollok</A>, "scrollok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1077_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#1010_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1011_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1081_16">Scrollok</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1011_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1012_7">Mode</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1009_14">Allow_Scrolling</A><A HREF="terminal_interface-curses__ads.htm#1009_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1010_14">Allow_Scrolling</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1015_13">Scrolling_Allowed</A> (<A HREF="terminal_interface-curses__ads.htm#1015_32">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1089_13" HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A></FONT> (<FONT COLOR=red><A NAME="ref_1089_32" HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>return</b> Boolean
<b>is</b>
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#92_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#1015_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1921_4">Offset_scroll</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1015_13">Scrolling_Allowed</A><A HREF="terminal_interface-curses__ads.htm#1015_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_93_13">Get_Flag</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1016_32">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1922_4">Offset_scroll</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1016_13">Scrolling_Allowed</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1020_14">Set_Scroll_Region</A><FONT COLOR=red><A NAME="1092_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1021_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1022_7">Top_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1023_7">Bottom_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1096_14" HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1097_7" HREF="terminal_interface-curses__ads.htm#ref_1022_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1098_7" HREF="terminal_interface-curses__ads.htm#ref_1023_7">Top_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1099_7" HREF="terminal_interface-curses__ads.htm#ref_1024_7">Bottom_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1097_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="1097_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1098_28">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1099_28">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1097_16">Wsetscrreg</A>, "wsetscrreg");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1101_16">Wsetscrreg</A></FONT> (<FONT COLOR=red><A NAME="ref_1101_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1102_28">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1103_28">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1101_16">Wsetscrreg</A>, "wsetscrreg");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1097_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#1021_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1022_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1023_7">Bottom_Line</A>))
- = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1101_16">Wsetscrreg</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1022_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1023_7">Top_Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1024_7">Bottom_Line</A>))
+ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1020_14">Set_Scroll_Region</A><A HREF="terminal_interface-curses__ads.htm#1020_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1021_14">Set_Scroll_Region</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1033_14">Update_Screen</A><FONT COLOR=red><A NAME="1108_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1112_14" HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1110_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1110_16">Do_Update</A>, "doupdate");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1114_16">Do_Update</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1114_16">Do_Update</A>, "doupdate");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1110_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1114_16">Do_Update</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1033_14">Update_Screen</A><A HREF="terminal_interface-curses__ads.htm#1033_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1034_14">Update_Screen</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1038_14">Refresh</A><FONT COLOR=red><A NAME="1118_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1038_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1122_14" HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1122_23" HREF="terminal_interface-curses__ads.htm#ref_1039_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1120_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="1120_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1120_16">Wrefresh</A>, "wrefresh");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1124_16">Wrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1124_26">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1124_16">Wrefresh</A>, "wrefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1120_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1038_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1124_16">Wrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1039_23">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1038_14">Refresh</A><A HREF="terminal_interface-curses__ads.htm#1038_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1039_14">Refresh</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1045_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1128_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1046_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1132_14" HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1133_7" HREF="terminal_interface-curses__ads.htm#ref_1047_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1131_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="1131_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1131_16">Wnoutrefresh</A>, "wnoutrefresh");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1135_16">Wnoutrefresh</A></FONT> (<FONT COLOR=red><A NAME="ref_1135_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1135_16">Wnoutrefresh</A>, "wnoutrefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1131_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1046_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1135_16">Wnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1047_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1045_14">Refresh_Without_Update</A><A HREF="terminal_interface-curses__ads.htm#1045_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1046_14">Refresh_Without_Update</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1052_14">Redraw</A><FONT COLOR=red><A NAME="1139_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1052_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1143_14" HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A></FONT> (<FONT COLOR=red><A NAME="ref_1143_22" HREF="terminal_interface-curses__ads.htm#ref_1053_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1141_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="1141_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1141_16">Redrawwin</A>, "redrawwin");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1145_16">Redrawwin</A></FONT> (<FONT COLOR=red><A NAME="ref_1145_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1145_16">Redrawwin</A>, "redrawwin");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1141_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#1052_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1145_16">Redrawwin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1053_22">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1052_14">Redraw</A><A HREF="terminal_interface-curses__ads.htm#1052_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1053_14">Redraw</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1056_14">Redraw</A><FONT COLOR=red><A NAME="1149_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1056_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1057_22">Begin_Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1058_22">Line_Count</A> : <b>in</b> Positive)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1153_14" HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1154_7" HREF="terminal_interface-curses__ads.htm#ref_1057_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1155_7" HREF="terminal_interface-curses__ads.htm#ref_1058_22">Begin_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1156_7" HREF="terminal_interface-curses__ads.htm#ref_1059_22">Line_Count</A></FONT> : <b>in</b> Positive)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1154_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="1154_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1154_41">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="1154_56">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1154_16">Wredrawln</A>, "wredrawln");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1158_16">Wredrawln</A></FONT> (<FONT COLOR=red><A NAME="ref_1158_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1158_41">First</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1158_56">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1158_16">Wredrawln</A>, "wredrawln");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1154_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#1056_22">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1057_22">Begin_Line</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1058_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1158_16">Wredrawln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1057_22">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1058_22">Begin_Line</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1059_22">Line_Count</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1056_14">Redraw</A><A HREF="terminal_interface-curses__ads.htm#1056_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1057_14">Redraw</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1067_14">Erase</A><FONT COLOR=red><A NAME="1166_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1067_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1170_14" HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A></FONT> (<FONT COLOR=red><A NAME="ref_1170_21" HREF="terminal_interface-curses__ads.htm#ref_1068_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1168_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="1168_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1168_16">Werase</A>, "werase");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1172_16">Werase</A></FONT> (<FONT COLOR=red><A NAME="ref_1172_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1172_16">Werase</A>, "werase");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1168_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#1067_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1172_16">Werase</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1068_21">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1067_14">Erase</A><A HREF="terminal_interface-curses__ads.htm#1067_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1068_14">Erase</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1073_14">Clear</A><FONT COLOR=red><A NAME="1176_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1074_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1180_14" HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A></FONT> (<FONT COLOR=red><A NAME="ref_1180_21" HREF="terminal_interface-curses__ads.htm#ref_1075_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1178_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="1178_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1178_16">Wclear</A>, "wclear");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1182_16">Wclear</A></FONT> (<FONT COLOR=red><A NAME="ref_1182_24">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1182_16">Wclear</A>, "wclear");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1178_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#1074_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1182_16">Wclear</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1075_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1073_14">Clear</A><A HREF="terminal_interface-curses__ads.htm#1073_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1074_14">Clear</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1080_14">Clear_To_End_Of_Screen</A><FONT COLOR=red><A NAME="1186_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1081_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1190_14" HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A></FONT> (<FONT COLOR=red><A NAME="ref_1190_38" HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1188_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="1188_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1188_16">Wclearbot</A>, "wclrtobot");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1192_16">Wclearbot</A></FONT> (<FONT COLOR=red><A NAME="ref_1192_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1192_16">Wclearbot</A>, "wclrtobot");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1188_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#1081_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1192_16">Wclearbot</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1082_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1080_14">Clear_To_End_Of_Screen</A><A HREF="terminal_interface-curses__ads.htm#1080_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1081_14">Clear_To_End_Of_Screen</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1087_14">Clear_To_End_Of_Line</A><FONT COLOR=red><A NAME="1196_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1088_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1200_14" HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1200_36" HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1198_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="1198_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1198_16">Wcleareol</A>, "wclrtoeol");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1202_16">Wcleareol</A></FONT> (<FONT COLOR=red><A NAME="ref_1202_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1202_16">Wcleareol</A>, "wclrtoeol");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1198_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#1088_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1202_16">Wcleareol</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1089_7">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1087_14">Clear_To_End_Of_Line</A><A HREF="terminal_interface-curses__ads.htm#1087_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1088_14">Clear_To_End_Of_Line</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1101_14">Set_Background</A><FONT COLOR=red><A NAME="1206_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1102_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1103_7">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1210_14" HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1211_7" HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1212_7" HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
<b>is</b>
- <b>procedure</b> <FONT COLOR=red><A NAME="1210_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="1210_30">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1210_45">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>);
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1210_17">WBackground</A>, "wbkgdset");
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1214_17">WBackground</A></FONT> (<FONT COLOR=red><A NAME="ref_1214_30">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1214_45">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>);
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1214_17">WBackground</A>, "wbkgdset");
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#1210_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#1102_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1103_7">Ch</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1101_14">Set_Background</A><A HREF="terminal_interface-curses__ads.htm#1101_14">;</A>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1214_17">WBackground</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1103_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1104_7">Ch</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1102_14">Set_Background</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1109_14">Change_Background</A><FONT COLOR=red><A NAME="1216_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1110_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1111_7">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1220_14" HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1221_7" HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1222_7" HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1220_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="1220_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1220_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1220_16">WChangeBkgd</A>, "wbkgd");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1224_16">WChangeBkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1224_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1224_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1224_16">WChangeBkgd</A>, "wbkgd");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1220_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1110_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1111_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1224_16">WChangeBkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1111_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1112_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1109_14">Change_Background</A><A HREF="terminal_interface-curses__ads.htm#1109_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1110_14">Change_Background</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1118_13">Get_Background</A> (<A HREF="terminal_interface-curses__ads.htm#1118_29">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1232_13" HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A></FONT> (<FONT COLOR=red><A NAME="ref_1232_29" HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1231_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="1231_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1231_16">Wgetbkgd</A>, "getbkgd");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1235_16">Wgetbkgd</A></FONT> (<FONT COLOR=red><A NAME="ref_1235_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1235_16">Wgetbkgd</A>, "getbkgd");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1231_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#1118_29">Win</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1118_13">Get_Background</A><A HREF="terminal_interface-curses__ads.htm#1118_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1235_16">Wgetbkgd</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1119_29">Win</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1119_13">Get_Background</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A><FONT COLOR=red><A NAME="1237_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1145_35">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1146_35">Start</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1147_35">Count</A> : <b>in</b> Positive;
- <A HREF="terminal_interface-curses__ads.htm#1148_35">State</A> : <b>in</b> Boolean)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1241_14" HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A></FONT> (<FONT COLOR=red><A NAME="ref_1241_35" HREF="terminal_interface-curses__ads.htm#ref_1146_35">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1242_35" HREF="terminal_interface-curses__ads.htm#ref_1147_35">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1243_35" HREF="terminal_interface-curses__ads.htm#ref_1148_35">Count</A></FONT> : <b>in</b> Positive;
+ <FONT COLOR=red><A NAME="ref_1244_35" HREF="terminal_interface-curses__ads.htm#ref_1149_35">State</A></FONT> : <b>in</b> Boolean)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1242_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="1242_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1243_26">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1244_26">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1245_26">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1242_16">Wtouchln</A>, "wtouchln");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1246_16">Wtouchln</A></FONT> (<FONT COLOR=red><A NAME="ref_1246_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1247_26">Sta</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1248_26">Cnt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1249_26">Chg</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">Wtouchln</A>, "wtouchln");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1242_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#1145_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1146_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1147_35">Count</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1148_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1246_16">Wtouchln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1146_35">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1147_35">Start</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1148_35">Count</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1149_35">State</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A><A HREF="terminal_interface-curses__ads.htm#1145_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1134_14">Touch</A><FONT COLOR=red><A NAME="1254_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1134_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1258_14" HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1258_21" HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="1256_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1257_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1260_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1261_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1134_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1256_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1257_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1134_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1256_7">Y</A>), True);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1134_14">Touch</A><A HREF="terminal_interface-curses__ads.htm#1134_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1261_7">X</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1135_21">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1260_7">Y</A>), True);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1135_14">Touch</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1129_14">Untouch</A><FONT COLOR=red><A NAME="1263_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1129_23">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1267_14" HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A></FONT> (<FONT COLOR=red><A NAME="ref_1267_23" HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <FONT COLOR=red><A NAME="1265_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1266_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1269_7">Y</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1270_7">X</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#1129_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1265_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#1266_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1129_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#1265_7">Y</A>), False);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1129_14">Untouch</A><A HREF="terminal_interface-curses__ads.htm#1129_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1270_7">X</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1130_23">Win</A>, 0, Positive (<A HREF="terminal_interface-curses__adb.htm#ref_1269_7">Y</A>), False);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1130_14">Untouch</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1138_14">Touch</A><FONT COLOR=red><A NAME="1272_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1138_21">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1139_21">Start</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1140_21">Count</A> : <b>in</b> Positive)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1276_14" HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A></FONT> (<FONT COLOR=red><A NAME="ref_1276_21" HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1277_21" HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1278_21" HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A></FONT> : <b>in</b> Positive)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1145_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#1138_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1139_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#1140_21">Count</A>, True);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1138_14">Touch</A><A HREF="terminal_interface-curses__ads.htm#1138_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1146_14">Change_Lines_Status</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1139_21">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1140_21">Start</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1141_21">Count</A>, True);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1139_14">Touch</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1153_13">Is_Touched</A>
- (<A HREF="terminal_interface-curses__ads.htm#1153_25">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1154_25">Line</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1284_13" HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1285_7" HREF="terminal_interface-curses__ads.htm#ref_1154_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1286_7" HREF="terminal_interface-curses__ads.htm#ref_1155_25">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1284_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="1284_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1284_42">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1284_16">WLineTouched</A>, "is_linetouched");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1288_16">WLineTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1288_30">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1288_42">L</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1288_16">WLineTouched</A>, "is_linetouched");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1284_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1153_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1154_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1288_16">WLineTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1154_25">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1155_25">Line</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1153_13">Is_Touched</A><A HREF="terminal_interface-curses__ads.htm#1153_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1154_13">Is_Touched</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1158_13">Is_Touched</A>
- (<A HREF="terminal_interface-curses__ads.htm#1158_25">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1298_13" HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1299_7" HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1297_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="1297_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1297_16">WWinTouched</A>, "is_wintouched");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1301_16">WWinTouched</A></FONT> (<FONT COLOR=red><A NAME="ref_1301_29">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1301_16">WWinTouched</A>, "is_wintouched");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1297_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#1158_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1301_16">WWinTouched</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1159_25">Win</A>) = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1158_13">Is_Touched</A><A HREF="terminal_interface-curses__ads.htm#1158_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1159_13">Is_Touched</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1167_14">Copy</A><FONT COLOR=red><A NAME="1307_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1168_7">Source_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1169_7">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1170_7">Source_Top_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1171_7">Source_Left_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1172_7">Destination_Top_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1173_7">Destination_Left_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1174_7">Destination_Bottom_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1175_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1176_7">Non_Destructive_Mode</A> : <b>in</b> Boolean := True)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1318_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="1318_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1319_25">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1320_25">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1321_25">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1322_25">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1323_25">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1324_25">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1325_25">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1326_25">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1318_16">Copywin</A>, "copywin");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1318_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#1168_7">Source_Window</A>,
- <A HREF="terminal_interface-curses__ads.htm#1169_7">Destination_Window</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1170_7">Source_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1171_7">Source_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1172_7">Destination_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1173_7">Destination_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1174_7">Destination_Bottom_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1175_7">Destination_Right_Column</A>),
- Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1176_7">Non_Destructive_Mode</A>)
- ) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1167_14">Copy</A><A HREF="terminal_interface-curses__ads.htm#1167_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1181_14">Overwrite</A><FONT COLOR=red><A NAME="1343_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1181_25">Source_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1182_25">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1347_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="1347_27">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1347_41">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1347_16">Overwrite</A>, "overwrite");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1347_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#1181_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1182_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1181_14">Overwrite</A><A HREF="terminal_interface-curses__ads.htm#1181_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1187_14">Overlay</A><FONT COLOR=red><A NAME="1355_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1187_23">Source_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1188_23">Destination_Window</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1359_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="1359_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1359_39">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1359_16">Overlay</A>, "overlay");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1359_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#1187_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#1188_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1187_14">Overlay</A><A HREF="terminal_interface-curses__ads.htm#1187_14">;</A>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1311_14" HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1312_7" HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1313_7" HREF="terminal_interface-curses__ads.htm#ref_1170_7">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1314_7" HREF="terminal_interface-curses__ads.htm#ref_1171_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1315_7" HREF="terminal_interface-curses__ads.htm#ref_1172_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1316_7" HREF="terminal_interface-curses__ads.htm#ref_1173_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1317_7" HREF="terminal_interface-curses__ads.htm#ref_1174_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1318_7" HREF="terminal_interface-curses__ads.htm#ref_1175_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1319_7" HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1320_7" HREF="terminal_interface-curses__ads.htm#ref_1177_7">Non_Destructive_Mode</A></FONT> : <b>in</b> Boolean := True)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1322_16">Copywin</A></FONT> (<FONT COLOR=red><A NAME="ref_1322_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1323_25">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1324_25">Str</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1325_25">Slc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1326_25">Dtr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1327_25">Dlc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1328_25">Dbr</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1329_25">Drc</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1330_25">Ndm</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1322_16">Copywin</A>, "copywin");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1322_16">Copywin</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1169_7">Source_Window</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_1170_7">Destination_Window</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1171_7">Source_Top_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1172_7">Source_Left_Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1173_7">Destination_Top_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1174_7">Destination_Left_Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1175_7">Destination_Bottom_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1176_7">Destination_Right_Column</A>),
+ Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1177_7">Non_Destructive_Mode</A>)
+ ) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1168_14">Copy</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1347_14" HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1348_7" HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1349_7" HREF="terminal_interface-curses__ads.htm#ref_1183_25">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1351_16">Overwrite</A></FONT> (<FONT COLOR=red><A NAME="ref_1351_27">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1351_41">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1351_16">Overwrite</A>, "overwrite");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1351_16">Overwrite</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1182_25">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1183_25">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1182_14">Overwrite</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1359_14" HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1360_7" HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1361_7" HREF="terminal_interface-curses__ads.htm#ref_1189_23">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1363_16">Overlay</A></FONT> (<FONT COLOR=red><A NAME="ref_1363_25">Src</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1363_39">Dst</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1363_16">Overlay</A>, "overlay");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1363_16">Overlay</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1188_23">Source_Window</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1189_23">Destination_Window</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1188_14">Overlay</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A><FONT COLOR=red><A NAME="1368_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1198_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1199_7">Lines</A> : <b>in</b> Integer := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1372_14" HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1373_7" HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1374_7" HREF="terminal_interface-curses__ads.htm#ref_1200_7">Lines</A></FONT> : <b>in</b> Integer := 1) <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1372_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="1372_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1372_39">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1372_16">Winsdelln</A>, "winsdelln");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1376_16">Winsdelln</A></FONT> (<FONT COLOR=red><A NAME="ref_1376_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1376_39">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1376_16">Winsdelln</A>, "winsdelln");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1372_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#1198_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1199_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1376_16">Winsdelln</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1199_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1200_7">Lines</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A><A HREF="terminal_interface-curses__ads.htm#1197_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1205_14">Delete_Line</A><FONT COLOR=red><A NAME="1380_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1205_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1384_14" HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1384_27" HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1205_27">Win</A>, -1);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1205_14">Delete_Line</A><A HREF="terminal_interface-curses__ads.htm#1205_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1206_27">Win</A>, -1);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1206_14">Delete_Line</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1211_14">Insert_Line</A><FONT COLOR=red><A NAME="1386_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1211_27">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1390_14" HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A></FONT> (<FONT COLOR=red><A NAME="ref_1390_27" HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1197_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#1211_27">Win</A>, 1);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1211_14">Insert_Line</A><A HREF="terminal_interface-curses__ads.htm#1211_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1198_14">Insert_Delete_Lines</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1212_27">Win</A>, 1);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1212_14">Insert_Line</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A><FONT COLOR=red><A NAME="1394_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1222_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1223_7">Number_Of_Lines</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#1224_7">Number_Of_Columns</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1398_14" HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1399_7" HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1400_7" HREF="terminal_interface-curses__ads.htm#ref_1224_7">Number_Of_Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_1401_7" HREF="terminal_interface-curses__ads.htm#ref_1225_7">Number_Of_Columns</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>)
<b>is</b>
<FONT COLOR=green><EM>-- Please note: in ncurses they are one off.</EM></FONT>
<FONT COLOR=green><EM>-- This might be different in other implementations of curses</EM></FONT>
- <FONT COLOR=red><A NAME="1401_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1222_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1909_4">Offset_maxy</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1928_4">Offset_XY</A>);
- <FONT COLOR=red><A NAME="1402_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1222_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1910_4">Offset_maxx</A>)) + <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1928_4">Offset_XY</A>);
- <b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1223_7">Number_Of_Lines</A> := <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1401_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#1224_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#1402_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1221_14">Get_Size</A><A HREF="terminal_interface-curses__ads.htm#1221_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1229_14">Get_Window_Position</A><FONT COLOR=red><A NAME="1408_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1230_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1231_7">Top_Left_Line</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1232_7">Top_Left_Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
- <b>is</b>
- <FONT COLOR=red><A NAME="1413_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1230_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1911_4">Offset_begy</A>);
- <FONT COLOR=red><A NAME="1414_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1230_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1912_4">Offset_begx</A>);
- <b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1231_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1413_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#1232_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1414_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1229_14">Get_Window_Position</A><A HREF="terminal_interface-curses__ads.htm#1229_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A><FONT COLOR=red><A NAME="1420_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1238_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1239_7">Line</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1240_7">Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
- <b>is</b>
- <FONT COLOR=red><A NAME="1425_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1238_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1913_4">Offset_cury</A>);
- <FONT COLOR=red><A NAME="1426_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#89_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1238_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1914_4">Offset_curx</A>);
- <b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1239_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1425_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#1240_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1426_7">X</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1237_14">Get_Cursor_Position</A><A HREF="terminal_interface-curses__ads.htm#1237_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1245_14">Get_Origin_Relative_To_Parent</A><FONT COLOR=red><A NAME="1432_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1246_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1247_7">Top_Left_Line</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Column</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1249_7">Is_Not_A_Subwindow</A> : <b>out</b> Boolean)
- <b>is</b>
- <FONT COLOR=red><A NAME="1438_7">Y</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#88_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1246_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1916_4">Offset_pary</A>);
- <FONT COLOR=red><A NAME="1439_7">X</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#88_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1246_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1917_4">Offset_parx</A>);
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1438_7">Y</A> = -1 <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#1247_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>'Last;
- <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>'Last;
- <A HREF="terminal_interface-curses__ads.htm#1249_7">Is_Not_A_Subwindow</A> := True;
+ <FONT COLOR=red><A NAME="ref_1405_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1910_4">Offset_maxy</A>))
+ + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1929_4">Offset_XY</A>);
+ <FONT COLOR=red><A NAME="ref_1407_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1223_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1911_4">Offset_maxx</A>))
+ + <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1929_4">Offset_XY</A>);
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1224_7">Number_Of_Lines</A> := <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1405_7">Y</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1225_7">Number_Of_Columns</A> := <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1407_7">X</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1222_14">Get_Size</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1414_14" HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1415_7" HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1416_7" HREF="terminal_interface-curses__ads.htm#ref_1232_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1417_7" HREF="terminal_interface-curses__ads.htm#ref_1233_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+ <b>is</b>
+ <FONT COLOR=red><A NAME="ref_1419_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1912_4">Offset_begy</A>);
+ <FONT COLOR=red><A NAME="ref_1420_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1231_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1913_4">Offset_begx</A>);
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1232_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1419_7">Y</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1233_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1420_7">X</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1230_14">Get_Window_Position</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1426_14" HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1427_7" HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1428_7" HREF="terminal_interface-curses__ads.htm#ref_1240_7">Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1429_7" HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+ <b>is</b>
+ <FONT COLOR=red><A NAME="ref_1431_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1914_4">Offset_cury</A>);
+ <FONT COLOR=red><A NAME="ref_1432_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> := <A HREF="terminal_interface-curses__adb.htm#ref_90_13">W_Get_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1239_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1915_4">Offset_curx</A>);
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1240_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1431_7">Y</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1241_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1432_7">X</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1238_14">Get_Cursor_Position</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1438_14" HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1439_7" HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1440_7" HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1441_7" HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1442_7" HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A></FONT> : <b>out</b> Boolean)
+ <b>is</b>
+ <FONT COLOR=red><A NAME="ref_1444_7">Y</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_89_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1917_4">Offset_pary</A>);
+ <FONT COLOR=red><A NAME="ref_1445_7">X</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_89_13">W_Get_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1247_7">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1918_4">Offset_parx</A>);
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1444_7">Y</A> = -1 <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>'Last;
+ <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>'Last;
+ <A HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A> := True;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#1247_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1438_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#1248_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#1439_7">X</A>);
- <A HREF="terminal_interface-curses__ads.htm#1249_7">Is_Not_A_Subwindow</A> := False;
+ <A HREF="terminal_interface-curses__ads.htm#ref_1248_7">Top_Left_Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1444_7">Y</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1249_7">Top_Left_Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1445_7">X</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1250_7">Is_Not_A_Subwindow</A> := False;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1245_14">Get_Origin_Relative_To_Parent</A><A HREF="terminal_interface-curses__ads.htm#1245_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1246_14">Get_Origin_Relative_To_Parent</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1260_13">New_Pad</A> (<A HREF="terminal_interface-curses__ads.htm#1260_22">Lines</A> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#1261_22">Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1455_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="1455_24">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>; <FONT COLOR=red><A NAME="1455_39">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1455_16">Newpad</A>, "newpad");
-
- <FONT COLOR=red><A NAME="1458_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#1458_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1455_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1260_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1261_22">Columns</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1458_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1458_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1260_13">New_Pad</A><A HREF="terminal_interface-curses__ads.htm#1260_13">;</A>
-
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1266_13">Sub_Pad</A>
- (<A HREF="terminal_interface-curses__ads.htm#1267_7">Pad</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1268_7">Number_Of_Lines</A> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#1269_7">Number_Of_Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#1270_7">First_Line_Position</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1271_7">First_Column_Position</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1474_16">Subpad</A></FONT>
- (<FONT COLOR=red><A NAME="1475_10">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1476_10">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1477_10">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1478_10">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1479_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1474_16">Subpad</A>, "subpad");
-
- <FONT COLOR=red><A NAME="1482_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#1482_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#1474_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#1267_7">Pad</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1268_7">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1269_7">Number_Of_Columns</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1270_7">First_Line_Position</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1271_7">First_Column_Position</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1482_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#57_4">Null_Window</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#1482_7">W</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1266_13">Sub_Pad</A><A HREF="terminal_interface-curses__ads.htm#1266_13">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1276_14">Refresh</A><FONT COLOR=red><A NAME="1495_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1277_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1278_7">Source_Top_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1279_7">Source_Left_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1280_7">Destination_Top_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1281_7">Destination_Left_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1282_7">Destination_Bottom_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1283_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1504_16">Prefresh</A></FONT>
- (<FONT COLOR=red><A NAME="1505_10">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1506_10">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1507_10">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1508_10">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1509_10">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1510_10">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1511_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1504_16">Prefresh</A>, "prefresh");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1504_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1277_7">Pad</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1278_7">Source_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1279_7">Source_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1280_7">Destination_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1281_7">Destination_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1282_7">Destination_Bottom_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1283_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1276_14">Refresh</A><A HREF="terminal_interface-curses__ads.htm#1276_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1288_14">Refresh_Without_Update</A><FONT COLOR=red><A NAME="1525_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1289_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1290_7">Source_Top_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1291_7">Source_Left_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1292_7">Destination_Top_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1293_7">Destination_Left_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1294_7">Destination_Bottom_Row</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1295_7">Destination_Right_Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1534_16">Pnoutrefresh</A></FONT>
- (<FONT COLOR=red><A NAME="1535_10">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1536_10">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1537_10">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1538_10">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1539_10">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1540_10">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1541_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1534_16">Pnoutrefresh</A>, "pnoutrefresh");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1534_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#1289_7">Pad</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1290_7">Source_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1291_7">Source_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1292_7">Destination_Top_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1293_7">Destination_Left_Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1294_7">Destination_Bottom_Row</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1295_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1288_14">Refresh_Without_Update</A><A HREF="terminal_interface-curses__ads.htm#1288_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1300_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1555_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1301_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1302_7">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1559_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="1559_27">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1559_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1559_16">Pechochar</A>, "pechochar");
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1559_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#1301_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1302_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1300_14">Add_Character_To_Pad_And_Echo_It</A><A HREF="terminal_interface-curses__ads.htm#1300_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1305_14">Add_Character_To_Pad_And_Echo_It</A><FONT COLOR=red><A NAME="1568_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1306_7">Pad</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1307_7">Ch</A> : <b>in</b> Character)
- <b>is</b>
- <b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#1300_14">Add_Character_To_Pad_And_Echo_It</A>
- (<A HREF="terminal_interface-curses__ads.htm#1306_7">Pad</A>,
- <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#1307_7">Ch</A>,
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1305_14">Add_Character_To_Pad_And_Echo_It</A><A HREF="terminal_interface-curses__ads.htm#1305_14">;</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1458_13" HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A></FONT> (<FONT COLOR=red><A NAME="ref_1458_22" HREF="terminal_interface-curses__ads.htm#ref_1261_22">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_1459_22" HREF="terminal_interface-curses__ads.htm#ref_1262_22">Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1461_16">Newpad</A></FONT> (<FONT COLOR=red><A NAME="ref_1461_24">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>; <FONT COLOR=red><A NAME="ref_1461_39">Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1461_16">Newpad</A>, "newpad");
+
+ <FONT COLOR=red><A NAME="ref_1464_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1464_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1461_16">Newpad</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1261_22">Lines</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1262_22">Columns</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1464_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1464_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1261_13">New_Pad</A>;
+
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1473_13" HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1474_7" HREF="terminal_interface-curses__ads.htm#ref_1268_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1475_7" HREF="terminal_interface-curses__ads.htm#ref_1269_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_1476_7" HREF="terminal_interface-curses__ads.htm#ref_1270_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_1477_7" HREF="terminal_interface-curses__ads.htm#ref_1271_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1478_7" HREF="terminal_interface-curses__ads.htm#ref_1272_7">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1480_16">Subpad</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1481_10">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1482_10">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1483_10">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1484_10">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1485_10">First_Column_Position</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1480_16">Subpad</A>, "subpad");
+
+ <FONT COLOR=red><A NAME="ref_1488_7">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1488_7">W</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1480_16">Subpad</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1268_7">Pad</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1269_7">Number_Of_Lines</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1270_7">Number_Of_Columns</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1271_7">First_Line_Position</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1272_7">First_Column_Position</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1488_7">W</A> = <A HREF="terminal_interface-curses__ads.htm#ref_58_4">Null_Window</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_1488_7">W</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1267_13">Sub_Pad</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1501_14" HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1502_7" HREF="terminal_interface-curses__ads.htm#ref_1278_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1503_7" HREF="terminal_interface-curses__ads.htm#ref_1279_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1504_7" HREF="terminal_interface-curses__ads.htm#ref_1280_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1505_7" HREF="terminal_interface-curses__ads.htm#ref_1281_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1506_7" HREF="terminal_interface-curses__ads.htm#ref_1282_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1507_7" HREF="terminal_interface-curses__ads.htm#ref_1283_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1508_7" HREF="terminal_interface-curses__ads.htm#ref_1284_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1510_16">Prefresh</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1511_10">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1512_10">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1513_10">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1514_10">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1515_10">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1516_10">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1517_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1510_16">Prefresh</A>, "prefresh");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1510_16">Prefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1278_7">Pad</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1279_7">Source_Top_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1280_7">Source_Left_Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1281_7">Destination_Top_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1282_7">Destination_Left_Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1283_7">Destination_Bottom_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1284_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1277_14">Refresh</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1531_14" HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1532_7" HREF="terminal_interface-curses__ads.htm#ref_1290_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1533_7" HREF="terminal_interface-curses__ads.htm#ref_1291_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1534_7" HREF="terminal_interface-curses__ads.htm#ref_1292_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1535_7" HREF="terminal_interface-curses__ads.htm#ref_1293_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1536_7" HREF="terminal_interface-curses__ads.htm#ref_1294_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1537_7" HREF="terminal_interface-curses__ads.htm#ref_1295_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1538_7" HREF="terminal_interface-curses__ads.htm#ref_1296_7">Destination_Right_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1540_16">Pnoutrefresh</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1541_10">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1542_10">Source_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1543_10">Source_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1544_10">Destination_Top_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1545_10">Destination_Left_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1546_10">Destination_Bottom_Row</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1547_10">Destination_Right_Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pnoutrefresh</A>, "pnoutrefresh");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1540_16">Pnoutrefresh</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1290_7">Pad</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1291_7">Source_Top_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1292_7">Source_Left_Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1293_7">Destination_Top_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1294_7">Destination_Left_Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1295_7">Destination_Bottom_Row</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1296_7">Destination_Right_Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1289_14">Refresh_Without_Update</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1561_14" HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1562_7" HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1563_7" HREF="terminal_interface-curses__ads.htm#ref_1303_7">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1565_16">Pechochar</A></FONT> (<FONT COLOR=red><A NAME="ref_1565_27">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1565_41">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1565_16">Pechochar</A>, "pechochar");
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1565_16">Pechochar</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1302_7">Pad</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1303_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1574_14" HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1575_7" HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1576_7" HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A></FONT> : <b>in</b> Character)
+ <b>is</b>
+ <b>begin</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1301_14">Add_Character_To_Pad_And_Echo_It</A>
+ (<A HREF="terminal_interface-curses__ads.htm#ref_1307_7">Pad</A>,
+ <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>'(Ch => <A HREF="terminal_interface-curses__ads.htm#ref_1308_7">Ch</A>,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1306_14">Add_Character_To_Pad_And_Echo_It</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1315_14">Scroll</A><FONT COLOR=red><A NAME="1580_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1315_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1316_22">Amount</A> : <b>in</b> Integer := 1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1586_14" HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A></FONT> (<FONT COLOR=red><A NAME="ref_1586_22" HREF="terminal_interface-curses__ads.htm#ref_1316_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1587_22" HREF="terminal_interface-curses__ads.htm#ref_1317_22">Amount</A></FONT> : <b>in</b> Integer := 1)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1583_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="1583_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1583_37">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1583_16">Wscrl</A>, "wscrl");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1589_16">Wscrl</A></FONT> (<FONT COLOR=red><A NAME="ref_1589_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1589_37">N</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1589_16">Wscrl</A>, "wscrl");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1583_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#1315_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1316_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1589_16">Wscrl</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1316_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1317_22">Amount</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1315_14">Scroll</A><A HREF="terminal_interface-curses__ads.htm#1315_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1316_14">Scroll</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1327_14">Delete_Character</A><FONT COLOR=red><A NAME="1593_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1327_32">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1599_14" HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A></FONT> (<FONT COLOR=red><A NAME="ref_1599_32" HREF="terminal_interface-curses__ads.htm#ref_1328_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1595_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="1595_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1595_16">Wdelch</A>, "wdelch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1601_16">Wdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1601_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1601_16">Wdelch</A>, "wdelch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1595_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1327_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1601_16">Wdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1328_32">Win</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1327_14">Delete_Character</A><A HREF="terminal_interface-curses__ads.htm#1327_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1328_14">Delete_Character</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1332_14">Delete_Character</A><FONT COLOR=red><A NAME="1603_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1333_7">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1334_7">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1335_7">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1609_14" HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1610_7" HREF="terminal_interface-curses__ads.htm#ref_1334_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1611_7" HREF="terminal_interface-curses__ads.htm#ref_1335_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1612_7" HREF="terminal_interface-curses__ads.htm#ref_1336_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1608_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="1608_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1609_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1610_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1608_16">Mvwdelch</A>, "mvwdelch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1614_16">Mvwdelch</A></FONT> (<FONT COLOR=red><A NAME="ref_1614_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1615_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1616_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1614_16">Mvwdelch</A>, "mvwdelch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1608_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#1333_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1334_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1335_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1614_16">Mvwdelch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1334_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1335_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1336_7">Column</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1332_14">Delete_Character</A><A HREF="terminal_interface-curses__ads.htm#1332_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1333_14">Delete_Character</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1345_13">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1345_19">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>)
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1624_13" HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1624_19" HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>)
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1621_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="1621_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1621_16">Winch</A>, "winch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1627_16">Winch</A></FONT> (<FONT COLOR=red><A NAME="ref_1627_23">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1627_16">Winch</A>, "winch");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1621_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#1345_19">Win</A>));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1345_13">Peek</A><A HREF="terminal_interface-curses__ads.htm#1345_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1627_16">Winch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1346_19">Win</A>));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1346_13">Peek</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1351_13">Peek</A>
- (<A HREF="terminal_interface-curses__ads.htm#1352_7">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1353_7">Line</A> : <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1354_7">Column</A> : <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1633_13" HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1634_7" HREF="terminal_interface-curses__ads.htm#ref_1353_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1635_7" HREF="terminal_interface-curses__ads.htm#ref_1354_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1636_7" HREF="terminal_interface-curses__ads.htm#ref_1355_7">Column</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>) <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1632_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="1632_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1633_25">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1634_25">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1632_16">Mvwinch</A>, "mvwinch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1638_16">Mvwinch</A></FONT> (<FONT COLOR=red><A NAME="ref_1638_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1639_25">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1640_25">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1638_16">Mvwinch</A>, "mvwinch");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1632_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#1352_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1353_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1354_7">Column</A>)));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1351_13">Peek</A><A HREF="terminal_interface-curses__ads.htm#1351_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1638_16">Mvwinch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1353_7">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1354_7">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1355_7">Column</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1352_13">Peek</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1364_14">Insert</A><FONT COLOR=red><A NAME="1640_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1364_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1365_22">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1646_14" HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1646_22" HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1647_22" HREF="terminal_interface-curses__ads.htm#ref_1366_22">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1643_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="1643_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>; <FONT COLOR=red><A NAME="1643_38">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1643_16">Winsch</A>, "winsch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1649_16">Winsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1649_24">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>; <FONT COLOR=red><A NAME="ref_1649_38">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1649_16">Winsch</A>, "winsch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1643_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#1364_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1365_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1649_16">Winsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1365_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1366_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1364_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1364_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1365_14">Insert</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1370_14">Insert</A><FONT COLOR=red><A NAME="1651_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1370_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1371_22">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1372_22">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1373_22">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1657_14" HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1658_7" HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1659_7" HREF="terminal_interface-curses__ads.htm#ref_1372_22">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1660_7" HREF="terminal_interface-curses__ads.htm#ref_1373_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1661_7" HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1657_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="1657_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1658_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1659_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1660_26">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1657_16">Mvwinsch</A>, "mvwinsch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1663_16">Mvwinsch</A></FONT> (<FONT COLOR=red><A NAME="ref_1663_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1664_26">Lin</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1665_26">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1666_26">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1663_16">Mvwinsch</A>, "mvwinsch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1657_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#1370_22">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1371_22">Line</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1372_22">Column</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1373_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1663_16">Mvwinsch</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1371_22">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1372_22">Line</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1373_22">Column</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1374_22">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1370_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1370_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1371_14">Insert</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1382_14">Insert</A><FONT COLOR=red><A NAME="1671_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1382_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1383_22">Str</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1384_22">Len</A> : <b>in</b> Integer := -1)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1675_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="1675_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1676_26">Str</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="1677_26">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1675_16">Winsnstr</A>, "winsnstr");
-
- <FONT COLOR=red><A NAME="1680_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1383_22">Str</A>'Length);
- <FONT COLOR=red><A NAME="1681_7">Length</A></FONT> : size_t;
- <b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1383_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1680_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1681_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1675_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1382_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1680_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1384_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1382_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1382_14">;</A>
-
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1391_14">Insert</A><FONT COLOR=red><A NAME="1689_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1391_22">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1392_22">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1393_22">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1394_22">Str</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1395_22">Len</A> : <b>in</b> Integer := -1)
- <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1696_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="1696_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1697_28">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1698_28">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1699_28">Str</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="1700_28">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1696_16">Mvwinsnstr</A>, "mvwinsnstr");
-
- <FONT COLOR=red><A NAME="1703_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1394_22">Str</A>'Length);
- <FONT COLOR=red><A NAME="1704_7">Length</A></FONT> : size_t;
- <b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1394_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1703_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1704_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1696_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1391_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1392_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1393_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#1703_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1395_22">Len</A>))
- = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1391_14">Insert</A><A HREF="terminal_interface-curses__ads.htm#1391_14">;</A>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1677_14" HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A></FONT> (<FONT COLOR=red><A NAME="ref_1677_22" HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1678_22" HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_1679_22" HREF="terminal_interface-curses__ads.htm#ref_1385_22">Len</A></FONT> : <b>in</b> Integer := -1)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1681_16">Winsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1681_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1682_26">Str</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_1683_26">Len</A></FONT> : Integer := -1) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1681_16">Winsnstr</A>, "winsnstr");
+
+ <FONT COLOR=red><A NAME="ref_1686_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_1687_7">Length</A></FONT> : size_t;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1384_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1687_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1681_16">Winsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1383_22">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1686_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1385_22">Len</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1383_14">Insert</A>;
+
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1695_14" HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1696_7" HREF="terminal_interface-curses__ads.htm#ref_1392_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1697_7" HREF="terminal_interface-curses__ads.htm#ref_1393_22">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1698_7" HREF="terminal_interface-curses__ads.htm#ref_1394_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1699_7" HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_1700_7" HREF="terminal_interface-curses__ads.htm#ref_1396_22">Len</A></FONT> : <b>in</b> Integer := -1)
+ <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1702_16">Mvwinsnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1702_28">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1703_28">Line</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1704_28">Column</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1705_28">Str</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_1706_28">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1702_16">Mvwinsnstr</A>, "mvwinsnstr");
+
+ <FONT COLOR=red><A NAME="ref_1709_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_1710_7">Length</A></FONT> : size_t;
+ <b>begin</b>
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1395_22">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1709_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1710_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1702_16">Mvwinsnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1392_22">Win</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1393_22">Line</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1394_22">Column</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1709_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1396_22">Len</A>))
+ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1392_14">Insert</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1407_14">Peek</A><FONT COLOR=red><A NAME="1713_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1407_20">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A> : <b>out</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1409_20">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1719_14" HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A></FONT> (<FONT COLOR=red><A NAME="ref_1719_20" HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1720_20" HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A></FONT> : <b>out</b> String;
+ <FONT COLOR=red><A NAME="ref_1721_20" HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1717_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="1717_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1718_25">Str</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="1719_25">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1717_16">Winnstr</A>, "winnstr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1723_16">Winnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1723_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1724_25">Str</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_1725_25">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1723_16">Winnstr</A>, "winnstr");
- <FONT COLOR=red><A NAME="1722_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#1409_20">Len</A>;
- <FONT COLOR=red><A NAME="1723_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length);
- <FONT COLOR=red><A NAME="1724_7">Cnt</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_1728_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1410_20">Len</A>;
+ <FONT COLOR=red><A NAME="ref_1729_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_1730_7">Cnt</A></FONT> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1722_7">N</A> < 0 <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#1722_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">N</A> < 0 <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1722_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1728_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#1723_7">Txt</A> (0) := <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char'First;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1717_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1407_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1723_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1722_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char'First;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1723_16">Winnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1408_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1728_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- To_Ada (<A HREF="terminal_interface-curses__adb.htm#1723_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1724_7">Cnt</A>, True);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1724_7">Cnt</A> < <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1724_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1408_20">Str</A>'Last) := (<b>others</b> => ' ');
+ To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1729_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1730_7">Cnt</A>, True);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1730_7">Cnt</A> < <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Length <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1730_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1409_20">Str</A>'Last) := (<b>others</b> => ' ');
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1407_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1407_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1416_14">Peek</A><FONT COLOR=red><A NAME="1742_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1416_20">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1417_20">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1418_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1419_20">Str</A> : <b>out</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1420_20">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1748_14" HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1749_7" HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1750_7" HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1751_7" HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1752_7" HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A></FONT> : <b>out</b> String;
+ <FONT COLOR=red><A NAME="ref_1753_7" HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1416_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1417_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1418_20">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#1407_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1416_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1419_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1420_20">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1416_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1416_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1418_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1419_20">Column</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1408_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1417_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1420_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1421_20">Len</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1417_14">Peek</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1431_14">Peek</A><FONT COLOR=red><A NAME="1754_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1431_20">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
- <A HREF="terminal_interface-curses__ads.htm#1433_20">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1760_14" HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1761_7" HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1762_7" HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+ <FONT COLOR=red><A NAME="ref_1763_7" HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1759_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="1759_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1760_27">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A>; <FONT COLOR=green><EM>-- out</EM></FONT>
- <FONT COLOR=red><A NAME="1761_27">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1759_16">Winchnstr</A>, "winchnstr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1765_16">Winchnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1765_27">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1766_27">Str</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A>; <FONT COLOR=green><EM>-- out</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1767_27">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1765_16">Winchnstr</A>, "winchnstr");
- <FONT COLOR=red><A NAME="1764_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#1433_20">Len</A>;
- <FONT COLOR=red><A NAME="1765_7">Txt</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#58_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length) := (0 => <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>);
- <FONT COLOR=red><A NAME="1766_7">Cnt</A></FONT> : Natural := 0;
+ <FONT COLOR=red><A NAME="ref_1770_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1434_20">Len</A>;
+ <FONT COLOR=red><A NAME="ref_1771_7">Txt</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__adb.htm#ref_59_9">chtype_array</A> (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length)
+ := (0 => <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>);
+ <FONT COLOR=red><A NAME="ref_1773_7">Cnt</A></FONT> : Natural := 0;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1764_7">N</A> < 0 <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#1764_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">N</A> < 0 <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1764_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1770_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1759_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1431_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1765_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1764_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1765_16">Winchnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1432_20">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1771_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1770_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>for</b> <FONT COLOR=red><A NAME="1777_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'<b>Range</b> <b>loop</b>
- <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#1765_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#1777_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#1765_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A>));
- <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A> + 1;
+ <b>for</b> <FONT COLOR=red><A NAME="ref_1784_11">To</A></FONT> <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'<b>Range</b> <b>loop</b>
+ <b>exit</b> <b>when</b> <A HREF="terminal_interface-curses__adb.htm#ref_1771_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A>)) = <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1784_11">To</A>) := <A HREF="terminal_interface-curses__adb.htm#ref_1771_7">Txt</A> (size_t (<A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A>));
+ <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A> + 1;
<b>end</b> <b>loop</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A> < <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1766_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1432_20">Str</A>'Last) :=
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A> < <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Length <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1773_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1433_20">Str</A>'Last) :=
(<b>others</b> => (Ch => ' ',
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>));
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>));
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1431_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1431_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1440_14">Peek</A><FONT COLOR=red><A NAME="1790_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1440_20">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1441_20">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1442_20">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1443_20">Str</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Attributed_String</A>;
- <A HREF="terminal_interface-curses__ads.htm#1444_20">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1797_14" HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1798_7" HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1799_7" HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1800_7" HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1801_7" HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Attributed_String</A>;
+ <FONT COLOR=red><A NAME="ref_1802_7" HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1440_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1441_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1442_20">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#1431_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#1440_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1443_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1444_20">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1440_14">Peek</A><A HREF="terminal_interface-curses__ads.htm#1440_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1442_20">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1443_20">Column</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1432_14">Peek</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1441_20">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1444_20">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1445_20">Len</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1441_14">Peek</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1456_14">Get</A><FONT COLOR=red><A NAME="1802_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1456_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A> : <b>out</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1458_19">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1809_14" HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A></FONT> (<FONT COLOR=red><A NAME="ref_1809_19" HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1810_19" HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A></FONT> : <b>out</b> String;
+ <FONT COLOR=red><A NAME="ref_1811_19" HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1806_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="1806_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1807_26">Str</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="1808_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1806_16">Wgetnstr</A>, "wgetnstr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1813_16">Wgetnstr</A></FONT> (<FONT COLOR=red><A NAME="ref_1813_26">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1814_26">Str</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_1815_26">Len</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1813_16">Wgetnstr</A>, "wgetnstr");
- <FONT COLOR=red><A NAME="1811_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#1458_19">Len</A>;
- <FONT COLOR=red><A NAME="1812_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length);
- <FONT COLOR=red><A NAME="1813_7">Cnt</A></FONT> : Natural;
+ <FONT COLOR=red><A NAME="ref_1818_7">N</A></FONT> : Integer := <A HREF="terminal_interface-curses__ads.htm#ref_1459_19">Len</A>;
+ <FONT COLOR=red><A NAME="ref_1819_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length);
+ <FONT COLOR=red><A NAME="ref_1820_7">Cnt</A></FONT> : Natural;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1811_7">N</A> < 0 <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#1811_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">N</A> < 0 <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">N</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1811_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1818_7">N</A> > <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#1812_7">Txt</A> (0) := <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.char'First;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1806_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#1456_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#1812_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#1811_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Txt</A> (0) := <A HREF="interfac__ads.htm#ref_23_9">Interfaces</A>.C.char'First;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1813_16">Wgetnstr</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1457_19">Win</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1818_7">N</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- To_Ada (<A HREF="terminal_interface-curses__adb.htm#1812_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#1813_7">Cnt</A>, True);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1813_7">Cnt</A> < <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Length <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#1813_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#1457_19">Str</A>'Last) := (<b>others</b> => ' ');
+ To_Ada (<A HREF="terminal_interface-curses__adb.htm#ref_1819_7">Txt</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1820_7">Cnt</A>, True);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1820_7">Cnt</A> < <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Length <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A> ((<A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'First + <A HREF="terminal_interface-curses__adb.htm#ref_1820_7">Cnt</A>) .. <A HREF="terminal_interface-curses__ads.htm#ref_1458_19">Str</A>'Last) := (<b>others</b> => ' ');
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1456_14">Get</A><A HREF="terminal_interface-curses__ads.htm#1456_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1467_14">Get</A><FONT COLOR=red><A NAME="1831_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1467_19">Win</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1468_19">Line</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1469_19">Column</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1470_19">Str</A> : <b>out</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1471_19">Len</A> : <b>in</b> Integer := -1)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1838_14" HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1839_7" HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_1840_7" HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1841_7" HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1842_7" HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A></FONT> : <b>out</b> String;
+ <FONT COLOR=red><A NAME="ref_1843_7" HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A></FONT> : <b>in</b> Integer := -1)
<b>is</b>
<b>begin</b>
- <A HREF="terminal_interface-curses__ads.htm#504_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#1467_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1468_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#1469_19">Column</A>);
- <A HREF="terminal_interface-curses__ads.htm#1456_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#1467_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#1470_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#1471_19">Len</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1467_14">Get</A><A HREF="terminal_interface-curses__ads.htm#1467_14">;</A>
+ <A HREF="terminal_interface-curses__ads.htm#ref_505_14">Move_Cursor</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1469_19">Line</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1470_19">Column</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1457_14">Get</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1468_19">Win</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1471_19">Str</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1472_19">Len</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1468_14">Get</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1492_14">Init_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1843_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1493_7">Format</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1484_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#1484_35">Three_Two_Three</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1850_14" HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1851_7" HREF="terminal_interface-curses__ads.htm#ref_1494_7">Format</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1485_35">Three_Two_Three</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1846_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="1846_26">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1846_16">Slk_Init</A>, "slk_init");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1853_16">Slk_Init</A></FONT> (<FONT COLOR=red><A NAME="ref_1853_26">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1853_16">Slk_Init</A>, "slk_init");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1846_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#1484_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1493_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1853_16">Slk_Init</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1485_9">Soft_Label_Key_Format</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1494_7">Format</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1492_14">Init_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1492_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1493_14">Init_Soft_Label_Keys</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1498_14">Set_Soft_Label_Key</A><FONT COLOR=red><A NAME="1854_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1498_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1488_9">Label_Number</A>;
- <A HREF="terminal_interface-curses__ads.htm#1499_34">Text</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1500_34">Fmt</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1489_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#1489_33">Left</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1861_14" HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1861_34" HREF="terminal_interface-curses__ads.htm#ref_1499_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
+ <FONT COLOR=red><A NAME="ref_1862_34" HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_1863_34" HREF="terminal_interface-curses__ads.htm#ref_1501_34">Fmt</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">Label_Justification</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1490_33">Left</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1858_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="1858_25">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1859_25">Txt</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="1860_25">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1858_16">Slk_Set</A>, "slk_set");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1865_16">Slk_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_1865_25">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1866_25">Txt</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_1867_25">Fmt</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1865_16">Slk_Set</A>, "slk_set");
- <FONT COLOR=red><A NAME="1863_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1499_34">Text</A>'Length);
- <FONT COLOR=red><A NAME="1864_7">Len</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_1870_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>'Length);
+ <FONT COLOR=red><A NAME="ref_1871_7">Len</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1499_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#1863_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#1864_7">Len</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1858_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1498_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#1863_7">Txt</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1489_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1500_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1500_34">Text</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1870_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_1871_7">Len</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1865_16">Slk_Set</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1499_34">Label</A>), <A HREF="terminal_interface-curses__adb.htm#ref_1870_7">Txt</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1490_9">Label_Justification</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1501_34">Fmt</A>))) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1498_14">Set_Soft_Label_Key</A><A HREF="terminal_interface-curses__ads.htm#1498_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1499_14">Set_Soft_Label_Key</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1505_14">Refresh_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1873_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1880_14" HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1875_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1875_16">Slk_Refresh</A>, "slk_refresh");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1882_16">Slk_Refresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1882_16">Slk_Refresh</A>, "slk_refresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1875_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1882_16">Slk_Refresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1505_14">Refresh_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1505_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1506_14">Refresh_Soft_Label_Keys</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1510_14">Refresh_Soft_Label_Keys_Without_Update</A><FONT COLOR=red><A NAME="1883_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1890_14" HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1885_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1885_16">Slk_Noutrefresh</A>, "slk_noutrefresh");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1892_16">Slk_Noutrefresh</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1892_16">Slk_Noutrefresh</A>, "slk_noutrefresh");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1885_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1892_16">Slk_Noutrefresh</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1510_14">Refresh_Soft_Label_Keys_Without_Update</A><A HREF="terminal_interface-curses__ads.htm#1510_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1511_14">Refresh_Soft_Label_Keys_Without_Update</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1515_14">Get_Soft_Label_Key</A><FONT COLOR=red><A NAME="1893_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1515_34">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1488_9">Label_Number</A>;
- <A HREF="terminal_interface-curses__ads.htm#1516_34">Text</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1900_14" HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1900_34" HREF="terminal_interface-curses__ads.htm#ref_1516_34">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>;
+ <FONT COLOR=red><A NAME="ref_1901_34" HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1896_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1896_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1896_16">Slk_Label</A>, "slk_label");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1903_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1903_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1903_16">Slk_Label</A>, "slk_label");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#1896_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1515_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#1516_34">Text</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1515_14">Get_Soft_Label_Key</A><A HREF="terminal_interface-curses__ads.htm#1515_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1903_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1516_34">Label</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1517_34">Text</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1516_14">Get_Soft_Label_Key</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1520_13">Get_Soft_Label_Key</A> (<A HREF="terminal_interface-curses__ads.htm#1520_33">Label</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1488_9">Label_Number</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1909_13" HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_1909_33" HREF="terminal_interface-curses__ads.htm#ref_1521_33">Label</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1489_9">Label_Number</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1904_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="1904_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1904_16">Slk_Label</A>, "slk_label");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1911_16">Slk_Label</A></FONT> (<FONT COLOR=red><A NAME="ref_1911_27">Label</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1911_16">Slk_Label</A>, "slk_label");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#1904_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1520_33">Label</A>)));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1520_13">Get_Soft_Label_Key</A><A HREF="terminal_interface-curses__ads.htm#1520_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1911_16">Slk_Label</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1521_33">Label</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1521_13">Get_Soft_Label_Key</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1526_14">Clear_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1910_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1917_14" HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1912_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1912_16">Slk_Clear</A>, "slk_clear");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1919_16">Slk_Clear</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1919_16">Slk_Clear</A>, "slk_clear");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1912_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1919_16">Slk_Clear</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1526_14">Clear_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1526_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1527_14">Clear_Soft_Label_Keys</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1531_14">Restore_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1920_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1927_14" HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1922_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1922_16">Slk_Restore</A>, "slk_restore");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1929_16">Slk_Restore</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1929_16">Slk_Restore</A>, "slk_restore");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1922_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1929_16">Slk_Restore</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1531_14">Restore_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1531_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1532_14">Restore_Soft_Label_Keys</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1536_14">Touch_Soft_Label_Keys</A><FONT COLOR=red><A NAME="1930_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1937_14" HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1932_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1932_16">Slk_Touch</A>, "slk_touch");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1939_16">Slk_Touch</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1939_16">Slk_Touch</A>, "slk_touch");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1932_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1939_16">Slk_Touch</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1536_14">Touch_Soft_Label_Keys</A><A HREF="terminal_interface-curses__ads.htm#1536_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1537_14">Touch_Soft_Label_Keys</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1541_14">Switch_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1940_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1542_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>;
- <A HREF="terminal_interface-curses__ads.htm#1543_7">On</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1947_14" HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1948_7" HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>;
+ <FONT COLOR=red><A NAME="ref_1949_7" HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1944_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="1944_28">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1944_16">Slk_Attron</A>, "slk_attron");
- <b>function</b> <FONT COLOR=red><A NAME="1946_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="1946_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1946_16">Slk_Attroff</A>, "slk_attroff");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1951_16">Slk_Attron</A></FONT> (<FONT COLOR=red><A NAME="ref_1951_28">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1951_16">Slk_Attron</A>, "slk_attron");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1953_16">Slk_Attroff</A></FONT> (<FONT COLOR=red><A NAME="ref_1953_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1953_16">Slk_Attroff</A>, "slk_attroff");
- <FONT COLOR=red><A NAME="1949_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="1950_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#1542_7">Attr</A>,
- Color => <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First);
+ <FONT COLOR=red><A NAME="ref_1956_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_1957_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_1543_7">Attr</A>,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1543_7">On</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#1949_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1944_16">Slk_Attron</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1950_7">Ch</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1544_7">On</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1951_16">Slk_Attron</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1957_7">Ch</A>));
<b>else</b>
- <A HREF="terminal_interface-curses__adb.htm#1949_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#1946_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1950_7">Ch</A>));
+ <A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1953_16">Slk_Attroff</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1957_7">Ch</A>));
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1949_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1956_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1541_14">Switch_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1541_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1542_14">Switch_Soft_Label_Key_Attributes</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1549_14">Set_Soft_Label_Key_Attributes</A><FONT COLOR=red><A NAME="1964_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1550_7">Attr</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#349_4">Normal_Video</A>;
- <A HREF="terminal_interface-curses__ads.htm#1551_7">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>'First)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_1971_14" HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_1972_7" HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A> := <A HREF="terminal_interface-curses__ads.htm#ref_350_4">Normal_Video</A>;
+ <FONT COLOR=red><A NAME="ref_1973_7" HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A> := <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>'First)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1968_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="1968_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1968_16">Slk_Attrset</A>, "slk_attrset");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1975_16">Slk_Attrset</A></FONT> (<FONT COLOR=red><A NAME="ref_1975_29">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Attrset</A>, "slk_attrset");
- <FONT COLOR=red><A NAME="1971_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := (Ch => Character'First,
- Attr => <A HREF="terminal_interface-curses__ads.htm#1550_7">Attr</A>,
- Color => <A HREF="terminal_interface-curses__ads.htm#1551_7">Color</A>);
+ <FONT COLOR=red><A NAME="ref_1978_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := (Ch => Character'First,
+ Attr => <A HREF="terminal_interface-curses__ads.htm#ref_1551_7">Attr</A>,
+ Color => <A HREF="terminal_interface-curses__ads.htm#ref_1552_7">Color</A>);
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#1968_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#1971_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_1975_16">Slk_Attrset</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1978_7">Ch</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1549_14">Set_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1549_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1550_14">Set_Soft_Label_Key_Attributes</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1556_13">Get_Soft_Label_Key_Attributes</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1987_13" HREF="terminal_interface-curses__ads.htm#ref_1557_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1982_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1982_16">Slk_Attr</A>, "slk_attr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1989_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1989_16">Slk_Attr</A>, "slk_attr");
- <FONT COLOR=red><A NAME="1985_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#1982_16">Slk_Attr</A>;
+ <FONT COLOR=red><A NAME="ref_1992_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1989_16">Slk_Attr</A>;
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1985_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1556_13">Get_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1556_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_1992_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1557_13">Get_Soft_Label_Key_Attributes</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1560_13">Get_Soft_Label_Key_Attributes</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1997_13" HREF="terminal_interface-curses__ads.htm#ref_1561_13">Get_Soft_Label_Key_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="1992_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#1992_16">Slk_Attr</A>, "slk_attr");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_1999_16">Slk_Attr</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_1999_16">Slk_Attr</A>, "slk_attr");
- <FONT COLOR=red><A NAME="1995_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#1992_16">Slk_Attr</A>;
+ <FONT COLOR=red><A NAME="ref_2002_7">Attr</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A> := <A HREF="terminal_interface-curses__adb.htm#ref_1999_16">Slk_Attr</A>;
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#1995_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#354_10">Color</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1560_13">Get_Soft_Label_Key_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1560_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2002_7">Attr</A>).<A HREF="terminal_interface-curses__ads.htm#ref_355_10">Color</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1561_13">Get_Soft_Label_Key_Attributes</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1565_14">Set_Soft_Label_Key_Color</A><FONT COLOR=red><A NAME="2000_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1565_40">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2007_14" HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2007_40" HREF="terminal_interface-curses__ads.htm#ref_1566_40">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2002_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="2002_27">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2002_16">Slk_Color</A>, "slk_color");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2009_16">Slk_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2009_27">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2009_16">Slk_Color</A>, "slk_color");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2002_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1565_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2009_16">Slk_Color</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1566_40">Pair</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1565_14">Set_Soft_Label_Key_Color</A><A HREF="terminal_interface-curses__ads.htm#1565_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1566_14">Set_Soft_Label_Key_Color</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1579_14">Enable_Key</A><FONT COLOR=red><A NAME="2011_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1579_26">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>;
- <A HREF="terminal_interface-curses__ads.htm#1580_26">Enable</A> : <b>in</b> Boolean := True)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2018_14" HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2018_26" HREF="terminal_interface-curses__ads.htm#ref_1580_26">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>;
+ <FONT COLOR=red><A NAME="ref_2019_26" HREF="terminal_interface-curses__ads.htm#ref_1581_26">Enable</A></FONT> : <b>in</b> Boolean := True)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2014_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="2014_23">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="2015_23">On_Off</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2014_16">Keyok</A>, "keyok");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2021_16">Keyok</A></FONT> (<FONT COLOR=red><A NAME="ref_2021_23">Keycode</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_2022_23">On_Off</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2021_16">Keyok</A>, "keyok");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2014_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1579_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1580_26">Enable</A>)))
- = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2021_16">Keyok</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1580_26">Key</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1581_26">Enable</A>)))
+ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1579_14">Enable_Key</A><A HREF="terminal_interface-curses__ads.htm#1579_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1580_14">Enable_Key</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1589_14">Define_Key</A><FONT COLOR=red><A NAME="2024_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1589_26">Definition</A> : <b>in</b> String;
- <A HREF="terminal_interface-curses__ads.htm#1590_26">Key</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2031_14" HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A></FONT> (<FONT COLOR=red><A NAME="ref_2031_26" HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A></FONT> : <b>in</b> String;
+ <FONT COLOR=red><A NAME="ref_2032_26" HREF="terminal_interface-curses__ads.htm#ref_1591_26">Key</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2027_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="2027_24">Def</A></FONT> : char_array;
- <FONT COLOR=red><A NAME="2028_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2027_16">Defkey</A>, "define_key");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2034_16">Defkey</A></FONT> (<FONT COLOR=red><A NAME="ref_2034_24">Def</A></FONT> : char_array;
+ <FONT COLOR=red><A NAME="ref_2035_24">Key</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2034_16">Defkey</A>, "define_key");
- <FONT COLOR=red><A NAME="2031_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1589_26">Definition</A>'Length);
- <FONT COLOR=red><A NAME="2032_7">Length</A></FONT> : size_t;
+ <FONT COLOR=red><A NAME="ref_2038_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>'Length);
+ <FONT COLOR=red><A NAME="ref_2039_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1589_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#2031_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2032_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2027_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#2031_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1590_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1590_26">Definition</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2038_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2039_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2034_16">Defkey</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2038_7">Txt</A>, <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1591_26">Key</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1589_14">Define_Key</A><A HREF="terminal_interface-curses__ads.htm#1589_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1590_14">Define_Key</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1615_14">Un_Control</A><FONT COLOR=red><A NAME="2040_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1615_26">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>;
- <A HREF="terminal_interface-curses__ads.htm#1616_26">Str</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2047_14" HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2047_26" HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>;
+ <FONT COLOR=red><A NAME="ref_2048_26" HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2043_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2043_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2043_16">Unctrl</A>, "unctrl");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2050_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2050_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2050_16">Unctrl</A>, "unctrl");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2043_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1615_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#1616_26">Str</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1615_14">Un_Control</A><A HREF="terminal_interface-curses__ads.htm#1615_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2050_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1616_26">Ch</A>)), <A HREF="terminal_interface-curses__ads.htm#ref_1617_26">Str</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1616_14">Un_Control</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1620_13">Un_Control</A> (<A HREF="terminal_interface-curses__ads.htm#1620_25">Ch</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A>) <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2056_13" HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A></FONT> (<FONT COLOR=red><A NAME="ref_2056_25" HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A>) <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2051_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="2051_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>) <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2051_16">Unctrl</A>, "unctrl");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2058_16">Unctrl</A></FONT> (<FONT COLOR=red><A NAME="ref_2058_24">Ch</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>) <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2058_16">Unctrl</A>, "unctrl");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2051_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#1620_25">Ch</A>)));
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1620_13">Un_Control</A><A HREF="terminal_interface-curses__ads.htm#1620_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2058_16">Unctrl</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_104_13">AttrChar_To_Chtype</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1621_25">Ch</A>)));
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1621_13">Un_Control</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1626_14">Delay_Output</A><FONT COLOR=red><A NAME="2057_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1626_28">Msecs</A> : <b>in</b> Natural)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2064_14" HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A></FONT> (<FONT COLOR=red><A NAME="ref_2064_28" HREF="terminal_interface-curses__ads.htm#ref_1627_28">Msecs</A></FONT> : <b>in</b> Natural)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2059_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="2059_29">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2059_16">Delayoutput</A>, "delay_output");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2066_16">Delayoutput</A></FONT> (<FONT COLOR=red><A NAME="ref_2066_29">Msecs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2066_16">Delayoutput</A>, "delay_output");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2059_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1626_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2066_16">Delayoutput</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1627_28">Msecs</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1626_14">Delay_Output</A><A HREF="terminal_interface-curses__ads.htm#1626_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1627_14">Delay_Output</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1631_14">Flush_Input</A><FONT COLOR=red><A NAME="2067_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2074_14" HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2069_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2069_16">Flushinp</A>, "flushinp");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2076_16">Flushinp</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2076_16">Flushinp</A>, "flushinp");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2069_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b> <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2076_16">Flushinp</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b> <FONT COLOR=green><EM>-- docu says that never happens, but...</EM></FONT>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1631_14">Flush_Input</A><A HREF="terminal_interface-curses__ads.htm#1631_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1632_14">Flush_Input</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1640_13">Baudrate</A> <b>return</b> Natural
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2084_13" HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A></FONT> <b>return</b> Natural
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2079_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2079_16">Baud</A>, "baudrate");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2086_16">Baud</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2086_16">Baud</A>, "baudrate");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2079_16">Baud</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1640_13">Baudrate</A><A HREF="terminal_interface-curses__ads.htm#1640_13">;</A>
+ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2086_16">Baud</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1641_13">Baudrate</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1645_13">Erase_Character</A> <b>return</b> Character
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2092_13" HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A></FONT> <b>return</b> Character
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2087_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2087_16">Erasechar</A>, "erasechar");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2094_16">Erasechar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2094_16">Erasechar</A>, "erasechar");
<b>begin</b>
- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2087_16">Erasechar</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1645_13">Erase_Character</A><A HREF="terminal_interface-curses__ads.htm#1645_13">;</A>
+ <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2094_16">Erasechar</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1646_13">Erase_Character</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1650_13">Kill_Character</A> <b>return</b> Character
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2100_13" HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A></FONT> <b>return</b> Character
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2095_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2095_16">Killchar</A>, "killchar");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2102_16">Killchar</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2102_16">Killchar</A>, "killchar");
<b>begin</b>
- <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#2095_16">Killchar</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1650_13">Kill_Character</A><A HREF="terminal_interface-curses__ads.htm#1650_13">;</A>
+ <b>return</b> Character'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2102_16">Killchar</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1651_13">Kill_Character</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1655_13">Has_Insert_Character</A> <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2108_13" HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A></FONT> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2103_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2103_16">Has_Ic</A>, "has_ic");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2110_16">Has_Ic</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Has_Ic</A>, "has_ic");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2103_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2110_16">Has_Ic</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1655_13">Has_Insert_Character</A><A HREF="terminal_interface-curses__ads.htm#1655_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1656_13">Has_Insert_Character</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1660_13">Has_Insert_Line</A> <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2120_13" HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A></FONT> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2115_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2115_16">Has_Il</A>, "has_il");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2122_16">Has_Il</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2122_16">Has_Il</A>, "has_il");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2115_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2122_16">Has_Il</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1660_13">Has_Insert_Line</A><A HREF="terminal_interface-curses__ads.htm#1660_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1661_13">Has_Insert_Line</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1665_13">Supported_Attributes</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Character_Attribute_Set</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2132_13" HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Character_Attribute_Set</A>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2127_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#63_12">C_Chtype</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2127_16">Termattrs</A>, "termattrs");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2134_16">Termattrs</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_63_12">C_Chtype</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termattrs</A>, "termattrs");
- <FONT COLOR=red><A NAME="2130_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#2127_16">Termattrs</A>);
+ <FONT COLOR=red><A NAME="ref_2137_7">Ch</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_101_13">Chtype_To_AttrChar</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2134_16">Termattrs</A>);
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2130_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#353_10">Attr</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1665_13">Supported_Attributes</A><A HREF="terminal_interface-curses__ads.htm#1665_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2137_7">Ch</A>.<A HREF="terminal_interface-curses__ads.htm#ref_354_10">Attr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1666_13">Supported_Attributes</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1670_14">Long_Name</A><FONT COLOR=red><A NAME="2135_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1670_25">Name</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2142_14" HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2142_25" HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2137_16">Longname</A></FONT> <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2137_16">Longname</A>, "longname");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2144_16">Longname</A></FONT> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Longname</A>, "longname");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2137_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#1670_25">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1670_14">Long_Name</A><A HREF="terminal_interface-curses__ads.htm#1670_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2144_16">Longname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1671_25">Name</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1671_14">Long_Name</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1674_13">Long_Name</A> <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2150_13" HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A></FONT> <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2145_16">Longname</A></FONT> <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2145_16">Longname</A>, "longname");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2152_16">Longname</A></FONT> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2152_16">Longname</A>, "longname");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2145_16">Longname</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1674_13">Long_Name</A><A HREF="terminal_interface-curses__ads.htm#1674_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2152_16">Longname</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1675_13">Long_Name</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1680_14">Terminal_Name</A><FONT COLOR=red><A NAME="2151_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1680_29">Name</A> : <b>out</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2158_14" HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A></FONT> (<FONT COLOR=red><A NAME="ref_2158_29" HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A></FONT> : <b>out</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2153_16">Termname</A></FONT> <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2153_16">Termname</A>, "termname");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2160_16">Termname</A></FONT> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2160_16">Termname</A>, "termname");
<b>begin</b>
- <A HREF="terminal_interface-curses-aux__ads.htm#116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2153_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#1680_29">Name</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1680_14">Terminal_Name</A><A HREF="terminal_interface-curses__ads.htm#1680_14">;</A>
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_116_14">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2160_16">Termname</A>, <A HREF="terminal_interface-curses__ads.htm#ref_1681_29">Name</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1681_14">Terminal_Name</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1684_13">Terminal_Name</A> <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2166_13" HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A></FONT> <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2161_16">Termname</A></FONT> <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2161_16">Termname</A>, "termname");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2168_16">Termname</A></FONT> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2168_16">Termname</A>, "termname");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2161_16">Termname</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1684_13">Terminal_Name</A><A HREF="terminal_interface-curses__ads.htm#1684_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2168_16">Termname</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1685_13">Terminal_Name</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1705_14">Init_Pair</A><FONT COLOR=red><A NAME="2167_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1705_25">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#299_12">Redefinable_Color_Pair</A>;
- <A HREF="terminal_interface-curses__ads.htm#1706_25">Fore</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
- <A HREF="terminal_interface-curses__ads.htm#1707_25">Back</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2174_14" HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A></FONT> (<FONT COLOR=red><A NAME="ref_2174_25" HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_301_12">Redefinable_Color_Pair</A>;
+ <FONT COLOR=red><A NAME="ref_2175_25" HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+ <FONT COLOR=red><A NAME="ref_2176_25" HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2171_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="2171_26">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="2172_26">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="2173_26">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2171_16">Initpair</A>, "init_pair");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2178_16">Initpair</A></FONT> (<FONT COLOR=red><A NAME="ref_2178_26">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2179_26">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2180_26">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2178_16">Initpair</A>, "init_pair");
<b>begin</b>
- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#1705_25">Pair</A>) >= <A HREF="terminal_interface-curses__ads.htm#423_13">Number_Of_Color_Pairs</A> <b>then</b>
+ <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A>) >= <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A> <b>then</b>
<b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#1706_25">Fore</A>) >= <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
- Integer (<A HREF="terminal_interface-curses__ads.htm#1707_25">Back</A>) >= <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
+ <b>if</b> Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A>) >= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>or</b> <b>else</b>
+ Integer (<A HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A>) >= <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A> <b>then</b> <b>raise</b> Constraint_Error;
<b>end</b> <b>if</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2171_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1705_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1706_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1707_25">Back</A>))
- = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2178_16">Initpair</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1706_25">Pair</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1707_25">Fore</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1708_25">Back</A>))
+ = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1705_14">Init_Pair</A><A HREF="terminal_interface-curses__ads.htm#1705_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1706_14">Init_Pair</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1712_14">Pair_Content</A><FONT COLOR=red><A NAME="2188_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1712_28">Pair</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Color_Pair</A>;
- <A HREF="terminal_interface-curses__ads.htm#1713_28">Fore</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
- <A HREF="terminal_interface-curses__ads.htm#1714_28">Back</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2195_14" HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2195_28" HREF="terminal_interface-curses__ads.htm#ref_1713_28">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Color_Pair</A>;
+ <FONT COLOR=red><A NAME="ref_2196_28" HREF="terminal_interface-curses__ads.htm#ref_1714_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+ <FONT COLOR=red><A NAME="ref_2197_28" HREF="terminal_interface-curses__ads.htm#ref_1715_28">Back</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="2192_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <b>function</b> <FONT COLOR=red><A NAME="2193_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="2193_29">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="2194_29">Fp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2192_12">C_Short_Access</A>;
- <FONT COLOR=red><A NAME="2195_29">Bp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2192_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2193_16">Paircontent</A>, "pair_content");
+ <b>type</b> <FONT COLOR=red><A NAME="ref_2199_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2200_16">Paircontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2200_29">Pair</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2201_29">Fp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2199_12">C_Short_Access</A>;
+ <FONT COLOR=red><A NAME="ref_2202_29">Bp</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2199_12">C_Short_Access</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2200_16">Paircontent</A>, "pair_content");
- <FONT COLOR=red><A NAME="2198_7">F</A></FONT>, <FONT COLOR=red><A NAME="2198_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2205_7">F</A></FONT>, <FONT COLOR=red><A NAME="ref_2205_10">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2193_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1712_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#2198_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2198_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2200_16">Paircontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1713_28">Pair</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2205_7">F</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2205_10">B</A>'<b>Access</b>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#1713_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2198_7">F</A>);
- <A HREF="terminal_interface-curses__ads.htm#1714_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#2198_10">B</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1714_28">Fore</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2205_7">F</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1715_28">Back</A> := <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2205_10">B</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1712_14">Pair_Content</A><A HREF="terminal_interface-curses__ads.htm#1712_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1713_14">Pair_Content</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1719_13">Has_Colors</A> <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2215_13" HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A></FONT> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2210_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2210_16">Hascolors</A>, "has_colors");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2217_16">Hascolors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2217_16">Hascolors</A>, "has_colors");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2210_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2217_16">Hascolors</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1719_13">Has_Colors</A><A HREF="terminal_interface-curses__ads.htm#1719_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1720_13">Has_Colors</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1724_14">Init_Color</A><FONT COLOR=red><A NAME="2220_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1724_26">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
- <A HREF="terminal_interface-curses__ads.htm#1725_26">Red</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
- <A HREF="terminal_interface-curses__ads.htm#1726_26">Green</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
- <A HREF="terminal_interface-curses__ads.htm#1727_26">Blue</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2227_14" HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A></FONT> (<FONT COLOR=red><A NAME="ref_2227_26" HREF="terminal_interface-curses__ads.htm#ref_1725_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+ <FONT COLOR=red><A NAME="ref_2228_26" HREF="terminal_interface-curses__ads.htm#ref_1726_26">Red</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+ <FONT COLOR=red><A NAME="ref_2229_26" HREF="terminal_interface-curses__ads.htm#ref_1727_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+ <FONT COLOR=red><A NAME="ref_2230_26" HREF="terminal_interface-curses__ads.htm#ref_1728_26">Blue</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2225_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="2225_27">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="2226_27">Red</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="2227_27">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
- <FONT COLOR=red><A NAME="2228_27">Blue</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2225_16">Initcolor</A>, "init_color");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2232_16">Initcolor</A></FONT> (<FONT COLOR=red><A NAME="ref_2232_27">Col</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2233_27">Red</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2234_27">Green</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2235_27">Blue</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2232_16">Initcolor</A>, "init_color");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2225_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1724_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1725_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1726_26">Green</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1727_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2232_16">Initcolor</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1725_26">Color</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1726_26">Red</A>), <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1727_26">Green</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1728_26">Blue</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1724_14">Init_Color</A><A HREF="terminal_interface-curses__ads.htm#1724_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1725_14">Init_Color</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1732_13">Can_Change_Color</A> <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2244_13" HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A></FONT> <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2239_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2239_16">Canchangecolor</A>, "can_change_color");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2246_16">Canchangecolor</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2246_16">Canchangecolor</A>, "can_change_color");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2239_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A> <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2246_16">Canchangecolor</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A> <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1732_13">Can_Change_Color</A><A HREF="terminal_interface-curses__ads.htm#1732_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1733_13">Can_Change_Color</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1737_14">Color_Content</A><FONT COLOR=red><A NAME="2249_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1737_29">Color</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
- <A HREF="terminal_interface-curses__ads.htm#1738_29">Red</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
- <A HREF="terminal_interface-curses__ads.htm#1739_29">Green</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
- <A HREF="terminal_interface-curses__ads.htm#1740_29">Blue</A> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2256_14" HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A></FONT> (<FONT COLOR=red><A NAME="ref_2256_29" HREF="terminal_interface-curses__ads.htm#ref_1738_29">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
+ <FONT COLOR=red><A NAME="ref_2257_29" HREF="terminal_interface-curses__ads.htm#ref_1739_29">Red</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+ <FONT COLOR=red><A NAME="ref_2258_29" HREF="terminal_interface-curses__ads.htm#ref_1740_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+ <FONT COLOR=red><A NAME="ref_2259_29" HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>)
<b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="2254_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
+ <b>type</b> <FONT COLOR=red><A NAME="ref_2261_12">C_Short_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
- <b>function</b> <FONT COLOR=red><A NAME="2256_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="2256_30">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>; <FONT COLOR=red><A NAME="2256_47">R</A></FONT>, <FONT COLOR=red><A NAME="2256_50">G</A></FONT>, <FONT COLOR=red><A NAME="2256_53">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2254_12">C_Short_Access</A>)
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2256_16">Colorcontent</A>, "color_content");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2263_16">Colorcontent</A></FONT> (<FONT COLOR=red><A NAME="ref_2263_30">Color</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>; <FONT COLOR=red><A NAME="ref_2263_47">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2263_50">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2263_53">B</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2261_12">C_Short_Access</A>)
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2263_16">Colorcontent</A>, "color_content");
- <FONT COLOR=red><A NAME="2260_7">R</A></FONT>, <FONT COLOR=red><A NAME="2260_10">G</A></FONT>, <FONT COLOR=red><A NAME="2260_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A>;
+ <FONT COLOR=red><A NAME="ref_2267_7">R</A></FONT>, <FONT COLOR=red><A NAME="ref_2267_10">G</A></FONT>, <FONT COLOR=red><A NAME="ref_2267_13">B</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2256_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#1737_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#2260_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2260_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2260_13">B</A>'<b>Access</b>) =
- <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2263_16">Colorcontent</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_56_12">C_Short</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1738_29">Color</A>), <A HREF="terminal_interface-curses__adb.htm#ref_2267_7">R</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2267_10">G</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2267_13">B</A>'<b>Access</b>) =
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#1738_29">Red</A> := <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2260_7">R</A>);
- <A HREF="terminal_interface-curses__ads.htm#1739_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2260_10">G</A>);
- <A HREF="terminal_interface-curses__ads.htm#1740_29">Blue</A> := <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#2260_13">B</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1739_29">Red</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2267_7">R</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1740_29">Green</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2267_10">G</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1741_29">Blue</A> := <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2267_13">B</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1737_14">Color_Content</A><A HREF="terminal_interface-curses__ads.htm#1737_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1738_14">Color_Content</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1752_14">Save_Curses_Mode</A><FONT COLOR=red><A NAME="2273_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1752_32">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1749_9">Curses_Mode</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2280_14" HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2280_32" HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2275_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2275_16">Def_Prog_Mode</A>, "def_prog_mode");
- <b>function</b> <FONT COLOR=red><A NAME="2277_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2277_16">Def_Shell_Mode</A>, "def_shell_mode");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2282_16">Def_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2282_16">Def_Prog_Mode</A>, "def_prog_mode");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2284_16">Def_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2284_16">Def_Shell_Mode</A>, "def_shell_mode");
- <FONT COLOR=red><A NAME="2280_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_2287_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1752_32">Mode</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_25">Curses</A> => <A HREF="terminal_interface-curses__adb.htm#2280_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2275_16">Def_Prog_Mode</A>;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_33">Shell</A> => <A HREF="terminal_interface-curses__adb.htm#2280_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2277_16">Def_Shell_Mode</A>;
+ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_32">Mode</A> <b>is</b>
+ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> => <A HREF="terminal_interface-curses__adb.htm#ref_2287_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2282_16">Def_Prog_Mode</A>;
+ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A> => <A HREF="terminal_interface-curses__adb.htm#ref_2287_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2284_16">Def_Shell_Mode</A>;
<b>end</b> <b>case</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2280_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2287_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1752_14">Save_Curses_Mode</A><A HREF="terminal_interface-curses__ads.htm#1752_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1753_14">Save_Curses_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1758_14">Reset_Curses_Mode</A><FONT COLOR=red><A NAME="2291_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1758_33">Mode</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1749_9">Curses_Mode</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2298_14" HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A></FONT> (<FONT COLOR=red><A NAME="ref_2298_33" HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_9">Curses_Mode</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2293_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2293_16">Reset_Prog_Mode</A>, "reset_prog_mode");
- <b>function</b> <FONT COLOR=red><A NAME="2295_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2295_16">Reset_Shell_Mode</A>, "reset_shell_mode");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2300_16">Reset_Prog_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2300_16">Reset_Prog_Mode</A>, "reset_prog_mode");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2302_16">Reset_Shell_Mode</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2302_16">Reset_Shell_Mode</A>, "reset_shell_mode");
- <FONT COLOR=red><A NAME="2298_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_2305_7">Err</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <b>case</b> <A HREF="terminal_interface-curses__ads.htm#1758_33">Mode</A> <b>is</b>
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_25">Curses</A> => <A HREF="terminal_interface-curses__adb.htm#2298_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2293_16">Reset_Prog_Mode</A>;
- <b>when</b> <A HREF="terminal_interface-curses__ads.htm#1749_33">Shell</A> => <A HREF="terminal_interface-curses__adb.htm#2298_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#2295_16">Reset_Shell_Mode</A>;
+ <b>case</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_33">Mode</A> <b>is</b>
+ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_25">Curses</A> => <A HREF="terminal_interface-curses__adb.htm#ref_2305_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2300_16">Reset_Prog_Mode</A>;
+ <b>when</b> <A HREF="terminal_interface-curses__ads.htm#ref_1750_33">Shell</A> => <A HREF="terminal_interface-curses__adb.htm#ref_2305_7">Err</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2302_16">Reset_Shell_Mode</A>;
<b>end</b> <b>case</b>;
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2298_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2305_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1758_14">Reset_Curses_Mode</A><A HREF="terminal_interface-curses__ads.htm#1758_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1759_14">Reset_Curses_Mode</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1764_14">Save_Terminal_State</A><FONT COLOR=red><A NAME="2309_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2316_14" HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2311_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2311_16">Savetty</A>, "savetty");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2318_16">Savetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2318_16">Savetty</A>, "savetty");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2311_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2318_16">Savetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1764_14">Save_Terminal_State</A><A HREF="terminal_interface-curses__ads.htm#1764_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1765_14">Save_Terminal_State</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1769_14">Reset_Terminal_State</A><FONT COLOR=red><A NAME="2319_14"></A></FONT>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2326_14" HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A></FONT>
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2321_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2321_16">Resetty</A>, "resetty");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2328_16">Resetty</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2328_16">Resetty</A>, "resetty");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2321_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2328_16">Resetty</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1769_14">Reset_Terminal_State</A><A HREF="terminal_interface-curses__ads.htm#1769_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1770_14">Reset_Terminal_State</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1782_14">Rip_Off_Lines</A><FONT COLOR=red><A NAME="2329_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1782_29">Lines</A> : <b>in</b> Integer;
- <A HREF="terminal_interface-curses__ads.htm#1783_29">Proc</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1773_9">Stdscr_Init_Proc</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2336_14" HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A></FONT> (<FONT COLOR=red><A NAME="ref_2336_29" HREF="terminal_interface-curses__ads.htm#ref_1783_29">Lines</A></FONT> : <b>in</b> Integer;
+ <FONT COLOR=red><A NAME="ref_2337_29" HREF="terminal_interface-curses__ads.htm#ref_1784_29">Proc</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2332_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="2332_28">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="2333_28">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1773_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2332_16">Ripoffline</A>, "_nc_ripoffline");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2339_16">Ripoffline</A></FONT> (<FONT COLOR=red><A NAME="ref_2339_28">Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_2340_28">Proc</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Stdscr_Init_Proc</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2339_16">Ripoffline</A>, "_nc_ripoffline");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2332_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1782_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#1783_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2339_16">Ripoffline</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1783_29">Lines</A>), <A HREF="terminal_interface-curses__ads.htm#ref_1784_29">Proc</A>) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1782_14">Rip_Off_Lines</A><A HREF="terminal_interface-curses__ads.htm#1782_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1783_14">Rip_Off_Lines</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1794_14">Set_Cursor_Visibility</A><FONT COLOR=red><A NAME="2341_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1794_37">Visibility</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#1791_9">Cursor_Visibility</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2348_14" HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A></FONT> (<FONT COLOR=red><A NAME="ref_2348_37" HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2343_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="2343_26">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2343_16">Curs_Set</A>, "curs_set");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2350_16">Curs_Set</A></FONT> (<FONT COLOR=red><A NAME="ref_2350_26">Curs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2350_16">Curs_Set</A>, "curs_set");
- <FONT COLOR=red><A NAME="2346_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_2353_7">Res</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
<b>begin</b>
- <A HREF="terminal_interface-curses__adb.htm#2346_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#2343_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#1791_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#1794_37">Visibility</A>));
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2346_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <A HREF="terminal_interface-curses__ads.htm#1794_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#1791_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#2346_7">Res</A>);
+ <A HREF="terminal_interface-curses__adb.htm#ref_2353_7">Res</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2350_16">Curs_Set</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A>));
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2353_7">Res</A> /= <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <A HREF="terminal_interface-curses__ads.htm#ref_1795_37">Visibility</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1792_9">Cursor_Visibility</A>'Val (<A HREF="terminal_interface-curses__adb.htm#ref_2353_7">Res</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1794_14">Set_Cursor_Visibility</A><A HREF="terminal_interface-curses__ads.htm#1794_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1795_14">Set_Cursor_Visibility</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1799_14">Nap_Milli_Seconds</A><FONT COLOR=red><A NAME="2354_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1799_33">Ms</A> : <b>in</b> Natural)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2361_14" HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A></FONT> (<FONT COLOR=red><A NAME="ref_2361_33" HREF="terminal_interface-curses__ads.htm#ref_1800_33">Ms</A></FONT> : <b>in</b> Natural)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2356_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="2356_23">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2356_16">Napms</A>, "napms");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2363_16">Napms</A></FONT> (<FONT COLOR=red><A NAME="ref_2363_23">Ms</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2363_16">Napms</A>, "napms");
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2356_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1799_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2363_16">Napms</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1800_33">Ms</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1799_14">Nap_Milli_Seconds</A><A HREF="terminal_interface-curses__ads.htm#1799_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1800_14">Nap_Milli_Seconds</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2372_13" HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>
<b>is</b>
- <FONT COLOR=red><A NAME="2367_7">Stdscr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2367_7">Stdscr</A>, "stdscr");
+ <FONT COLOR=red><A NAME="ref_2374_7">Stdscr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2374_7">Stdscr</A>, "stdscr");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__adb.htm#2367_7">Stdscr</A>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A><A HREF="terminal_interface-curses__ads.htm#474_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__adb.htm#ref_2374_7">Stdscr</A>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#411_13">Lines</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2380_13" HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>
<b>is</b>
- <FONT COLOR=red><A NAME="2375_7">C_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2375_7">C_Lines</A>, "LINES");
+ <FONT COLOR=red><A NAME="ref_2382_7">C_Lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2382_7">C_Lines</A>, "LINES");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#2375_7">C_Lines</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#411_13">Lines</A><A HREF="terminal_interface-curses__ads.htm#411_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2382_7">C_Lines</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_412_13">Lines</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#414_13">Columns</A> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2388_13" HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A></FONT> <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>
<b>is</b>
- <FONT COLOR=red><A NAME="2383_7">C_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2383_7">C_Columns</A>, "COLS");
+ <FONT COLOR=red><A NAME="ref_2390_7">C_Columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2390_7">C_Columns</A>, "COLS");
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#2383_7">C_Columns</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#414_13">Columns</A><A HREF="terminal_interface-curses__ads.htm#414_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2390_7">C_Columns</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_415_13">Columns</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#417_13">Tab_Size</A> <b>return</b> Natural
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2396_13" HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A></FONT> <b>return</b> Natural
<b>is</b>
- <FONT COLOR=red><A NAME="2391_7">C_Tab_Size</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2391_7">C_Tab_Size</A>, "TABSIZE");
+ <FONT COLOR=red><A NAME="ref_2398_7">C_Tab_Size</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2398_7">C_Tab_Size</A>, "TABSIZE");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2391_7">C_Tab_Size</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#417_13">Tab_Size</A><A HREF="terminal_interface-curses__ads.htm#417_13">;</A>
+ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2398_7">C_Tab_Size</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_418_13">Tab_Size</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A> <b>return</b> Natural
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2404_13" HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A></FONT> <b>return</b> Natural
<b>is</b>
- <FONT COLOR=red><A NAME="2399_7">C_Number_Of_Colors</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2399_7">C_Number_Of_Colors</A>, "COLORS");
+ <FONT COLOR=red><A NAME="ref_2406_7">C_Number_Of_Colors</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2406_7">C_Number_Of_Colors</A>, "COLORS");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2399_7">C_Number_Of_Colors</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#420_13">Number_Of_Colors</A><A HREF="terminal_interface-curses__ads.htm#420_13">;</A>
+ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2406_7">C_Number_Of_Colors</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_421_13">Number_Of_Colors</A>;
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#423_13">Number_Of_Color_Pairs</A> <b>return</b> Natural
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2412_13" HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A></FONT> <b>return</b> Natural
<b>is</b>
- <FONT COLOR=red><A NAME="2407_7">C_Number_Of_Color_Pairs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2407_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
+ <FONT COLOR=red><A NAME="ref_2414_7">C_Number_Of_Color_Pairs</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2414_7">C_Number_Of_Color_Pairs</A>, "COLOR_PAIRS");
<b>begin</b>
- <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#2407_7">C_Number_Of_Color_Pairs</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#423_13">Number_Of_Color_Pairs</A><A HREF="terminal_interface-curses__ads.htm#423_13">;</A>
+ <b>return</b> Natural (<A HREF="terminal_interface-curses__adb.htm#ref_2414_7">C_Number_Of_Color_Pairs</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_424_13">Number_Of_Color_Pairs</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1807_14">Transform_Coordinates</A><FONT COLOR=red><A NAME="2413_14"></A></FONT>
- (<A HREF="terminal_interface-curses__ads.htm#1808_7">W</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1809_7">Line</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1810_7">Column</A> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A>;
- <A HREF="terminal_interface-curses__ads.htm#1811_7">Dir</A> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1806_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#1806_33">From_Screen</A>)
- <b>is</b>
- <b>type</b> <FONT COLOR=red><A NAME="2419_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>function</b> <FONT COLOR=red><A NAME="2420_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="2420_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="2421_27">Y</A></FONT>, <FONT COLOR=red><A NAME="2421_30">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#2419_12">Int_Access</A>;
- <FONT COLOR=red><A NAME="2422_27">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2420_16">Transform</A>, "wmouse_trafo");
-
- <FONT COLOR=red><A NAME="2425_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1810_7">Column</A>);
- <FONT COLOR=red><A NAME="2426_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1809_7">Line</A>);
- <FONT COLOR=red><A NAME="2427_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A>;
- <FONT COLOR=red><A NAME="2428_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__ads.htm#1811_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#1806_46">To_Screen</A> <b>then</b>
- <A HREF="terminal_interface-curses__adb.htm#2427_7">D</A> := 1;
- <b>end</b> <b>if</b>;
- <A HREF="terminal_interface-curses__adb.htm#2428_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#2420_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#1808_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#2426_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2425_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#2427_7">D</A>);
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2428_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#75_4">Curses_False</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2420_14" HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A></FONT>
+ (<FONT COLOR=red><A NAME="ref_2421_7" HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_2422_7" HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_2423_7" HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_2424_7" HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1807_9">Transform_Direction</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1807_33">From_Screen</A>)
+ <b>is</b>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_2426_12">Int_Access</A></FONT> <b>is</b> <b>access</b> <b>all</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2427_16">Transform</A></FONT> (<FONT COLOR=red><A NAME="ref_2427_27">W</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_2428_27">Y</A></FONT>, <FONT COLOR=red><A NAME="ref_2428_30">X</A></FONT> : <A HREF="terminal_interface-curses__adb.htm#ref_2426_12">Int_Access</A>;
+ <FONT COLOR=red><A NAME="ref_2429_27">Dir</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2427_16">Transform</A>, "wmouse_trafo");
+
+ <FONT COLOR=red><A NAME="ref_2432_7">X</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A>);
+ <FONT COLOR=red><A NAME="ref_2433_7">Y</A></FONT> : <b>aliased</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A>);
+ <FONT COLOR=red><A NAME="ref_2434_7">D</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> := <A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A>;
+ <FONT COLOR=red><A NAME="ref_2435_7">R</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__ads.htm#ref_1812_7">Dir</A> = <A HREF="terminal_interface-curses__ads.htm#ref_1807_46">To_Screen</A> <b>then</b>
+ <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">D</A> := 1;
+ <b>end</b> <b>if</b>;
+ <A HREF="terminal_interface-curses__adb.htm#ref_2435_7">R</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2427_16">Transform</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1809_7">W</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2433_7">Y</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2432_7">X</A>'<b>Access</b>, <A HREF="terminal_interface-curses__adb.htm#ref_2434_7">D</A>);
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2435_7">R</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_75_4">Curses_False</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>else</b>
- <A HREF="terminal_interface-curses__ads.htm#1809_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2426_7">Y</A>);
- <A HREF="terminal_interface-curses__ads.htm#1810_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#60_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#2425_7">X</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1810_7">Line</A> := <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2433_7">Y</A>);
+ <A HREF="terminal_interface-curses__ads.htm#ref_1811_7">Column</A> := <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Column_Position</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2432_7">X</A>);
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1807_14">Transform_Coordinates</A><A HREF="terminal_interface-curses__ads.htm#1807_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1808_14">Transform_Coordinates</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1824_14">Use_Default_Colors</A><FONT COLOR=red><A NAME="2442_14"></A></FONT> <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2443_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2443_16">C_Use_Default_Colors</A>, "use_default_colors");
- <FONT COLOR=red><A NAME="2445_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#2443_16">C_Use_Default_Colors</A>;
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2449_14" HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A></FONT> <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2450_16">C_Use_Default_Colors</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2450_16">C_Use_Default_Colors</A>, "use_default_colors");
+ <FONT COLOR=red><A NAME="ref_2452_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2450_16">C_Use_Default_Colors</A>;
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2445_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2452_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1824_14">Use_Default_Colors</A><A HREF="terminal_interface-curses__ads.htm#1824_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1825_14">Use_Default_Colors</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1829_14">Assume_Default_Colors</A><FONT COLOR=red><A NAME="2452_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1829_37">Fore</A> : <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#283_4">Default_Color</A>;
- <A HREF="terminal_interface-curses__ads.htm#1830_37">Back</A> : <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#283_4">Default_Color</A>)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2459_14" HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2459_37" HREF="terminal_interface-curses__ads.htm#ref_1830_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
+ <FONT COLOR=red><A NAME="ref_2460_37" HREF="terminal_interface-curses__ads.htm#ref_1831_37">Back</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2455_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="2455_41">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="2456_41">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2455_16">C_Assume_Default_Colors</A>, "assume_default_colors");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2462_16">C_Assume_Default_Colors</A></FONT> (<FONT COLOR=red><A NAME="ref_2462_41">Fore</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_2463_41">Back</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2462_16">C_Assume_Default_Colors</A>, "assume_default_colors");
- <FONT COLOR=red><A NAME="2459_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#2455_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1829_37">Fore</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#284_4">Black</A>));
+ <FONT COLOR=red><A NAME="ref_2466_7">Err</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> := <A HREF="terminal_interface-curses__adb.htm#ref_2462_16">C_Assume_Default_Colors</A> (<A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1830_37">Fore</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1831_37">Back</A>));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2459_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2466_7">Err</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1829_14">Assume_Default_Colors</A><A HREF="terminal_interface-curses__ads.htm#1829_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1830_14">Assume_Default_Colors</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1839_13">Curses_Version</A> <b>return</b> String
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2474_13" HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A></FONT> <b>return</b> String
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2469_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2469_16">curses_versionC</A>, "curses_version");
- <FONT COLOR=red><A NAME="2471_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#2469_16">curses_versionC</A>;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2476_16">curses_versionC</A></FONT> <b>return</b> chars_ptr;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2476_16">curses_versionC</A>, "curses_version");
+ <FONT COLOR=red><A NAME="ref_2478_7">Result</A></FONT> : <b>constant</b> chars_ptr := <A HREF="terminal_interface-curses__adb.htm#ref_2476_16">curses_versionC</A>;
<b>begin</b>
- <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#2471_7">Result</A>);
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1839_13">Curses_Version</A><A HREF="terminal_interface-curses__ads.htm#1839_13">;</A>
+ <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_121_13">Fill_String</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2478_7">Result</A>);
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1840_13">Curses_Version</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#1844_13">Use_Extended_Names</A> (<A HREF="terminal_interface-curses__ads.htm#1844_33">Enable</A> : Boolean) <b>return</b> Boolean
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2483_13" HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A></FONT> (<FONT COLOR=red><A NAME="ref_2483_33" HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A></FONT> : Boolean) <b>return</b> Boolean
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2478_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="2478_37">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2478_16">use_extended_namesC</A>, "use_extended_names");
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2485_16">use_extended_namesC</A></FONT> (<FONT COLOR=red><A NAME="ref_2485_37">e</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2485_16">use_extended_namesC</A>, "use_extended_names");
- <FONT COLOR=red><A NAME="2481_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> :=
- <A HREF="terminal_interface-curses__adb.htm#2478_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#1930_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#1844_33">Enable</A>)));
+ <FONT COLOR=red><A NAME="ref_2488_7">Res</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> :=
+ <A HREF="terminal_interface-curses__adb.htm#ref_2485_16">use_extended_namesC</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Curses_Bool</A> (Boolean'Pos (<A HREF="terminal_interface-curses__ads.htm#ref_1845_33">Enable</A>)));
<b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2481_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1931_4">Curses_Bool_False</A>) <b>then</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2488_7">Res</A> = <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1932_4">Curses_Bool_False</A>) <b>then</b>
<b>return</b> False;
<b>else</b>
<b>return</b> True;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1844_13">Use_Extended_Names</A><A HREF="terminal_interface-curses__ads.htm#1844_13">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1845_13">Use_Extended_Names</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1852_14">Screen_Dump_To_File</A><FONT COLOR=red><A NAME="2491_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1852_35">Filename</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2498_14" HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2498_35" HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A></FONT> : <b>in</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2493_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="2493_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2493_16">scr_dump</A>, "scr_dump");
- <FONT COLOR=red><A NAME="2495_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1852_35">Filename</A>'Length);
- <FONT COLOR=red><A NAME="2496_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2500_16">scr_dump</A></FONT> (<FONT COLOR=red><A NAME="ref_2500_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2500_16">scr_dump</A>, "scr_dump");
+ <FONT COLOR=red><A NAME="ref_2502_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>'Length);
+ <FONT COLOR=red><A NAME="ref_2503_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1852_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2495_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2496_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2493_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#2495_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1853_35">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2502_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2503_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2500_16">scr_dump</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2502_7">Txt</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1852_14">Screen_Dump_To_File</A><A HREF="terminal_interface-curses__ads.htm#1852_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1853_14">Screen_Dump_To_File</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1856_14">Screen_Restore_From_File</A><FONT COLOR=red><A NAME="2504_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1856_40">Filename</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2511_14" HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2511_40" HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A></FONT> : <b>in</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2506_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="2506_29">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2506_16">scr_restore</A>, "scr_restore");
- <FONT COLOR=red><A NAME="2508_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1856_40">Filename</A>'Length);
- <FONT COLOR=red><A NAME="2509_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2513_16">scr_restore</A></FONT> (<FONT COLOR=red><A NAME="ref_2513_29">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2513_16">scr_restore</A>, "scr_restore");
+ <FONT COLOR=red><A NAME="ref_2515_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>'Length);
+ <FONT COLOR=red><A NAME="ref_2516_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1856_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2508_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2509_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2506_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#2508_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1857_40">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2515_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2516_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2513_16">scr_restore</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2515_7">Txt</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1856_14">Screen_Restore_From_File</A><A HREF="terminal_interface-curses__ads.htm#1856_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1857_14">Screen_Restore_From_File</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1860_14">Screen_Init_From_File</A><FONT COLOR=red><A NAME="2517_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1860_37">Filename</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2524_14" HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2524_37" HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A></FONT> : <b>in</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2519_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="2519_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2519_16">scr_init</A>, "scr_init");
- <FONT COLOR=red><A NAME="2521_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1860_37">Filename</A>'Length);
- <FONT COLOR=red><A NAME="2522_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2526_16">scr_init</A></FONT> (<FONT COLOR=red><A NAME="ref_2526_26">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2526_16">scr_init</A>, "scr_init");
+ <FONT COLOR=red><A NAME="ref_2528_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>'Length);
+ <FONT COLOR=red><A NAME="ref_2529_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1860_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2521_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2522_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2519_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#2521_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1861_37">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2528_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2529_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2526_16">scr_init</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2528_7">Txt</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1860_14">Screen_Init_From_File</A><A HREF="terminal_interface-curses__ads.htm#1860_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1861_14">Screen_Init_From_File</A>;
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1864_14">Screen_Set_File</A><FONT COLOR=red><A NAME="2530_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1864_31">Filename</A> : <b>in</b> String)
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2537_14" HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A></FONT> (<FONT COLOR=red><A NAME="ref_2537_31" HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A></FONT> : <b>in</b> String)
<b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2532_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="2532_25">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2532_16">scr_set</A>, "scr_set");
- <FONT COLOR=red><A NAME="2534_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#1864_31">Filename</A>'Length);
- <FONT COLOR=red><A NAME="2535_7">Length</A></FONT> : size_t;
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2539_16">scr_set</A></FONT> (<FONT COLOR=red><A NAME="ref_2539_25">f</A></FONT> : char_array) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2539_16">scr_set</A>, "scr_set");
+ <FONT COLOR=red><A NAME="ref_2541_7">Txt</A></FONT> : char_array (0 .. <A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>'Length);
+ <FONT COLOR=red><A NAME="ref_2542_7">Length</A></FONT> : size_t;
<b>begin</b>
- To_C (<A HREF="terminal_interface-curses__ads.htm#1864_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#2534_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#2535_7">Length</A>);
- <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#2532_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#2534_7">Txt</A>) <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
+ To_C (<A HREF="terminal_interface-curses__ads.htm#ref_1865_31">Filename</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2541_7">Txt</A>, <A HREF="terminal_interface-curses__adb.htm#ref_2542_7">Length</A>);
+ <b>if</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> = <A HREF="terminal_interface-curses__adb.htm#ref_2539_16">scr_set</A> (<A HREF="terminal_interface-curses__adb.htm#ref_2541_7">Txt</A>) <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
<b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1864_14">Screen_Set_File</A><A HREF="terminal_interface-curses__ads.htm#1864_14">;</A>
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1865_14">Screen_Set_File</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>procedure</b> <A HREF="terminal_interface-curses__ads.htm#1897_14">Resize</A><FONT COLOR=red><A NAME="2543_14"></A></FONT> (<A HREF="terminal_interface-curses__ads.htm#1897_22">Win</A> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#474_13">Standard_Window</A>;
- <A HREF="terminal_interface-curses__ads.htm#1898_22">Number_Of_Lines</A> : <A HREF="terminal_interface-curses__ads.htm#62_12">Line_Count</A>;
- <A HREF="terminal_interface-curses__ads.htm#1899_22">Number_Of_Columns</A> : <A HREF="terminal_interface-curses__ads.htm#64_12">Column_Count</A>) <b>is</b>
- <b>function</b> <FONT COLOR=red><A NAME="2546_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="2546_25">win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="2547_25">lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <FONT COLOR=red><A NAME="2548_25">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A>;
- <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#2546_16">wresize</A>);
- <b>begin</b>
- <b>if</b> <A HREF="terminal_interface-curses__adb.htm#2546_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#1897_22">Win</A>,
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1898_22">Number_Of_Lines</A>),
- <A HREF="terminal_interface-curses-aux__ads.htm#55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#1899_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#72_4">Curses_Err</A> <b>then</b>
- <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#382_4">Curses_Exception</A>;
- <b>end</b> <b>if</b>;
- <b>end</b> <A HREF="terminal_interface-curses__ads.htm#1897_14">Resize</A><A HREF="terminal_interface-curses__ads.htm#1897_14">;</A>
+ <b>procedure</b> <FONT COLOR=red><A NAME="ref_2550_14" HREF="terminal_interface-curses__ads.htm#ref_1898_14">Resize</A></FONT> (<FONT COLOR=red><A NAME="ref_2550_22" HREF="terminal_interface-curses__ads.htm#ref_1898_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A> := <A HREF="terminal_interface-curses__ads.htm#ref_475_13">Standard_Window</A>;
+ <FONT COLOR=red><A NAME="ref_2551_22" HREF="terminal_interface-curses__ads.htm#ref_1899_22">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_2552_22" HREF="terminal_interface-curses__ads.htm#ref_1900_22">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Column_Count</A>) <b>is</b>
+ <b>function</b> <FONT COLOR=red><A NAME="ref_2553_16">wresize</A></FONT> (<FONT COLOR=red><A NAME="ref_2553_25">win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_2554_25">lines</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <FONT COLOR=red><A NAME="ref_2555_25">columns</A></FONT> : <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>) <b>return</b> <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A>;
+ <b>pragma</b> Import (C, <A HREF="terminal_interface-curses__adb.htm#ref_2553_16">wresize</A>);
+ <b>begin</b>
+ <b>if</b> <A HREF="terminal_interface-curses__adb.htm#ref_2553_16">wresize</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1898_22">Win</A>,
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1899_22">Number_Of_Lines</A>),
+ <A HREF="terminal_interface-curses-aux__ads.htm#ref_55_12">C_Int</A> (<A HREF="terminal_interface-curses__ads.htm#ref_1900_22">Number_Of_Columns</A>)) = <A HREF="terminal_interface-curses-aux__ads.htm#ref_72_4">Curses_Err</A> <b>then</b>
+ <b>raise</b> <A HREF="terminal_interface-curses__ads.htm#ref_383_4">Curses_Exception</A>;
+ <b>end</b> <b>if</b>;
+ <b>end</b> <A HREF="terminal_interface-curses__ads.htm#ref_1898_14">Resize</A>;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#48_28">Curses</A><A HREF="terminal_interface-curses__ads.htm#48_28">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>.<A HREF="terminal_interface-curses__ads.htm#ref_49_28">Curses</A>;
</PRE></BODY></HTML>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface-curses.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface-curses.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- S P E C --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Copyright (c) 1998 Free Software Foundation, Inc. --</EM></FONT>
+<FONT COLOR=green><EM>-- Copyright (c) 1998,2004 Free Software Foundation, Inc. --</EM></FONT>
<FONT COLOR=green><EM>-- --</EM></FONT>
<FONT COLOR=green><EM>-- Permission is hereby granted, free of charge, to any person obtaining a --</EM></FONT>
<FONT COLOR=green><EM>-- copy of this software and associated documentation files (the --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- Author: Juergen Pfeifer, 1996</EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.31 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.35 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Date: 2004/08/21 21:37:00 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- curses binding.</EM></FONT>
<FONT COLOR=green><EM>-- This module is generated. Please don't change it manually!</EM></FONT>
<FONT COLOR=green><EM>-- Run the generator instead.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
-<b>with</b> <A HREF="interfac__ads.htm#23_9">System</A>.Storage_Elements;
+<b>with</b> <A HREF="interfac__ads.htm#ref_23_9">System</A>.Storage_Elements;
<b>with</b> Interfaces.C; <FONT COLOR=green><EM>-- We need this for some assertions.</EM></FONT>
<b>package</b> Terminal_Interface.Curses <b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses);
<b>pragma</b> Linker_Options ("-lncurses");
- <FONT COLOR=red><A NAME="53_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>-- Major version of the library</EM></FONT>
- <FONT COLOR=red><A NAME="54_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 3; <FONT COLOR=green><EM>-- Minor version of the library</EM></FONT>
- NC_Version : <b>constant</b> String := "5.3"; <FONT COLOR=green><EM>-- Version of library</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_54_4">NC_Major_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>-- Major version of the library</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_55_4">NC_Minor_Version</A></FONT> : <b>constant</b> := 5; <FONT COLOR=green><EM>-- Minor version of the library</EM></FONT>
+ NC_Version : <b>constant</b> String := "5.5"; <FONT COLOR=green><EM>-- Version of library</EM></FONT>
<b>type</b> Window <b>is</b> <b>private</b>;
Null_Window : <b>constant</b> Window;
- <b>type</b> <FONT COLOR=red><A NAME="60_9">Line_Position</A></FONT> <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>-- line coordinate</EM></FONT>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_61_9">Line_Position</A></FONT> <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>-- line coordinate</EM></FONT>
<b>type</b> Column_Position <b>is</b> <b>new</b> Natural; <FONT COLOR=green><EM>-- column coordinate</EM></FONT>
<b>subtype</b> Line_Count <b>is</b> Line_Position <b>range</b> 1 .. Line_Position'Last;
<b>subtype</b> Column_Count <b>is</b> Column_Position <b>range</b> 1 .. Column_Position'Last;
<FONT COLOR=green><EM>-- Type to count columns. We do not allow null windows, so must be positive</EM></FONT>
- <b>type</b> Key_Code <b>is</b> <b>new</b> Natural;
+ <b>type</b> Key_Code <b>is</b> <b>new</b> Integer;
<FONT COLOR=green><EM>-- That is anything including real characters, special keys and logical</EM></FONT>
<FONT COLOR=green><EM>-- request codes.</EM></FONT>
- <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <b>range</b> 0 .. 8#777#;
+ <FONT COLOR=green><EM>-- FIXME: The "-1" should be Curses_Err</EM></FONT>
+ <b>subtype</b> Real_Key_Code <b>is</b> Key_Code <b>range</b> -1 .. 8#777#;
<FONT COLOR=green><EM>-- This are the codes that potentially represent a real keystroke.</EM></FONT>
<FONT COLOR=green><EM>-- Not all codes may be possible on a specific terminal. To check the</EM></FONT>
<FONT COLOR=green><EM>-- availability of a special key, the Has_Key function is provided.</EM></FONT>
<FONT COLOR=green><EM>-- Constants for function- and special keys</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=red><A NAME="87_4">Key_None</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#400#;
- <FONT COLOR=red><A NAME="88_4">Key_Code_Yes</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#400#;
- <FONT COLOR=red><A NAME="89_4">Key_Min</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#401#;
- <FONT COLOR=red><A NAME="90_4">Key_Break</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#401#;
- <FONT COLOR=red><A NAME="91_4">Key_Cursor_Down</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#402#;
- <FONT COLOR=red><A NAME="92_4">Key_Cursor_Up</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#403#;
- <FONT COLOR=red><A NAME="93_4">Key_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#404#;
- <FONT COLOR=red><A NAME="94_4">Key_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#405#;
- <FONT COLOR=red><A NAME="95_4">Key_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#406#;
- <FONT COLOR=red><A NAME="96_4">Key_Backspace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#407#;
- <FONT COLOR=red><A NAME="97_4">Key_F0</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#410#;
- <FONT COLOR=red><A NAME="98_4">Key_F1</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#411#;
- <FONT COLOR=red><A NAME="99_4">Key_F2</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#412#;
- <FONT COLOR=red><A NAME="100_4">Key_F3</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#413#;
- <FONT COLOR=red><A NAME="101_4">Key_F4</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#414#;
- <FONT COLOR=red><A NAME="102_4">Key_F5</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#415#;
- <FONT COLOR=red><A NAME="103_4">Key_F6</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#416#;
- <FONT COLOR=red><A NAME="104_4">Key_F7</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#417#;
- <FONT COLOR=red><A NAME="105_4">Key_F8</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#420#;
- <FONT COLOR=red><A NAME="106_4">Key_F9</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#421#;
- <FONT COLOR=red><A NAME="107_4">Key_F10</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#422#;
- <FONT COLOR=red><A NAME="108_4">Key_F11</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#423#;
- <FONT COLOR=red><A NAME="109_4">Key_F12</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#424#;
- <FONT COLOR=red><A NAME="110_4">Key_F13</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#425#;
- <FONT COLOR=red><A NAME="111_4">Key_F14</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#426#;
- <FONT COLOR=red><A NAME="112_4">Key_F15</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#427#;
- <FONT COLOR=red><A NAME="113_4">Key_F16</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#430#;
- <FONT COLOR=red><A NAME="114_4">Key_F17</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#431#;
- <FONT COLOR=red><A NAME="115_4">Key_F18</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#432#;
- <FONT COLOR=red><A NAME="116_4">Key_F19</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#433#;
- <FONT COLOR=red><A NAME="117_4">Key_F20</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#434#;
- <FONT COLOR=red><A NAME="118_4">Key_F21</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#435#;
- <FONT COLOR=red><A NAME="119_4">Key_F22</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#436#;
- <FONT COLOR=red><A NAME="120_4">Key_F23</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#437#;
- <FONT COLOR=red><A NAME="121_4">Key_F24</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#440#;
- <FONT COLOR=red><A NAME="122_4">Key_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#510#;
- <FONT COLOR=red><A NAME="123_4">Key_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#511#;
- <FONT COLOR=red><A NAME="124_4">Key_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#512#;
- <FONT COLOR=red><A NAME="125_4">Key_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#513#;
- <FONT COLOR=red><A NAME="126_4">Key_Exit_Insert_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#514#;
- <FONT COLOR=red><A NAME="127_4">Key_Clear_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#515#;
- <FONT COLOR=red><A NAME="128_4">Key_Clear_End_Of_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#516#;
- <FONT COLOR=red><A NAME="129_4">Key_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#517#;
- <FONT COLOR=red><A NAME="130_4">Key_Scroll_1_Forward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#520#;
- <FONT COLOR=red><A NAME="131_4">Key_Scroll_1_Backward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#521#;
- <FONT COLOR=red><A NAME="132_4">Key_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#522#;
- <FONT COLOR=red><A NAME="133_4">Key_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#523#;
- <FONT COLOR=red><A NAME="134_4">Key_Set_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#524#;
- <FONT COLOR=red><A NAME="135_4">Key_Clear_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#525#;
- <FONT COLOR=red><A NAME="136_4">Key_Clear_All_Tabs</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#526#;
- <FONT COLOR=red><A NAME="137_4">Key_Enter_Or_Send</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#527#;
- <FONT COLOR=red><A NAME="138_4">Key_Soft_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#530#;
- <FONT COLOR=red><A NAME="139_4">Key_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#531#;
- <FONT COLOR=red><A NAME="140_4">Key_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#532#;
- <FONT COLOR=red><A NAME="141_4">Key_Bottom</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#533#;
- <FONT COLOR=red><A NAME="142_4">Key_Upper_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#534#;
- <FONT COLOR=red><A NAME="143_4">Key_Upper_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#535#;
- <FONT COLOR=red><A NAME="144_4">Key_Center_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#536#;
- <FONT COLOR=red><A NAME="145_4">Key_Lower_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#537#;
- <FONT COLOR=red><A NAME="146_4">Key_Lower_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#540#;
- <FONT COLOR=red><A NAME="147_4">Key_Back_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#541#;
- <FONT COLOR=red><A NAME="148_4">Key_Beginning</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#542#;
- <FONT COLOR=red><A NAME="149_4">Key_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#543#;
- <FONT COLOR=red><A NAME="150_4">Key_Close</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#544#;
- <FONT COLOR=red><A NAME="151_4">Key_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#545#;
- <FONT COLOR=red><A NAME="152_4">Key_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#546#;
- <FONT COLOR=red><A NAME="153_4">Key_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#547#;
- <FONT COLOR=red><A NAME="154_4">Key_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#550#;
- <FONT COLOR=red><A NAME="155_4">Key_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#551#;
- <FONT COLOR=red><A NAME="156_4">Key_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#552#;
- <FONT COLOR=red><A NAME="157_4">Key_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#553#;
- <FONT COLOR=red><A NAME="158_4">Key_Mark</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#554#;
- <FONT COLOR=red><A NAME="159_4">Key_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#555#;
- <FONT COLOR=red><A NAME="160_4">Key_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#556#;
- <FONT COLOR=red><A NAME="161_4">Key_Next</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#557#;
- <FONT COLOR=red><A NAME="162_4">Key_Open</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#560#;
- <FONT COLOR=red><A NAME="163_4">Key_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#561#;
- <FONT COLOR=red><A NAME="164_4">Key_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#562#;
- <FONT COLOR=red><A NAME="165_4">Key_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#563#;
- <FONT COLOR=red><A NAME="166_4">Key_Reference</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#564#;
- <FONT COLOR=red><A NAME="167_4">Key_Refresh</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#565#;
- <FONT COLOR=red><A NAME="168_4">Key_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#566#;
- <FONT COLOR=red><A NAME="169_4">Key_Restart</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#567#;
- <FONT COLOR=red><A NAME="170_4">Key_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#570#;
- <FONT COLOR=red><A NAME="171_4">Key_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#571#;
- <FONT COLOR=red><A NAME="172_4">Key_Shift_Begin</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#572#;
- <FONT COLOR=red><A NAME="173_4">Key_Shift_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#573#;
- <FONT COLOR=red><A NAME="174_4">Key_Shift_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#574#;
- <FONT COLOR=red><A NAME="175_4">Key_Shift_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#575#;
- <FONT COLOR=red><A NAME="176_4">Key_Shift_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#576#;
- <FONT COLOR=red><A NAME="177_4">Key_Shift_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#577#;
- <FONT COLOR=red><A NAME="178_4">Key_Shift_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#600#;
- <FONT COLOR=red><A NAME="179_4">Key_Select</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#601#;
- <FONT COLOR=red><A NAME="180_4">Key_Shift_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#602#;
- <FONT COLOR=red><A NAME="181_4">Key_Shift_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#603#;
- <FONT COLOR=red><A NAME="182_4">Key_Shift_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#604#;
- <FONT COLOR=red><A NAME="183_4">Key_Shift_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#605#;
- <FONT COLOR=red><A NAME="184_4">Key_Shift_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#606#;
- <FONT COLOR=red><A NAME="185_4">Key_Shift_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#607#;
- <FONT COLOR=red><A NAME="186_4">Key_Shift_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#610#;
- <FONT COLOR=red><A NAME="187_4">Key_Shift_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#611#;
- <FONT COLOR=red><A NAME="188_4">Key_Shift_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#612#;
- <FONT COLOR=red><A NAME="189_4">Key_Shift_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#613#;
- <FONT COLOR=red><A NAME="190_4">Key_Shift_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#614#;
- <FONT COLOR=red><A NAME="191_4">Key_Shift_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#615#;
- <FONT COLOR=red><A NAME="192_4">Key_Shift_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#616#;
- <FONT COLOR=red><A NAME="193_4">Key_Shift_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#617#;
- <FONT COLOR=red><A NAME="194_4">Key_Shift_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#620#;
- <FONT COLOR=red><A NAME="195_4">Key_Shift_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#621#;
- <FONT COLOR=red><A NAME="196_4">Key_Shift_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#622#;
- <FONT COLOR=red><A NAME="197_4">Key_Shift_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#623#;
- <FONT COLOR=red><A NAME="198_4">Key_Shift_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#624#;
- <FONT COLOR=red><A NAME="199_4">Key_Shift_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#625#;
- <FONT COLOR=red><A NAME="200_4">Key_Shift_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#626#;
- <FONT COLOR=red><A NAME="201_4">Key_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#627#;
- <FONT COLOR=red><A NAME="202_4">Key_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#630#;
- <FONT COLOR=red><A NAME="203_4">Key_Mouse</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> := 8#631#;
+ <FONT COLOR=red><A NAME="ref_89_4">Key_None</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+ <FONT COLOR=red><A NAME="ref_90_4">Key_Code_Yes</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#400#;
+ <FONT COLOR=red><A NAME="ref_91_4">Key_Min</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+ <FONT COLOR=red><A NAME="ref_92_4">Key_Break</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#401#;
+ <FONT COLOR=red><A NAME="ref_93_4">Key_Cursor_Down</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#402#;
+ <FONT COLOR=red><A NAME="ref_94_4">Key_Cursor_Up</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#403#;
+ <FONT COLOR=red><A NAME="ref_95_4">Key_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#404#;
+ <FONT COLOR=red><A NAME="ref_96_4">Key_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#405#;
+ <FONT COLOR=red><A NAME="ref_97_4">Key_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#406#;
+ <FONT COLOR=red><A NAME="ref_98_4">Key_Backspace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#407#;
+ <FONT COLOR=red><A NAME="ref_99_4">Key_F0</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#410#;
+ <FONT COLOR=red><A NAME="ref_100_4">Key_F1</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#411#;
+ <FONT COLOR=red><A NAME="ref_101_4">Key_F2</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#412#;
+ <FONT COLOR=red><A NAME="ref_102_4">Key_F3</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#413#;
+ <FONT COLOR=red><A NAME="ref_103_4">Key_F4</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#414#;
+ <FONT COLOR=red><A NAME="ref_104_4">Key_F5</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#415#;
+ <FONT COLOR=red><A NAME="ref_105_4">Key_F6</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#416#;
+ <FONT COLOR=red><A NAME="ref_106_4">Key_F7</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#417#;
+ <FONT COLOR=red><A NAME="ref_107_4">Key_F8</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#420#;
+ <FONT COLOR=red><A NAME="ref_108_4">Key_F9</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#421#;
+ <FONT COLOR=red><A NAME="ref_109_4">Key_F10</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#422#;
+ <FONT COLOR=red><A NAME="ref_110_4">Key_F11</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#423#;
+ <FONT COLOR=red><A NAME="ref_111_4">Key_F12</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#424#;
+ <FONT COLOR=red><A NAME="ref_112_4">Key_F13</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#425#;
+ <FONT COLOR=red><A NAME="ref_113_4">Key_F14</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#426#;
+ <FONT COLOR=red><A NAME="ref_114_4">Key_F15</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#427#;
+ <FONT COLOR=red><A NAME="ref_115_4">Key_F16</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#430#;
+ <FONT COLOR=red><A NAME="ref_116_4">Key_F17</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#431#;
+ <FONT COLOR=red><A NAME="ref_117_4">Key_F18</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#432#;
+ <FONT COLOR=red><A NAME="ref_118_4">Key_F19</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#433#;
+ <FONT COLOR=red><A NAME="ref_119_4">Key_F20</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#434#;
+ <FONT COLOR=red><A NAME="ref_120_4">Key_F21</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#435#;
+ <FONT COLOR=red><A NAME="ref_121_4">Key_F22</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#436#;
+ <FONT COLOR=red><A NAME="ref_122_4">Key_F23</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#437#;
+ <FONT COLOR=red><A NAME="ref_123_4">Key_F24</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#440#;
+ <FONT COLOR=red><A NAME="ref_124_4">Key_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#510#;
+ <FONT COLOR=red><A NAME="ref_125_4">Key_Insert_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#511#;
+ <FONT COLOR=red><A NAME="ref_126_4">Key_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#512#;
+ <FONT COLOR=red><A NAME="ref_127_4">Key_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#513#;
+ <FONT COLOR=red><A NAME="ref_128_4">Key_Exit_Insert_Mode</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#514#;
+ <FONT COLOR=red><A NAME="ref_129_4">Key_Clear_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#515#;
+ <FONT COLOR=red><A NAME="ref_130_4">Key_Clear_End_Of_Screen</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#516#;
+ <FONT COLOR=red><A NAME="ref_131_4">Key_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#517#;
+ <FONT COLOR=red><A NAME="ref_132_4">Key_Scroll_1_Forward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#520#;
+ <FONT COLOR=red><A NAME="ref_133_4">Key_Scroll_1_Backward</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#521#;
+ <FONT COLOR=red><A NAME="ref_134_4">Key_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#522#;
+ <FONT COLOR=red><A NAME="ref_135_4">Key_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#523#;
+ <FONT COLOR=red><A NAME="ref_136_4">Key_Set_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#524#;
+ <FONT COLOR=red><A NAME="ref_137_4">Key_Clear_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#525#;
+ <FONT COLOR=red><A NAME="ref_138_4">Key_Clear_All_Tabs</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#526#;
+ <FONT COLOR=red><A NAME="ref_139_4">Key_Enter_Or_Send</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#527#;
+ <FONT COLOR=red><A NAME="ref_140_4">Key_Soft_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#530#;
+ <FONT COLOR=red><A NAME="ref_141_4">Key_Reset</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#531#;
+ <FONT COLOR=red><A NAME="ref_142_4">Key_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#532#;
+ <FONT COLOR=red><A NAME="ref_143_4">Key_Bottom</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#533#;
+ <FONT COLOR=red><A NAME="ref_144_4">Key_Upper_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#534#;
+ <FONT COLOR=red><A NAME="ref_145_4">Key_Upper_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#535#;
+ <FONT COLOR=red><A NAME="ref_146_4">Key_Center_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#536#;
+ <FONT COLOR=red><A NAME="ref_147_4">Key_Lower_Left_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#537#;
+ <FONT COLOR=red><A NAME="ref_148_4">Key_Lower_Right_Of_Keypad</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#540#;
+ <FONT COLOR=red><A NAME="ref_149_4">Key_Back_Tab</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#541#;
+ <FONT COLOR=red><A NAME="ref_150_4">Key_Beginning</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#542#;
+ <FONT COLOR=red><A NAME="ref_151_4">Key_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#543#;
+ <FONT COLOR=red><A NAME="ref_152_4">Key_Close</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#544#;
+ <FONT COLOR=red><A NAME="ref_153_4">Key_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#545#;
+ <FONT COLOR=red><A NAME="ref_154_4">Key_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#546#;
+ <FONT COLOR=red><A NAME="ref_155_4">Key_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#547#;
+ <FONT COLOR=red><A NAME="ref_156_4">Key_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#550#;
+ <FONT COLOR=red><A NAME="ref_157_4">Key_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#551#;
+ <FONT COLOR=red><A NAME="ref_158_4">Key_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#552#;
+ <FONT COLOR=red><A NAME="ref_159_4">Key_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#553#;
+ <FONT COLOR=red><A NAME="ref_160_4">Key_Mark</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#554#;
+ <FONT COLOR=red><A NAME="ref_161_4">Key_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#555#;
+ <FONT COLOR=red><A NAME="ref_162_4">Key_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#556#;
+ <FONT COLOR=red><A NAME="ref_163_4">Key_Next</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#557#;
+ <FONT COLOR=red><A NAME="ref_164_4">Key_Open</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#560#;
+ <FONT COLOR=red><A NAME="ref_165_4">Key_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#561#;
+ <FONT COLOR=red><A NAME="ref_166_4">Key_Previous</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#562#;
+ <FONT COLOR=red><A NAME="ref_167_4">Key_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#563#;
+ <FONT COLOR=red><A NAME="ref_168_4">Key_Reference</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#564#;
+ <FONT COLOR=red><A NAME="ref_169_4">Key_Refresh</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#565#;
+ <FONT COLOR=red><A NAME="ref_170_4">Key_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#566#;
+ <FONT COLOR=red><A NAME="ref_171_4">Key_Restart</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#567#;
+ <FONT COLOR=red><A NAME="ref_172_4">Key_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#570#;
+ <FONT COLOR=red><A NAME="ref_173_4">Key_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#571#;
+ <FONT COLOR=red><A NAME="ref_174_4">Key_Shift_Begin</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#572#;
+ <FONT COLOR=red><A NAME="ref_175_4">Key_Shift_Cancel</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#573#;
+ <FONT COLOR=red><A NAME="ref_176_4">Key_Shift_Command</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#574#;
+ <FONT COLOR=red><A NAME="ref_177_4">Key_Shift_Copy</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#575#;
+ <FONT COLOR=red><A NAME="ref_178_4">Key_Shift_Create</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#576#;
+ <FONT COLOR=red><A NAME="ref_179_4">Key_Shift_Delete_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#577#;
+ <FONT COLOR=red><A NAME="ref_180_4">Key_Shift_Delete_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#600#;
+ <FONT COLOR=red><A NAME="ref_181_4">Key_Select</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#601#;
+ <FONT COLOR=red><A NAME="ref_182_4">Key_Shift_End</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#602#;
+ <FONT COLOR=red><A NAME="ref_183_4">Key_Shift_Clear_End_Of_Line</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#603#;
+ <FONT COLOR=red><A NAME="ref_184_4">Key_Shift_Exit</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#604#;
+ <FONT COLOR=red><A NAME="ref_185_4">Key_Shift_Find</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#605#;
+ <FONT COLOR=red><A NAME="ref_186_4">Key_Shift_Help</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#606#;
+ <FONT COLOR=red><A NAME="ref_187_4">Key_Shift_Home</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#607#;
+ <FONT COLOR=red><A NAME="ref_188_4">Key_Shift_Insert_Char</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#610#;
+ <FONT COLOR=red><A NAME="ref_189_4">Key_Shift_Cursor_Left</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#611#;
+ <FONT COLOR=red><A NAME="ref_190_4">Key_Shift_Message</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#612#;
+ <FONT COLOR=red><A NAME="ref_191_4">Key_Shift_Move</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#613#;
+ <FONT COLOR=red><A NAME="ref_192_4">Key_Shift_Next_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#614#;
+ <FONT COLOR=red><A NAME="ref_193_4">Key_Shift_Options</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#615#;
+ <FONT COLOR=red><A NAME="ref_194_4">Key_Shift_Previous_Page</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#616#;
+ <FONT COLOR=red><A NAME="ref_195_4">Key_Shift_Print</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#617#;
+ <FONT COLOR=red><A NAME="ref_196_4">Key_Shift_Redo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#620#;
+ <FONT COLOR=red><A NAME="ref_197_4">Key_Shift_Replace</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#621#;
+ <FONT COLOR=red><A NAME="ref_198_4">Key_Shift_Cursor_Right</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#622#;
+ <FONT COLOR=red><A NAME="ref_199_4">Key_Shift_Resume</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#623#;
+ <FONT COLOR=red><A NAME="ref_200_4">Key_Shift_Save</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#624#;
+ <FONT COLOR=red><A NAME="ref_201_4">Key_Shift_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#625#;
+ <FONT COLOR=red><A NAME="ref_202_4">Key_Shift_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#626#;
+ <FONT COLOR=red><A NAME="ref_203_4">Key_Suspend</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#627#;
+ <FONT COLOR=red><A NAME="ref_204_4">Key_Undo</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#630#;
+ <FONT COLOR=red><A NAME="ref_205_4">Key_Mouse</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> := 8#631#;
Key_Resize : <b>constant</b> Special_Key_Code := 8#632#;
Key_Max : <b>constant</b> Special_Key_Code
<FONT COLOR=green><EM>-- For those who like to use the original key names we produce them were</EM></FONT>
<FONT COLOR=green><EM>-- they differ from the original. Please note that they may differ in</EM></FONT>
<FONT COLOR=green><EM>-- lower/upper case.</EM></FONT>
- <FONT COLOR=red><A NAME="217_4">KEY_DOWN</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#91_4">Key_Cursor_Down</A>;
- <FONT COLOR=red><A NAME="218_4">KEY_UP</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#92_4">Key_Cursor_Up</A>;
- <FONT COLOR=red><A NAME="219_4">KEY_LEFT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#93_4">Key_Cursor_Left</A>;
- <FONT COLOR=red><A NAME="220_4">KEY_RIGHT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#121_4">Key_Cursor_Right</A>;
- <FONT COLOR=red><A NAME="221_4">KEY_DL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#122_4">Key_Delete_Line</A>;
- <FONT COLOR=red><A NAME="222_4">KEY_IL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#123_4">Key_Insert_Line</A>;
- <FONT COLOR=red><A NAME="223_4">KEY_DC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#124_4">Key_Delete_Char</A>;
- <FONT COLOR=red><A NAME="224_4">KEY_IC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#125_4">Key_Insert_Char</A>;
- <FONT COLOR=red><A NAME="225_4">KEY_EIC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#126_4">Key_Exit_Insert_Mode</A>;
- <FONT COLOR=red><A NAME="226_4">KEY_CLEAR</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#127_4">Key_Clear_Screen</A>;
- <FONT COLOR=red><A NAME="227_4">KEY_EOS</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#128_4">Key_Clear_End_Of_Screen</A>;
- <FONT COLOR=red><A NAME="228_4">KEY_EOL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#129_4">Key_Clear_End_Of_Line</A>;
- <FONT COLOR=red><A NAME="229_4">KEY_SF</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#130_4">Key_Scroll_1_Forward</A>;
- <FONT COLOR=red><A NAME="230_4">KEY_SR</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#131_4">Key_Scroll_1_Backward</A>;
- <FONT COLOR=red><A NAME="231_4">KEY_NPAGE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#132_4">Key_Next_Page</A>;
- <FONT COLOR=red><A NAME="232_4">KEY_PPAGE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#133_4">Key_Previous_Page</A>;
- <FONT COLOR=red><A NAME="233_4">KEY_STAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#134_4">Key_Set_Tab</A>;
- <FONT COLOR=red><A NAME="234_4">KEY_CTAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#135_4">Key_Clear_Tab</A>;
- <FONT COLOR=red><A NAME="235_4">KEY_CATAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#136_4">Key_Clear_All_Tabs</A>;
- <FONT COLOR=red><A NAME="236_4">KEY_ENTER</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#137_4">Key_Enter_Or_Send</A>;
- <FONT COLOR=red><A NAME="237_4">KEY_SRESET</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#140_4">Key_Soft_Reset</A>;
- <FONT COLOR=red><A NAME="238_4">KEY_LL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#141_4">Key_Bottom</A>;
- <FONT COLOR=red><A NAME="239_4">KEY_A1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#142_4">Key_Upper_Left_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="240_4">KEY_A3</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#143_4">Key_Upper_Right_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="241_4">KEY_B2</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#144_4">Key_Center_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="242_4">KEY_C1</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#145_4">Key_Lower_Left_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="243_4">KEY_C3</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#146_4">Key_Lower_Right_Of_Keypad</A>;
- <FONT COLOR=red><A NAME="244_4">KEY_BTAB</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#147_4">Key_Back_Tab</A>;
- <FONT COLOR=red><A NAME="245_4">KEY_BEG</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#171_4">Key_Beginning</A>;
- <FONT COLOR=red><A NAME="246_4">KEY_SBEG</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#172_4">Key_Shift_Begin</A>;
- <FONT COLOR=red><A NAME="247_4">KEY_SCANCEL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#173_4">Key_Shift_Cancel</A>;
- <FONT COLOR=red><A NAME="248_4">KEY_SCOMMAND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#174_4">Key_Shift_Command</A>;
- <FONT COLOR=red><A NAME="249_4">KEY_SCOPY</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#175_4">Key_Shift_Copy</A>;
- <FONT COLOR=red><A NAME="250_4">KEY_SCREATE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#176_4">Key_Shift_Create</A>;
- <FONT COLOR=red><A NAME="251_4">KEY_SDC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#177_4">Key_Shift_Delete_Char</A>;
- <FONT COLOR=red><A NAME="252_4">KEY_SDL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#179_4">Key_Shift_Delete_Line</A>;
- <FONT COLOR=red><A NAME="253_4">KEY_SEND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#180_4">Key_Shift_End</A>;
- <FONT COLOR=red><A NAME="254_4">KEY_SEOL</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#181_4">Key_Shift_Clear_End_Of_Line</A>;
- <FONT COLOR=red><A NAME="255_4">KEY_SEXIT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#182_4">Key_Shift_Exit</A>;
- <FONT COLOR=red><A NAME="256_4">KEY_SFIND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#183_4">Key_Shift_Find</A>;
- <FONT COLOR=red><A NAME="257_4">KEY_SHELP</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#184_4">Key_Shift_Help</A>;
- <FONT COLOR=red><A NAME="258_4">KEY_SHOME</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#185_4">Key_Shift_Home</A>;
- <FONT COLOR=red><A NAME="259_4">KEY_SIC</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#186_4">Key_Shift_Insert_Char</A>;
- <FONT COLOR=red><A NAME="260_4">KEY_SLEFT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#187_4">Key_Shift_Cursor_Left</A>;
- <FONT COLOR=red><A NAME="261_4">KEY_SMESSAGE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#188_4">Key_Shift_Message</A>;
- <FONT COLOR=red><A NAME="262_4">KEY_SMOVE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#189_4">Key_Shift_Move</A>;
- <FONT COLOR=red><A NAME="263_4">KEY_SNEXT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#190_4">Key_Shift_Next_Page</A>;
- <FONT COLOR=red><A NAME="264_4">KEY_SOPTIONS</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#191_4">Key_Shift_Options</A>;
- <FONT COLOR=red><A NAME="265_4">KEY_SPREVIOUS</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#192_4">Key_Shift_Previous_Page</A>;
- <FONT COLOR=red><A NAME="266_4">KEY_SPRINT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#193_4">Key_Shift_Print</A>;
- <FONT COLOR=red><A NAME="267_4">KEY_SREDO</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#194_4">Key_Shift_Redo</A>;
- <FONT COLOR=red><A NAME="268_4">KEY_SREPLACE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#195_4">Key_Shift_Replace</A>;
- <FONT COLOR=red><A NAME="269_4">KEY_SRIGHT</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#196_4">Key_Shift_Cursor_Right</A>;
- <FONT COLOR=red><A NAME="270_4">KEY_SRSUME</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#197_4">Key_Shift_Resume</A>;
- <FONT COLOR=red><A NAME="271_4">KEY_SSAVE</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#198_4">Key_Shift_Save</A>;
- <FONT COLOR=red><A NAME="272_4">KEY_SSUSPEND</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#76_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#199_4">Key_Shift_Suspend</A>;
+ KEY_DOWN : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_93_4">Key_Cursor_Down</A>;
+ KEY_UP : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_94_4">Key_Cursor_Up</A>;
+ KEY_LEFT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_95_4">Key_Cursor_Left</A>;
+ KEY_RIGHT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_123_4">Key_Cursor_Right</A>;
+ KEY_DL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_124_4">Key_Delete_Line</A>;
+ KEY_IL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_125_4">Key_Insert_Line</A>;
+ KEY_DC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_126_4">Key_Delete_Char</A>;
+ KEY_IC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_127_4">Key_Insert_Char</A>;
+ KEY_EIC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_128_4">Key_Exit_Insert_Mode</A>;
+ KEY_CLEAR : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_129_4">Key_Clear_Screen</A>;
+ KEY_EOS : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_130_4">Key_Clear_End_Of_Screen</A>;
+ KEY_EOL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_131_4">Key_Clear_End_Of_Line</A>;
+ KEY_SF : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_132_4">Key_Scroll_1_Forward</A>;
+ KEY_SR : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_133_4">Key_Scroll_1_Backward</A>;
+ KEY_NPAGE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_134_4">Key_Next_Page</A>;
+ KEY_PPAGE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_135_4">Key_Previous_Page</A>;
+ KEY_STAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_136_4">Key_Set_Tab</A>;
+ KEY_CTAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_137_4">Key_Clear_Tab</A>;
+ KEY_CATAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_138_4">Key_Clear_All_Tabs</A>;
+ KEY_ENTER : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_139_4">Key_Enter_Or_Send</A>;
+ KEY_SRESET : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_142_4">Key_Soft_Reset</A>;
+ KEY_LL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_143_4">Key_Bottom</A>;
+ KEY_A1 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_144_4">Key_Upper_Left_Of_Keypad</A>;
+ KEY_A3 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_145_4">Key_Upper_Right_Of_Keypad</A>;
+ KEY_B2 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_146_4">Key_Center_Of_Keypad</A>;
+ KEY_C1 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_147_4">Key_Lower_Left_Of_Keypad</A>;
+ KEY_C3 : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_148_4">Key_Lower_Right_Of_Keypad</A>;
+ KEY_BTAB : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_149_4">Key_Back_Tab</A>;
+ KEY_BEG : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_173_4">Key_Beginning</A>;
+ KEY_SBEG : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_174_4">Key_Shift_Begin</A>;
+ KEY_SCANCEL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_175_4">Key_Shift_Cancel</A>;
+ KEY_SCOMMAND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_176_4">Key_Shift_Command</A>;
+ KEY_SCOPY : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_177_4">Key_Shift_Copy</A>;
+ KEY_SCREATE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_178_4">Key_Shift_Create</A>;
+ KEY_SDC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_179_4">Key_Shift_Delete_Char</A>;
+ KEY_SDL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_181_4">Key_Shift_Delete_Line</A>;
+ KEY_SEND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_182_4">Key_Shift_End</A>;
+ KEY_SEOL : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_183_4">Key_Shift_Clear_End_Of_Line</A>;
+ KEY_SEXIT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_184_4">Key_Shift_Exit</A>;
+ KEY_SFIND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_185_4">Key_Shift_Find</A>;
+ KEY_SHELP : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_186_4">Key_Shift_Help</A>;
+ KEY_SHOME : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_187_4">Key_Shift_Home</A>;
+ KEY_SIC : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_188_4">Key_Shift_Insert_Char</A>;
+ KEY_SLEFT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_189_4">Key_Shift_Cursor_Left</A>;
+ KEY_SMESSAGE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_190_4">Key_Shift_Message</A>;
+ KEY_SMOVE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_191_4">Key_Shift_Move</A>;
+ KEY_SNEXT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_192_4">Key_Shift_Next_Page</A>;
+ KEY_SOPTIONS : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_193_4">Key_Shift_Options</A>;
+ KEY_SPREVIOUS : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_194_4">Key_Shift_Previous_Page</A>;
+ KEY_SPRINT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_195_4">Key_Shift_Print</A>;
+ KEY_SREDO : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_196_4">Key_Shift_Redo</A>;
+ KEY_SREPLACE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_197_4">Key_Shift_Replace</A>;
+ KEY_SRIGHT : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_198_4">Key_Shift_Cursor_Right</A>;
+ KEY_SRSUME : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_199_4">Key_Shift_Resume</A>;
+ KEY_SSAVE : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_200_4">Key_Shift_Save</A>;
+ KEY_SSUSPEND : <A HREF="terminal_interface-curses__ads.htm#ref_78_12">Special_Key_Code</A> <b>renames</b> <A HREF="terminal_interface-curses__ads.htm#ref_201_4">Key_Shift_Suspend</A>;
KEY_SUNDO : Special_Key_Code <b>renames</b> Key_Shift_Undo;
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
- <b>type</b><A HREF="terminal_interface-curses__ads.htm#276_9"> </A>Color_Number <b>is</b> <b>range</b><A HREF="interfac__ads.htm#23_9"> </A>-1 .. Integer (Interfaces.C.short'Last);
+ <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_278_9"> </A>Color_Number <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_23_9"> </A>-1 .. Integer (Interfaces.C.short'Last);
<b>for</b> Color_Number'Size <b>use</b> Interfaces.C.short'Size;
<FONT COLOR=green><EM>-- (n)curses uses a short for the color index</EM></FONT>
<FONT COLOR=green><EM>-- The model is, that a Color_Number is an index into an array of</EM></FONT>
<FONT COLOR=green><EM>-- (potentially) definable colors. Some of those indices are</EM></FONT>
<FONT COLOR=green><EM>-- predefined (see below), although they may not really exist.</EM></FONT>
- <FONT COLOR=red><A NAME="284_4">Default_Color</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := -1;
- <FONT COLOR=red><A NAME="285_4">Black</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 0;
- <FONT COLOR=red><A NAME="286_4">Red</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 1;
- <FONT COLOR=red><A NAME="287_4">Green</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 2;
- <FONT COLOR=red><A NAME="288_4">Yellow</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 3;
- <FONT COLOR=red><A NAME="289_4">Blue</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 4;
- <FONT COLOR=red><A NAME="290_4">Magenta</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 5;
- <FONT COLOR=red><A NAME="291_4">Cyan</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := 6;
+ <FONT COLOR=red><A NAME="ref_286_4">Default_Color</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := -1;
+ <FONT COLOR=red><A NAME="ref_287_4">Black</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 0;
+ <FONT COLOR=red><A NAME="ref_288_4">Red</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 1;
+ <FONT COLOR=red><A NAME="ref_289_4">Green</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 2;
+ <FONT COLOR=red><A NAME="ref_290_4">Yellow</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 3;
+ <FONT COLOR=red><A NAME="ref_291_4">Blue</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 4;
+ <FONT COLOR=red><A NAME="ref_292_4">Magenta</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 5;
+ <FONT COLOR=red><A NAME="ref_293_4">Cyan</A></FONT> : <b>constant</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := 6;
White : <b>constant</b> Color_Number := 7;
- <b>type</b><A HREF="terminal_interface-curses__ads.htm#293_9"> </A>RGB_Value <b>is</b> <b>range</b><A HREF="interfac__ads.htm#23_9"> </A>0 .. Integer (Interfaces.C.short'Last);
+ <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_295_9"> </A>RGB_Value <b>is</b> <b>range</b><A HREF="interfac__ads.htm#ref_23_9"> </A>0 .. Integer (Interfaces.C.short'Last);
<b>for</b> RGB_Value'Size <b>use</b> Interfaces.C.short'Size;
<FONT COLOR=green><EM>-- Some system may allow to redefine a color by setting RGB values.</EM></FONT>
- <b>type</b><A HREF="terminal_interface-curses__ads.htm#297_9"> </A>Color_Pair <b>is</b> <b>range</b> 0 .. 255;
+ <b>type</b><A HREF="terminal_interface-curses__ads.htm#ref_299_9"> </A>Color_Pair <b>is</b> <b>range</b> 0 .. 255;
<b>for</b> Color_Pair'Size <b>use</b> 8;
<b>subtype</b> Redefinable_Color_Pair <b>is</b> Color_Pair <b>range</b> 1 .. 255;
<FONT COLOR=green><EM>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</EM></FONT>
- <FONT COLOR=green><EM>-- is fixed (Black & White). A color pair is simply a combination of</EM></FONT>
+ <FONT COLOR=green><EM>-- is fixed (Black & White). A color pair is simply a combination of</EM></FONT>
<FONT COLOR=green><EM>-- two colors described by Color_Numbers, one for the foreground and</EM></FONT>
<FONT COLOR=green><EM>-- the other for the background</EM></FONT>
<b>type</b> Character_Attribute_Set <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="308_10">Stand_Out</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="309_10">Under_Line</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="310_10">Reverse_Video</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="311_10">Blink</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="312_10">Dim_Character</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="313_10">Bold_Character</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="314_10">Alternate_Character_Set</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="315_10">Invisible_Character</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="316_10">Protected_Character</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="317_10">Horizontal</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="318_10">Left</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="319_10">Low</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="320_10">Right</A></FONT> : Boolean;
- <FONT COLOR=red><A NAME="321_10">Top</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_310_10">Stand_Out</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_311_10">Under_Line</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_312_10">Reverse_Video</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_313_10">Blink</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_314_10">Dim_Character</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_315_10">Bold_Character</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_316_10">Alternate_Character_Set</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_317_10">Invisible_Character</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_318_10">Protected_Character</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_319_10">Horizontal</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_320_10">Left</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_321_10">Low</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_322_10">Right</A></FONT> : Boolean;
+ <FONT COLOR=red><A NAME="ref_323_10">Top</A></FONT> : Boolean;
Vertical : Boolean;
- <b>end</b> <b>record</b><A HREF="terminal_interface-curses__ads.htm#305_9">;</A>
- <b>pragma</b> Pack (Character_Attribute_Set);
+ <b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Character_Attribute_Set);
<b>for</b> Character_Attribute_Set <b>use</b>
<b>type</b> Attributed_Character <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="354_10">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A>;
- <FONT COLOR=red><A NAME="355_10">Color</A></FONT> : Color_Pair;
- Ch :<A HREF="terminal_interface-curses__ads.htm#351_9"> </A>Character;
+ <FONT COLOR=red><A NAME="ref_355_10">Attr</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A>;
+ <FONT COLOR=red><A NAME="ref_356_10">Color</A></FONT> : Color_Pair;
+ Ch : Character;
<b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Attributed_Character);
<FONT COLOR=green><EM>-- This is the counterpart for the chtype in C.</EM></FONT>
<FONT COLOR=green><EM>-- different on your system.</EM></FONT>
Default_Character : <b>constant</b> Attributed_Character
- := (Ch => <A HREF="terminal_interface-curses__ads.htm#297_9">Character</A>'First,
+ := (Ch => <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character</A>'First,
Color => Color_Pair'First,
Attr => (<b>others</b> => False)); <FONT COLOR=green><EM>-- preelaboratable Normal_Video</EM></FONT>
<FONT COLOR=green><EM>------------------</EM></FONT>
<FONT COLOR=green><EM>-- Exceptions --</EM></FONT>
<FONT COLOR=green><EM>------------------</EM></FONT>
- <FONT COLOR=red><A NAME="383_4">Curses_Exception</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_384_4">Curses_Exception</A></FONT> : <b>exception</b>;
Wrong_Curses_Version : <b>exception</b>;
<FONT COLOR=green><EM>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</EM></FONT>
<FONT COLOR=green><EM>-- subpackets for Menu and Forms handling.</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=red><A NAME="389_4">Eti_System_Error</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="390_4">Eti_Bad_Argument</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="391_4">Eti_Posted</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="392_4">Eti_Connected</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="393_4">Eti_Bad_State</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="394_4">Eti_No_Room</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="395_4">Eti_Not_Posted</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="396_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="397_4">Eti_No_Match</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="398_4">Eti_Not_Selectable</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="399_4">Eti_Not_Connected</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="400_4">Eti_Request_Denied</A></FONT> : <b>exception</b>;
- <FONT COLOR=red><A NAME="401_4">Eti_Invalid_Field</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_390_4">Eti_System_Error</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_391_4">Eti_Bad_Argument</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_392_4">Eti_Posted</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_393_4">Eti_Connected</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_394_4">Eti_Bad_State</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_395_4">Eti_No_Room</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_396_4">Eti_Not_Posted</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_397_4">Eti_Unknown_Command</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_398_4">Eti_No_Match</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_399_4">Eti_Not_Selectable</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_400_4">Eti_Not_Connected</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_401_4">Eti_Request_Denied</A></FONT> : <b>exception</b>;
+ <FONT COLOR=red><A NAME="ref_402_4">Eti_Invalid_Field</A></FONT> : <b>exception</b>;
Eti_Current : <b>exception</b>;
<FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
<FONT COLOR=green><EM>-- this is to use functions.</EM></FONT>
<FONT COLOR=green><EM>--------------------------------------------------------------------------</EM></FONT>
- <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#411_13"> </A> <b>return</b> Line_Count;
+ <b>function</b> Lines <A HREF="terminal_interface-curses__ads.htm#ref_412_13"> </A> <b>return</b> Line_Count;
<b>pragma</b> Inline (Lines);
<b>function</b> Columns <b>return</b> Column_Count;
<FONT COLOR=green><EM>-- You must use this constants as indices into the ACS_Map array</EM></FONT>
<FONT COLOR=green><EM>-- to get the corresponding attributed character at runtime.</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=red><A NAME="436_4">ACS_Upper_Left_Corner</A></FONT> : <b>constant</b> Character := 'l';
- <FONT COLOR=red><A NAME="437_4">ACS_Lower_Left_Corner</A></FONT> : <b>constant</b> Character := 'm';
- <FONT COLOR=red><A NAME="438_4">ACS_Upper_Right_Corner</A></FONT> : <b>constant</b> Character := 'k';
- <FONT COLOR=red><A NAME="439_4">ACS_Lower_Right_Corner</A></FONT> : <b>constant</b> Character := 'j';
- <FONT COLOR=red><A NAME="440_4">ACS_Left_Tee</A></FONT> : <b>constant</b> Character := 't';
- <FONT COLOR=red><A NAME="441_4">ACS_Right_Tee</A></FONT> : <b>constant</b> Character := 'u';
- <FONT COLOR=red><A NAME="442_4">ACS_Bottom_Tee</A></FONT> : <b>constant</b> Character := 'v';
- <FONT COLOR=red><A NAME="443_4">ACS_Top_Tee</A></FONT> : <b>constant</b> Character := 'w';
- <FONT COLOR=red><A NAME="444_4">ACS_Horizontal_Line</A></FONT> : <b>constant</b> Character := 'q';
- <FONT COLOR=red><A NAME="445_4">ACS_Vertical_Line</A></FONT> : <b>constant</b> Character := 'x';
- <FONT COLOR=red><A NAME="446_4">ACS_Plus_Symbol</A></FONT> : <b>constant</b> Character := 'n';
- <FONT COLOR=red><A NAME="447_4">ACS_Scan_Line_1</A></FONT> : <b>constant</b> Character := 'o';
- <FONT COLOR=red><A NAME="448_4">ACS_Scan_Line_9</A></FONT> : <b>constant</b> Character := 's';
- <FONT COLOR=red><A NAME="449_4">ACS_Diamond</A></FONT> : <b>constant</b> Character := Character'Val (96);
- <FONT COLOR=red><A NAME="450_4">ACS_Checker_Board</A></FONT> : <b>constant</b> Character := 'a';
- <FONT COLOR=red><A NAME="451_4">ACS_Degree</A></FONT> : <b>constant</b> Character := 'f';
- <FONT COLOR=red><A NAME="452_4">ACS_Plus_Minus</A></FONT> : <b>constant</b> Character := 'g';
- <FONT COLOR=red><A NAME="453_4">ACS_Bullet</A></FONT> : <b>constant</b> Character := '~';
- <FONT COLOR=red><A NAME="454_4">ACS_Left_Arrow</A></FONT> : <b>constant</b> Character := ',';
- <FONT COLOR=red><A NAME="455_4">ACS_Right_Arrow</A></FONT> : <b>constant</b> Character := '+';
- <FONT COLOR=red><A NAME="456_4">ACS_Down_Arrow</A></FONT> : <b>constant</b> Character := '.';
- <FONT COLOR=red><A NAME="457_4">ACS_Up_Arrow</A></FONT> : <b>constant</b> Character := '-';
- <FONT COLOR=red><A NAME="458_4">ACS_Board_Of_Squares</A></FONT> : <b>constant</b> Character := 'h';
- <FONT COLOR=red><A NAME="459_4">ACS_Lantern</A></FONT> : <b>constant</b> Character := 'i';
- <FONT COLOR=red><A NAME="460_4">ACS_Solid_Block</A></FONT> : <b>constant</b> Character := '0';
- <FONT COLOR=red><A NAME="461_4">ACS_Scan_Line_3</A></FONT> : <b>constant</b> Character := 'p';
- <FONT COLOR=red><A NAME="462_4">ACS_Scan_Line_7</A></FONT> : <b>constant</b> Character := 'r';
- <FONT COLOR=red><A NAME="463_4">ACS_Less_Or_Equal</A></FONT> : <b>constant</b> Character := 'y';
- <FONT COLOR=red><A NAME="464_4">ACS_Greater_Or_Equal</A></FONT> : <b>constant</b> Character := 'z';
- <FONT COLOR=red><A NAME="465_4">ACS_PI</A></FONT> : <b>constant</b> Character := '{';
- <FONT COLOR=red><A NAME="466_4">ACS_Not_Equal</A></FONT> : <b>constant</b> Character := '|';
+ <FONT COLOR=red><A NAME="ref_437_4">ACS_Upper_Left_Corner</A></FONT> : <b>constant</b> Character := 'l';
+ <FONT COLOR=red><A NAME="ref_438_4">ACS_Lower_Left_Corner</A></FONT> : <b>constant</b> Character := 'm';
+ <FONT COLOR=red><A NAME="ref_439_4">ACS_Upper_Right_Corner</A></FONT> : <b>constant</b> Character := 'k';
+ <FONT COLOR=red><A NAME="ref_440_4">ACS_Lower_Right_Corner</A></FONT> : <b>constant</b> Character := 'j';
+ <FONT COLOR=red><A NAME="ref_441_4">ACS_Left_Tee</A></FONT> : <b>constant</b> Character := 't';
+ <FONT COLOR=red><A NAME="ref_442_4">ACS_Right_Tee</A></FONT> : <b>constant</b> Character := 'u';
+ <FONT COLOR=red><A NAME="ref_443_4">ACS_Bottom_Tee</A></FONT> : <b>constant</b> Character := 'v';
+ <FONT COLOR=red><A NAME="ref_444_4">ACS_Top_Tee</A></FONT> : <b>constant</b> Character := 'w';
+ <FONT COLOR=red><A NAME="ref_445_4">ACS_Horizontal_Line</A></FONT> : <b>constant</b> Character := 'q';
+ <FONT COLOR=red><A NAME="ref_446_4">ACS_Vertical_Line</A></FONT> : <b>constant</b> Character := 'x';
+ <FONT COLOR=red><A NAME="ref_447_4">ACS_Plus_Symbol</A></FONT> : <b>constant</b> Character := 'n';
+ <FONT COLOR=red><A NAME="ref_448_4">ACS_Scan_Line_1</A></FONT> : <b>constant</b> Character := 'o';
+ <FONT COLOR=red><A NAME="ref_449_4">ACS_Scan_Line_9</A></FONT> : <b>constant</b> Character := 's';
+ <FONT COLOR=red><A NAME="ref_450_4">ACS_Diamond</A></FONT> : <b>constant</b> Character := Character'Val (96);
+ <FONT COLOR=red><A NAME="ref_451_4">ACS_Checker_Board</A></FONT> : <b>constant</b> Character := 'a';
+ <FONT COLOR=red><A NAME="ref_452_4">ACS_Degree</A></FONT> : <b>constant</b> Character := 'f';
+ <FONT COLOR=red><A NAME="ref_453_4">ACS_Plus_Minus</A></FONT> : <b>constant</b> Character := 'g';
+ <FONT COLOR=red><A NAME="ref_454_4">ACS_Bullet</A></FONT> : <b>constant</b> Character := '~';
+ <FONT COLOR=red><A NAME="ref_455_4">ACS_Left_Arrow</A></FONT> : <b>constant</b> Character := ',';
+ <FONT COLOR=red><A NAME="ref_456_4">ACS_Right_Arrow</A></FONT> : <b>constant</b> Character := '+';
+ <FONT COLOR=red><A NAME="ref_457_4">ACS_Down_Arrow</A></FONT> : <b>constant</b> Character := '.';
+ <FONT COLOR=red><A NAME="ref_458_4">ACS_Up_Arrow</A></FONT> : <b>constant</b> Character := '-';
+ <FONT COLOR=red><A NAME="ref_459_4">ACS_Board_Of_Squares</A></FONT> : <b>constant</b> Character := 'h';
+ <FONT COLOR=red><A NAME="ref_460_4">ACS_Lantern</A></FONT> : <b>constant</b> Character := 'i';
+ <FONT COLOR=red><A NAME="ref_461_4">ACS_Solid_Block</A></FONT> : <b>constant</b> Character := '0';
+ <FONT COLOR=red><A NAME="ref_462_4">ACS_Scan_Line_3</A></FONT> : <b>constant</b> Character := 'p';
+ <FONT COLOR=red><A NAME="ref_463_4">ACS_Scan_Line_7</A></FONT> : <b>constant</b> Character := 'r';
+ <FONT COLOR=red><A NAME="ref_464_4">ACS_Less_Or_Equal</A></FONT> : <b>constant</b> Character := 'y';
+ <FONT COLOR=red><A NAME="ref_465_4">ACS_Greater_Or_Equal</A></FONT> : <b>constant</b> Character := 'z';
+ <FONT COLOR=red><A NAME="ref_466_4">ACS_PI</A></FONT> : <b>constant</b> Character := '{';
+ <FONT COLOR=red><A NAME="ref_467_4">ACS_Not_Equal</A></FONT> : <b>constant</b> Character := '|';
ACS_Sterling : <b>constant</b> Character := '}';
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_3"#2|</EM></FONT>
<b>procedure</b> Init_Windows <b>renames</b> Init_Screen;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">initscr()</A></EM></FONT>
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#482_14">Init_Screen</A>);
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_483_14">Init_Screen</A>);
<b>pragma</b> Inline (Init_Windows);
<FONT COLOR=green><EM>-- #1A NAME="AFU_4"#2|</EM></FONT>
<b>procedure</b> End_Windows;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_initscr.3x.html">endwin()</A></EM></FONT>
<b>procedure</b> End_Screen <b>renames</b> End_Windows;
- <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#490_14">End_Windows</A>);
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses__ads.htm#ref_491_14">End_Windows</A>);
<b>pragma</b> Inline (End_Screen);
<FONT COLOR=green><EM>-- #1A NAME="AFU_5"#2|</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_6"#2|</EM></FONT>
- <b>procedure</b> Move_Cursor (<FONT COLOR=red><A NAME="505_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="506_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>procedure</b> Move_Cursor (<FONT COLOR=red><A NAME="ref_506_27" HREF="terminal_interface-curses__adb.htm#ref_187_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_507_27" HREF="terminal_interface-curses__adb.htm#ref_188_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_move.3x.html">wmove()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: move()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_7"#2|</EM></FONT>
- <b>procedure</b> Add (<FONT COLOR=red><A NAME="517_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+ <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_518_19" HREF="terminal_interface-curses__adb.htm#ref_202_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">waddch()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: addch()</EM></FONT>
- <b>procedure</b> Add (<FONT COLOR=red><A NAME="522_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_523_19" HREF="terminal_interface-curses__adb.htm#ref_214_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Ch : <b>in</b> Character);
<FONT COLOR=green><EM>-- Add a single character at the current logical cursor position to</EM></FONT>
<FONT COLOR=green><EM>-- the window. Use the current windows attributes.</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_8"#2|</EM></FONT>
<b>procedure</b> Add
- (<FONT COLOR=red><A NAME="529_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="530_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="531_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Column_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_530_7" HREF="terminal_interface-curses__adb.htm#ref_225_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_531_7" HREF="terminal_interface-curses__adb.htm#ref_226_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_532_7" HREF="terminal_interface-curses__adb.htm#ref_227_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">mvwaddch()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvaddch()</EM></FONT>
<b>procedure</b> Add
- (<FONT COLOR=red><A NAME="537_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="538_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="539_7">Column</A></FONT> : <b>in</b> Column_Position;
+ (<FONT COLOR=red><A NAME="ref_538_7" HREF="terminal_interface-curses__adb.htm#ref_244_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_539_7" HREF="terminal_interface-curses__adb.htm#ref_245_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_540_7" HREF="terminal_interface-curses__adb.htm#ref_246_7">Column</A></FONT> : <b>in</b> Column_Position;
Ch : <b>in</b> Character);
<FONT COLOR=green><EM>-- Move to the position and add a single character into the window</EM></FONT>
<FONT COLOR=green><EM>-- There are more Add routines, so the Inline pragma follows later</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_9"#2|</EM></FONT>
<b>procedure</b> Add_With_Immediate_Echo
- (<FONT COLOR=red><A NAME="546_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_547_7" HREF="terminal_interface-curses__adb.htm#ref_259_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addch.3x.html">wechochar()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: echochar()</EM></FONT>
<b>procedure</b> Add_With_Immediate_Echo
- (<FONT COLOR=red><A NAME="552_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_553_7" HREF="terminal_interface-curses__adb.htm#ref_272_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Ch : <b>in</b> Character);
<FONT COLOR=green><EM>-- Add a character and do an immediate refresh of the screen.</EM></FONT>
<b>pragma</b> Inline (Add_With_Immediate_Echo);
<FONT COLOR=green><EM>-- #1A NAME="AFU_10"#2|</EM></FONT>
<b>function</b> Create
- (<FONT COLOR=red><A NAME="564_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="565_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="566_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_565_7" HREF="terminal_interface-curses__adb.htm#ref_283_21">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_566_7" HREF="terminal_interface-curses__adb.htm#ref_284_21">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_567_7" HREF="terminal_interface-curses__adb.htm#ref_285_21">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
First_Column_Position : Column_Position) <b>return</b> Window;
<FONT COLOR=green><EM>-- Not Implemented: Default Number_Of_Lines, Number_Of_Columns</EM></FONT>
<FONT COLOR=green><EM>-- the C version lets them be 0, see the man page.</EM></FONT>
<b>pragma</b> Inline (Create);
<b>function</b> New_Window
- (<FONT COLOR=red><A NAME="574_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="575_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="576_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_575_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_576_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_577_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
First_Column_Position : Column_Position) <b>return</b> Window
<b>renames</b> Create;
<b>pragma</b> Inline (New_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_12"#2|</EM></FONT>
<b>function</b> Sub_Window
- (<FONT COLOR=red><A NAME="589_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="590_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="591_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="592_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_590_7" HREF="terminal_interface-curses__adb.htm#ref_318_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_591_7" HREF="terminal_interface-curses__adb.htm#ref_319_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_592_7" HREF="terminal_interface-curses__adb.htm#ref_320_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_593_7" HREF="terminal_interface-curses__adb.htm#ref_321_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
First_Column_Position : Column_Position) <b>return</b> Window;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">subwin()</A></EM></FONT>
<b>pragma</b> Inline (Sub_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_13"#2|</EM></FONT>
<b>function</b> Derived_Window
- (<FONT COLOR=red><A NAME="599_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="600_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="601_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="602_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_600_7" HREF="terminal_interface-curses__adb.htm#ref_346_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_601_7" HREF="terminal_interface-curses__adb.htm#ref_347_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_602_7" HREF="terminal_interface-curses__adb.htm#ref_348_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_603_7" HREF="terminal_interface-curses__adb.htm#ref_349_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
First_Column_Position : Column_Position) <b>return</b> Window;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">derwin()</A></EM></FONT>
<b>pragma</b> Inline (Derived_Window);
<b>pragma</b> Inline (Duplicate);
<FONT COLOR=green><EM>-- #1A NAME="AFU_15"#2|</EM></FONT>
- <b>procedure</b> Move_Window (<FONT COLOR=red><A NAME="613_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
- <FONT COLOR=red><A NAME="614_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>procedure</b> Move_Window (<FONT COLOR=red><A NAME="ref_614_27" HREF="terminal_interface-curses__adb.htm#ref_386_27">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_615_27" HREF="terminal_interface-curses__adb.htm#ref_387_27">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvwin()</A></EM></FONT>
<b>pragma</b> Inline (Move_Window);
<FONT COLOR=green><EM>-- #1A NAME="AFU_16"#2|</EM></FONT>
- <b>procedure</b> Move_Derived_Window (<FONT COLOR=red><A NAME="620_35">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
- <FONT COLOR=red><A NAME="621_35">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ <b>procedure</b> Move_Derived_Window (<FONT COLOR=red><A NAME="ref_621_35" HREF="terminal_interface-curses__adb.htm#ref_400_35">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_622_35" HREF="terminal_interface-curses__adb.htm#ref_401_35">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">mvderwin()</A></EM></FONT>
<b>pragma</b> Inline (Move_Derived_Window);
<b>pragma</b> Import (C, Synchronize_Downwards, "wsyncdown");
<FONT COLOR=green><EM>-- #1A NAME="AFU_19"#2|</EM></FONT>
- <b>procedure</b> Set_Synch_Mode (<FONT COLOR=red><A NAME="637_30">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <b>procedure</b> Set_Synch_Mode (<FONT COLOR=red><A NAME="ref_638_30" HREF="terminal_interface-curses__adb.htm#ref_414_30">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Mode : <b>in</b> Boolean := False);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_window.3x.html">syncok()</A></EM></FONT>
<b>pragma</b> Inline (Set_Synch_Mode);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_20"#2|</EM></FONT>
- <b>procedure</b> Add (<FONT COLOR=red><A NAME="647_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="648_19">Str</A></FONT> : <b>in</b> String;
+ <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_648_19" HREF="terminal_interface-curses__adb.htm#ref_426_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_649_19" HREF="terminal_interface-curses__adb.htm#ref_427_19">Str</A></FONT> : <b>in</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">waddnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: waddstr()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: addstr()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_21"#2|</EM></FONT>
- <b>procedure</b> Add (<FONT COLOR=red><A NAME="656_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="657_19">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="658_19">Column</A></FONT> : <b>in</b> Column_Position;
- <FONT COLOR=red><A NAME="659_19">Str</A></FONT> : <b>in</b> String;
+ <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_657_19" HREF="terminal_interface-curses__adb.htm#ref_445_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_658_19" HREF="terminal_interface-curses__adb.htm#ref_446_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_659_19" HREF="terminal_interface-curses__adb.htm#ref_447_7">Column</A></FONT> : <b>in</b> Column_Position;
+ <FONT COLOR=red><A NAME="ref_660_19" HREF="terminal_interface-curses__adb.htm#ref_448_7">Str</A></FONT> : <b>in</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addstr.3x.html">mvwaddnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvwaddstr()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_22"#2|</EM></FONT>
- <b>procedure</b> Add (<FONT COLOR=red><A NAME="671_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="672_19">Str</A></FONT> : <b>in</b> Attributed_String;
+ <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_672_19" HREF="terminal_interface-curses__adb.htm#ref_457_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_673_19" HREF="terminal_interface-curses__adb.htm#ref_458_7">Str</A></FONT> : <b>in</b> Attributed_String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">waddchnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: waddchstr()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: addchstr()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_23"#2|</EM></FONT>
- <b>procedure</b> Add (<FONT COLOR=red><A NAME="680_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="681_19">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="682_19">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="683_19">Str</A></FONT> : <b>in</b> Attributed_String;
+ <b>procedure</b> Add (<FONT COLOR=red><A NAME="ref_681_19" HREF="terminal_interface-curses__adb.htm#ref_480_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_682_19" HREF="terminal_interface-curses__adb.htm#ref_481_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_683_19" HREF="terminal_interface-curses__adb.htm#ref_482_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_684_19" HREF="terminal_interface-curses__adb.htm#ref_483_7">Str</A></FONT> : <b>in</b> Attributed_String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_addchstr.3x.html">mvwaddchnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvwaddchstr()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_24"#2|</EM></FONT>
<b>procedure</b> Border
- (<FONT COLOR=red><A NAME="699_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="700_7">Left_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <FONT COLOR=red><A NAME="701_7">Right_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <FONT COLOR=red><A NAME="702_7">Top_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <FONT COLOR=red><A NAME="703_7">Bottom_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <FONT COLOR=red><A NAME="704_7">Upper_Left_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <FONT COLOR=red><A NAME="705_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
- <FONT COLOR=red><A NAME="706_7">Lower_Left_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
+ (<FONT COLOR=red><A NAME="ref_700_7" HREF="terminal_interface-curses__adb.htm#ref_492_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_701_7" HREF="terminal_interface-curses__adb.htm#ref_493_7">Left_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_702_7" HREF="terminal_interface-curses__adb.htm#ref_494_7">Right_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_703_7" HREF="terminal_interface-curses__adb.htm#ref_495_7">Top_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_704_7" HREF="terminal_interface-curses__adb.htm#ref_496_7">Bottom_Side_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_705_7" HREF="terminal_interface-curses__adb.htm#ref_497_7">Upper_Left_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_706_7" HREF="terminal_interface-curses__adb.htm#ref_498_7">Upper_Right_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
+ <FONT COLOR=red><A NAME="ref_707_7" HREF="terminal_interface-curses__adb.htm#ref_499_7">Lower_Left_Corner_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
Lower_Right_Corner_Symbol : <b>in</b> Attributed_Character := Default_Character
);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wborder()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_25"#2|</EM></FONT>
<b>procedure</b> Box
- (<FONT COLOR=red><A NAME="715_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="716_7">Vertical_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#370_4">Default_Character</A>;
+ (<FONT COLOR=red><A NAME="ref_716_7" HREF="terminal_interface-curses__adb.htm#ref_529_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_717_7" HREF="terminal_interface-curses__adb.htm#ref_530_7">Vertical_Symbol</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Attributed_Character</A> := <A HREF="terminal_interface-curses__ads.htm#ref_371_4">Default_Character</A>;
Horizontal_Symbol : <b>in</b> Attributed_Character := Default_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">box()</A></EM></FONT>
<b>pragma</b> Inline (Box);
<FONT COLOR=green><EM>-- #1A NAME="AFU_26"#2|</EM></FONT>
<b>procedure</b> Horizontal_Line
- (<FONT COLOR=red><A NAME="723_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="724_7">Line_Size</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Natural</A>;
+ (<FONT COLOR=red><A NAME="ref_724_7" HREF="terminal_interface-curses__adb.htm#ref_540_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_725_7" HREF="terminal_interface-curses__adb.htm#ref_541_7">Line_Size</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">whline()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: hline()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_27"#2|</EM></FONT>
<b>procedure</b> Vertical_Line
- (<FONT COLOR=red><A NAME="732_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="733_7">Line_Size</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Natural</A>;
+ (<FONT COLOR=red><A NAME="ref_733_7" HREF="terminal_interface-curses__adb.htm#ref_557_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_734_7" HREF="terminal_interface-curses__adb.htm#ref_558_7">Line_Size</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Natural</A>;
Line_Symbol : <b>in</b> Attributed_Character := Default_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_border.3x.html">wvline()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: vline()</EM></FONT>
<FONT COLOR=green><EM>-- PAIR_NUMBER(c) is the same as c.Color</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_31"#2|</EM></FONT>
- <b>procedure</b> Standout (<FONT COLOR=red><A NAME="794_24">Win</A></FONT> : Window := Standard_Window;
+ <b>procedure</b> Standout (<FONT COLOR=red><A NAME="ref_795_24" HREF="terminal_interface-curses__adb.htm#ref_640_24">Win</A></FONT> : Window := Standard_Window;
On : Boolean := True);
<FONT COLOR=green><EM>-- AKA: wstandout()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: wstandend()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_32"#2|</EM></FONT>
<b>procedure</b> Switch_Character_Attribute
- (<FONT COLOR=red><A NAME="801_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="802_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_802_7" HREF="terminal_interface-curses__adb.htm#ref_661_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_803_7" HREF="terminal_interface-curses__adb.htm#ref_662_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set := Normal_Video;
On : <b>in</b> Boolean := True); <FONT COLOR=green><EM>-- if False we switch Off.</EM></FONT>
<FONT COLOR=green><EM>-- Switches those Attributes set to true in the list.</EM></FONT>
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattron()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_33"#2|</EM></FONT>
<b>procedure</b> Set_Character_Attributes
- (<FONT COLOR=red><A NAME="812_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="813_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_813_7" HREF="terminal_interface-curses__adb.htm#ref_689_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_814_7" HREF="terminal_interface-curses__adb.htm#ref_690_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wattrset()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: attrset()</EM></FONT>
<b>pragma</b> Inline (Get_Character_Attribute);
<FONT COLOR=green><EM>-- #1A NAME="AFU_36"#2|</EM></FONT>
- <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="832_25">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Window</A> := Standard_Window;
+ <b>procedure</b> Set_Color (<FONT COLOR=red><A NAME="ref_833_25" HREF="terminal_interface-curses__adb.htm#ref_752_25">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Window</A> := Standard_Window;
Pair : <b>in</b> Color_Pair);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wcolor_set()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: color_set()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_37"#2|</EM></FONT>
<b>procedure</b> Change_Attributes
- (<FONT COLOR=red><A NAME="840_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="841_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Integer</A> := -1;
- <FONT COLOR=red><A NAME="842_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_841_7" HREF="terminal_interface-curses__adb.htm#ref_768_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_842_7" HREF="terminal_interface-curses__adb.htm#ref_769_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
+ <FONT COLOR=red><A NAME="ref_843_7" HREF="terminal_interface-curses__adb.htm#ref_770_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">wchgat()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: chgat()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_38"#2|</EM></FONT>
<b>procedure</b> Change_Attributes
- (<FONT COLOR=red><A NAME="849_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="850_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A> := Line_Position'First;
- <FONT COLOR=red><A NAME="851_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
- <FONT COLOR=red><A NAME="852_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#305_9">Integer</A> := -1;
- <FONT COLOR=red><A NAME="853_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_850_7" HREF="terminal_interface-curses__adb.htm#ref_791_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_851_7" HREF="terminal_interface-curses__adb.htm#ref_792_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A> := Line_Position'First;
+ <FONT COLOR=red><A NAME="ref_852_7" HREF="terminal_interface-curses__adb.htm#ref_793_7">Column</A></FONT> : <b>in</b> Column_Position := Column_Position'First;
+ <FONT COLOR=red><A NAME="ref_853_7" HREF="terminal_interface-curses__adb.htm#ref_794_7">Count</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_307_9">Integer</A> := -1;
+ <FONT COLOR=red><A NAME="ref_854_7" HREF="terminal_interface-curses__adb.htm#ref_795_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_attr.3x.html">mvwchgat()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvchgat()</EM></FONT>
<b>pragma</b> Inline (Set_Echo_Mode);
<FONT COLOR=green><EM>-- #1A NAME="AFU_44"#2|</EM></FONT>
- <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="898_29">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <b>procedure</b> Set_Meta_Mode (<FONT COLOR=red><A NAME="ref_899_29" HREF="terminal_interface-curses__adb.htm#ref_880_29">Win</A></FONT> : <b>in</b> Window := Standard_Window;
SwitchOn : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">meta()</A></EM></FONT>
<b>pragma</b> Inline (Set_Meta_Mode);
<FONT COLOR=green><EM>-- #1A NAME="AFU_45"#2|</EM></FONT>
- <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="904_31">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <b>procedure</b> Set_KeyPad_Mode (<FONT COLOR=red><A NAME="ref_905_31" HREF="terminal_interface-curses__adb.htm#ref_891_31">Win</A></FONT> : <b>in</b> Window := Standard_Window;
SwitchOn : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">keypad()</A></EM></FONT>
<b>pragma</b> Inline (Set_KeyPad_Mode);
<FONT COLOR=green><EM>-- #1A NAME="AFU_47"#2|</EM></FONT>
<b>procedure</b> Set_Flush_On_Interrupt_Mode
- (<FONT COLOR=red><A NAME="923_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_924_7" HREF="terminal_interface-curses__adb.htm#ref_920_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Mode : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">intrflush()</A></EM></FONT>
<b>pragma</b> Inline (Set_Flush_On_Interrupt_Mode);
<FONT COLOR=green><EM>-- #1A NAME="AFU_48"#2|</EM></FONT>
<b>procedure</b> Set_Queue_Interrupt_Mode
- (<FONT COLOR=red><A NAME="930_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_931_7" HREF="terminal_interface-curses__adb.htm#ref_932_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Flush : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">qiflush()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: noqiflush()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_49"#2|</EM></FONT>
<b>procedure</b> Set_NoDelay_Mode
- (<FONT COLOR=red><A NAME="938_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_939_7" HREF="terminal_interface-curses__adb.htm#ref_951_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Mode : <b>in</b> Boolean := False);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">nodelay()</A></EM></FONT>
<b>pragma</b> Inline (Set_NoDelay_Mode);
<b>type</b> Timeout_Mode <b>is</b> (Blocking, Non_Blocking, Delayed);
<FONT COLOR=green><EM>-- #1A NAME="AFU_50"#2|</EM></FONT>
- <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="946_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#942_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="947_32">Mode</A></FONT> : <b>in</b> Timeout_Mode;
+ <b>procedure</b> Set_Timeout_Mode (<FONT COLOR=red><A NAME="ref_947_32" HREF="terminal_interface-curses__adb.htm#ref_962_32">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_943_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_948_32" HREF="terminal_interface-curses__adb.htm#ref_963_32">Mode</A></FONT> : <b>in</b> Timeout_Mode;
Amount : <b>in</b> Natural); <FONT COLOR=green><EM>-- in Milliseconds</EM></FONT>
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">wtimeout()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: timeout()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_51"#2|</EM></FONT>
<b>procedure</b> Set_Escape_Timer_Mode
- (<FONT COLOR=red><A NAME="959_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_960_7" HREF="terminal_interface-curses__adb.htm#ref_986_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Timer_Off : <b>in</b> Boolean := False);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inopts.3x.html">notimeout()</A></EM></FONT>
<b>pragma</b> Inline (Set_Escape_Timer_Mode);
<FONT COLOR=green><EM>-- #1A NAME="AFU_53"#2|</EM></FONT>
<b>procedure</b> Clear_On_Next_Update
- (<FONT COLOR=red><A NAME="976_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_977_7" HREF="terminal_interface-curses__adb.htm#ref_1019_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Do_Clear : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">clearok()</A></EM></FONT>
<b>pragma</b> Inline (Clear_On_Next_Update);
<FONT COLOR=green><EM>-- #1A NAME="AFU_54"#2|</EM></FONT>
<b>procedure</b> Use_Insert_Delete_Line
- (<FONT COLOR=red><A NAME="983_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_984_7" HREF="terminal_interface-curses__adb.htm#ref_1031_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Do_Idl : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idlok()</A></EM></FONT>
<b>pragma</b> Inline (Use_Insert_Delete_Line);
<FONT COLOR=green><EM>-- #1A NAME="AFU_55"#2|</EM></FONT>
<b>procedure</b> Use_Insert_Delete_Character
- (<FONT COLOR=red><A NAME="990_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_991_7" HREF="terminal_interface-curses__adb.htm#ref_1043_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Do_Idc : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">idcok()</A></EM></FONT>
<b>pragma</b> Inline (Use_Insert_Delete_Character);
<FONT COLOR=green><EM>-- #1A NAME="AFU_56"#2|</EM></FONT>
<b>procedure</b> Leave_Cursor_After_Update
- (<FONT COLOR=red><A NAME="997_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_998_7" HREF="terminal_interface-curses__adb.htm#ref_1055_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Do_Leave : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">leaveok()</A></EM></FONT>
<b>pragma</b> Inline (Leave_Cursor_After_Update);
<FONT COLOR=green><EM>-- #1A NAME="AFU_57"#2|</EM></FONT>
<b>procedure</b> Immediate_Update_Mode
- (<FONT COLOR=red><A NAME="1004_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_1005_7" HREF="terminal_interface-curses__adb.htm#ref_1067_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Mode : <b>in</b> Boolean := False);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">immedok()</A></EM></FONT>
<b>pragma</b> Inline (Immediate_Update_Mode);
<FONT COLOR=green><EM>-- #1A NAME="AFU_58"#2|</EM></FONT>
<b>procedure</b> Allow_Scrolling
- (<FONT COLOR=red><A NAME="1011_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_1012_7" HREF="terminal_interface-curses__adb.htm#ref_1079_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Mode : <b>in</b> Boolean := False);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">scrollok()</A></EM></FONT>
<b>pragma</b> Inline (Allow_Scrolling);
<FONT COLOR=green><EM>-- #1A NAME="AFU_59"#2|</EM></FONT>
<b>procedure</b> Set_Scroll_Region
- (<FONT COLOR=red><A NAME="1022_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1023_7">Top_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1023_7" HREF="terminal_interface-curses__adb.htm#ref_1098_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1024_7" HREF="terminal_interface-curses__adb.htm#ref_1099_7">Top_Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Line_Position</A>;
Bottom_Line : <b>in</b> Line_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_outopts.3x.html">wsetscrreg()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: setscrreg()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">redrawwin()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_64"#2|</EM></FONT>
- <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="1057_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1058_22">Begin_Line</A></FONT> : <b>in</b> Line_Position;
+ <b>procedure</b> Redraw (<FONT COLOR=red><A NAME="ref_1058_22" HREF="terminal_interface-curses__adb.htm#ref_1155_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1059_22" HREF="terminal_interface-curses__adb.htm#ref_1156_7">Begin_Line</A></FONT> : <b>in</b> Line_Position;
Line_Count : <b>in</b> Positive);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_refresh.3x.html">wredrawln()</A></EM></FONT>
<b>pragma</b> Inline (Redraw);
<FONT COLOR=green><EM>-- because in C it is common to see bkgdset(A_BOLD) or</EM></FONT>
<FONT COLOR=green><EM>-- bkgdset(COLOR_PAIR(n))</EM></FONT>
<b>procedure</b> Set_Background
- (<FONT COLOR=red><A NAME="1103_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_1104_7" HREF="terminal_interface-curses__adb.htm#ref_1212_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdset()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: bkgdset()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_70"#2|</EM></FONT>
<b>procedure</b> Change_Background
- (<FONT COLOR=red><A NAME="1111_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_1112_7" HREF="terminal_interface-curses__adb.htm#ref_1222_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgd()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: bkgd()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_71"#2|</EM></FONT>
<FONT COLOR=green><EM>-- ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Get_Background</A> (Win : Window := Standard_Window)
+ <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Get_Background</A> (Win : Window := Standard_Window)
<b>return</b> Attributed_Character;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_bkgd.3x.html">wbkgdget()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: bkgdget()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchwin()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_74"#2|</EM></FONT>
- <b>procedure</b> Touch (<FONT COLOR=red><A NAME="1139_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1140_21">Start</A></FONT> : <b>in</b> Line_Position;
+ <b>procedure</b> Touch (<FONT COLOR=red><A NAME="ref_1140_21" HREF="terminal_interface-curses__adb.htm#ref_1277_21">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1141_21" HREF="terminal_interface-curses__adb.htm#ref_1278_21">Start</A></FONT> : <b>in</b> Line_Position;
Count : <b>in</b> Positive);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">touchline()</A></EM></FONT>
<b>pragma</b> Inline (Touch);
<FONT COLOR=green><EM>-- #1A NAME="AFU_75"#2|</EM></FONT>
- <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="1146_35">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1147_35">Start</A></FONT> : <b>in</b> Line_Position;
- <FONT COLOR=red><A NAME="1148_35">Count</A></FONT> : <b>in</b> Positive;
+ <b>procedure</b> Change_Lines_Status (<FONT COLOR=red><A NAME="ref_1147_35" HREF="terminal_interface-curses__adb.htm#ref_1242_35">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1148_35" HREF="terminal_interface-curses__adb.htm#ref_1243_35">Start</A></FONT> : <b>in</b> Line_Position;
+ <FONT COLOR=red><A NAME="ref_1149_35" HREF="terminal_interface-curses__adb.htm#ref_1244_35">Count</A></FONT> : <b>in</b> Positive;
State : <b>in</b> Boolean);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">wtouchln()</A></EM></FONT>
<b>pragma</b> Inline (Change_Lines_Status);
<FONT COLOR=green><EM>-- #1A NAME="AFU_76"#2|</EM></FONT>
- <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="1154_25">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
+ <b>function</b> Is_Touched (<FONT COLOR=red><A NAME="ref_1155_25" HREF="terminal_interface-curses__adb.htm#ref_1286_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
Line : Line_Position) <b>return</b> Boolean;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_touch.3x.html">is_linetouched()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_78"#2|</EM></FONT>
<b>procedure</b> Copy
- (<FONT COLOR=red><A NAME="1169_7">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
- <FONT COLOR=red><A NAME="1170_7">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
- <FONT COLOR=red><A NAME="1171_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1172_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="1173_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1174_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="1175_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1176_7">Destination_Right_Column</A></FONT> : <b>in</b> Column_Position;
+ (<FONT COLOR=red><A NAME="ref_1170_7" HREF="terminal_interface-curses__adb.htm#ref_1313_7">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1171_7" HREF="terminal_interface-curses__adb.htm#ref_1314_7">Destination_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1172_7" HREF="terminal_interface-curses__adb.htm#ref_1315_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1173_7" HREF="terminal_interface-curses__adb.htm#ref_1316_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1174_7" HREF="terminal_interface-curses__adb.htm#ref_1317_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1175_7" HREF="terminal_interface-curses__adb.htm#ref_1318_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1176_7" HREF="terminal_interface-curses__adb.htm#ref_1319_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1177_7" HREF="terminal_interface-curses__adb.htm#ref_1320_7">Destination_Right_Column</A></FONT> : <b>in</b> Column_Position;
Non_Destructive_Mode : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">copywin()</A></EM></FONT>
<b>pragma</b> Inline (Copy);
<FONT COLOR=green><EM>-- #1A NAME="AFU_79"#2|</EM></FONT>
- <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="1182_25">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+ <b>procedure</b> Overwrite (<FONT COLOR=red><A NAME="ref_1183_25" HREF="terminal_interface-curses__adb.htm#ref_1349_7">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
Destination_Window : <b>in</b> Window);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overwrite()</A></EM></FONT>
<b>pragma</b> Inline (Overwrite);
<FONT COLOR=green><EM>-- #1A NAME="AFU_80"#2|</EM></FONT>
- <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="1188_23">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#56_9">Window</A>;
+ <b>procedure</b> Overlay (<FONT COLOR=red><A NAME="ref_1189_23" HREF="terminal_interface-curses__adb.htm#ref_1361_7">Source_Window</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_57_9">Window</A>;
Destination_Window : <b>in</b> Window);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_overlay.3x.html">overlay()</A></EM></FONT>
<b>pragma</b> Inline (Overlay);
<FONT COLOR=green><EM>-- #1A NAME="AFU_81"#2|</EM></FONT>
<b>procedure</b> Insert_Delete_Lines
- (<FONT COLOR=red><A NAME="1199_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ (<FONT COLOR=red><A NAME="ref_1200_7" HREF="terminal_interface-curses__adb.htm#ref_1374_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Lines : <b>in</b> Integer := 1); <FONT COLOR=green><EM>-- default is to insert one line above</EM></FONT>
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_deleteln.3x.html">winsdelln()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: insdelln()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_84"#2|</EM></FONT>
<b>procedure</b> Get_Size
- (<FONT COLOR=red><A NAME="1223_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="1224_7">Number_Of_Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+ (<FONT COLOR=red><A NAME="ref_1224_7" HREF="terminal_interface-curses__adb.htm#ref_1400_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1225_7" HREF="terminal_interface-curses__adb.htm#ref_1401_7">Number_Of_Lines</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
Number_Of_Columns : <b>out</b> Column_Count);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getmaxyx()</A></EM></FONT>
<b>pragma</b> Inline (Get_Size);
<FONT COLOR=green><EM>-- #1A NAME="AFU_85"#2|</EM></FONT>
<b>procedure</b> Get_Window_Position
- (<FONT COLOR=red><A NAME="1231_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="1232_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1232_7" HREF="terminal_interface-curses__adb.htm#ref_1416_7">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1233_7" HREF="terminal_interface-curses__adb.htm#ref_1417_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Top_Left_Column : <b>out</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getbegyx()</A></EM></FONT>
<b>pragma</b> Inline (Get_Window_Position);
<FONT COLOR=green><EM>-- #1A NAME="AFU_86"#2|</EM></FONT>
<b>procedure</b> Get_Cursor_Position
- (<FONT COLOR=red><A NAME="1239_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1240_7">Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1240_7" HREF="terminal_interface-curses__adb.htm#ref_1428_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1241_7" HREF="terminal_interface-curses__adb.htm#ref_1429_7">Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : <b>out</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getyx()</A></EM></FONT>
<b>pragma</b> Inline (Get_Cursor_Position);
<FONT COLOR=green><EM>-- #1A NAME="AFU_87"#2|</EM></FONT>
<b>procedure</b> Get_Origin_Relative_To_Parent
- (<FONT COLOR=red><A NAME="1247_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
- <FONT COLOR=red><A NAME="1248_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1249_7">Top_Left_Column</A></FONT> : <b>out</b> Column_Position;
+ (<FONT COLOR=red><A NAME="ref_1248_7" HREF="terminal_interface-curses__adb.htm#ref_1440_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1249_7" HREF="terminal_interface-curses__adb.htm#ref_1441_7">Top_Left_Line</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1250_7" HREF="terminal_interface-curses__adb.htm#ref_1442_7">Top_Left_Column</A></FONT> : <b>out</b> Column_Position;
Is_Not_A_Subwindow : <b>out</b> Boolean);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getyx.3x.html">getparyx()</A></EM></FONT>
<FONT COLOR=green><EM>-- Instead of placing -1 in the coordinates as return, we use a boolean</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_88"#2|</EM></FONT>
- <b>function</b> New_Pad (<FONT COLOR=red><A NAME="1261_22">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+ <b>function</b> New_Pad (<FONT COLOR=red><A NAME="ref_1262_22" HREF="terminal_interface-curses__adb.htm#ref_1459_22">Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
Columns : Column_Count) <b>return</b> Window;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">newpad()</A></EM></FONT>
<b>pragma</b> Inline (New_Pad);
<FONT COLOR=green><EM>-- #1A NAME="AFU_89"#2|</EM></FONT>
<b>function</b> Sub_Pad
- (<FONT COLOR=red><A NAME="1268_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A>;
- <FONT COLOR=red><A NAME="1269_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
- <FONT COLOR=red><A NAME="1270_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Count</A>;
- <FONT COLOR=red><A NAME="1271_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1269_7" HREF="terminal_interface-curses__adb.htm#ref_1475_7">Pad</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1270_7" HREF="terminal_interface-curses__adb.htm#ref_1476_7">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
+ <FONT COLOR=red><A NAME="ref_1271_7" HREF="terminal_interface-curses__adb.htm#ref_1477_7">Number_Of_Columns</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Count</A>;
+ <FONT COLOR=red><A NAME="ref_1272_7" HREF="terminal_interface-curses__adb.htm#ref_1478_7">First_Line_Position</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
First_Column_Position : Column_Position) <b>return</b> Window;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">subpad()</A></EM></FONT>
<b>pragma</b> Inline (Sub_Pad);
<FONT COLOR=green><EM>-- #1A NAME="AFU_90"#2|</EM></FONT>
<b>procedure</b> Refresh
- (<FONT COLOR=red><A NAME="1278_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
- <FONT COLOR=red><A NAME="1279_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1280_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="1281_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1282_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="1283_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1279_7" HREF="terminal_interface-curses__adb.htm#ref_1503_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1280_7" HREF="terminal_interface-curses__adb.htm#ref_1504_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1281_7" HREF="terminal_interface-curses__adb.htm#ref_1505_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1282_7" HREF="terminal_interface-curses__adb.htm#ref_1506_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1283_7" HREF="terminal_interface-curses__adb.htm#ref_1507_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1284_7" HREF="terminal_interface-curses__adb.htm#ref_1508_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Destination_Right_Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">prefresh()</A></EM></FONT>
<b>pragma</b> Inline (Refresh);
<FONT COLOR=green><EM>-- #1A NAME="AFU_91"#2|</EM></FONT>
<b>procedure</b> Refresh_Without_Update
- (<FONT COLOR=red><A NAME="1290_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A>;
- <FONT COLOR=red><A NAME="1291_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1292_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="1293_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1294_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="1295_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1291_7" HREF="terminal_interface-curses__adb.htm#ref_1533_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A>;
+ <FONT COLOR=red><A NAME="ref_1292_7" HREF="terminal_interface-curses__adb.htm#ref_1534_7">Source_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1293_7" HREF="terminal_interface-curses__adb.htm#ref_1535_7">Source_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1294_7" HREF="terminal_interface-curses__adb.htm#ref_1536_7">Destination_Top_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1295_7" HREF="terminal_interface-curses__adb.htm#ref_1537_7">Destination_Left_Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1296_7" HREF="terminal_interface-curses__adb.htm#ref_1538_7">Destination_Bottom_Row</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Destination_Right_Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pnoutrefresh()</A></EM></FONT>
<b>pragma</b> Inline (Refresh_Without_Update);
<FONT COLOR=green><EM>-- #1A NAME="AFU_92"#2|</EM></FONT>
<b>procedure</b> Add_Character_To_Pad_And_Echo_It
- (<FONT COLOR=red><A NAME="1302_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A>;
+ (<FONT COLOR=red><A NAME="ref_1303_7" HREF="terminal_interface-curses__adb.htm#ref_1563_7">Pad</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A>;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_pad.3x.html">pechochar()</A></EM></FONT>
<b>procedure</b> Add_Character_To_Pad_And_Echo_It
- (<FONT COLOR=red><A NAME="1307_7">Pad</A></FONT> : <b>in</b> Window;
+ (<FONT COLOR=red><A NAME="ref_1308_7" HREF="terminal_interface-curses__adb.htm#ref_1576_7">Pad</A></FONT> : <b>in</b> Window;
Ch : <b>in</b> Character);
<b>pragma</b> Inline (Add_Character_To_Pad_And_Echo_It);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_93"#2|</EM></FONT>
- <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="1316_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <b>procedure</b> Scroll (<FONT COLOR=red><A NAME="ref_1317_22" HREF="terminal_interface-curses__adb.htm#ref_1587_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
Amount : <b>in</b> Integer := 1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_scroll.3x.html">wscrl()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: scroll()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_95"#2|</EM></FONT>
<b>procedure</b> Delete_Character
- (<FONT COLOR=red><A NAME="1334_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1335_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1335_7" HREF="terminal_interface-curses__adb.htm#ref_1611_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1336_7" HREF="terminal_interface-curses__adb.htm#ref_1612_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : <b>in</b> Column_Position);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_delch.3x.html">mvwdelch()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvdelch()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_96"#2|</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Peek</A> (Win : Window := Standard_Window)
+ <b>function</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Peek</A> (Win : Window := Standard_Window)
<b>return</b> Attributed_Character;
<FONT COLOR=green><EM>-- AKA: inch()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">winch()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_97"#2|</EM></FONT>
<b>function</b> Peek
- (<FONT COLOR=red><A NAME="1353_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1354_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
+ (<FONT COLOR=red><A NAME="ref_1354_7" HREF="terminal_interface-curses__adb.htm#ref_1635_7">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1355_7" HREF="terminal_interface-curses__adb.htm#ref_1636_7">Line</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
Column : Column_Position) <b>return</b> Attributed_Character;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inch.3x.html">mvwinch()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvinch()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_98"#2|</EM></FONT>
- <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1365_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Window</A> := Standard_Window;
+ <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1366_22" HREF="terminal_interface-curses__adb.htm#ref_1647_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Window</A> := Standard_Window;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">winsch()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: insch()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_99"#2|</EM></FONT>
- <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1371_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1372_22">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1373_22">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#351_9">Column_Position</A>;
+ <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1372_22" HREF="terminal_interface-curses__adb.htm#ref_1659_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1373_22" HREF="terminal_interface-curses__adb.htm#ref_1660_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1374_22" HREF="terminal_interface-curses__adb.htm#ref_1661_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_352_9">Column_Position</A>;
Ch : <b>in</b> Attributed_Character);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insch.3x.html">mvwinsch()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvinsch()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_100"#2|</EM></FONT>
- <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1383_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="1384_22">Str</A></FONT> : <b>in</b> String;
+ <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1384_22" HREF="terminal_interface-curses__adb.htm#ref_1678_22">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1385_22" HREF="terminal_interface-curses__adb.htm#ref_1679_22">Str</A></FONT> : <b>in</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">winsnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: winsstr()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: insstr()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_101"#2|</EM></FONT>
- <b>procedure</b> Insert (<FONT COLOR=red><A NAME="1392_22">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1393_22">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1394_22">Column</A></FONT> : <b>in</b> Column_Position;
- <FONT COLOR=red><A NAME="1395_22">Str</A></FONT> : <b>in</b> String;
+ <b>procedure</b> Insert (<FONT COLOR=red><A NAME="ref_1393_22" HREF="terminal_interface-curses__adb.htm#ref_1697_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1394_22" HREF="terminal_interface-curses__adb.htm#ref_1698_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1395_22" HREF="terminal_interface-curses__adb.htm#ref_1699_7">Column</A></FONT> : <b>in</b> Column_Position;
+ <FONT COLOR=red><A NAME="ref_1396_22" HREF="terminal_interface-curses__adb.htm#ref_1700_7">Str</A></FONT> : <b>in</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_insstr.3x.html">mvwinsnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvwinsstr()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_102"#2|</EM></FONT>
- <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1408_20">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="1409_20">Str</A></FONT> : <b>out</b> String;
+ <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1409_20" HREF="terminal_interface-curses__adb.htm#ref_1720_20">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1410_20" HREF="terminal_interface-curses__adb.htm#ref_1721_20">Str</A></FONT> : <b>out</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">winnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: winstr()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: instr()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_103"#2|</EM></FONT>
- <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1417_20">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1418_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1419_20">Column</A></FONT> : <b>in</b> Column_Position;
- <FONT COLOR=red><A NAME="1420_20">Str</A></FONT> : <b>out</b> String;
+ <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1418_20" HREF="terminal_interface-curses__adb.htm#ref_1750_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1419_20" HREF="terminal_interface-curses__adb.htm#ref_1751_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1420_20" HREF="terminal_interface-curses__adb.htm#ref_1752_7">Column</A></FONT> : <b>in</b> Column_Position;
+ <FONT COLOR=red><A NAME="ref_1421_20" HREF="terminal_interface-curses__adb.htm#ref_1753_7">Str</A></FONT> : <b>out</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_instr.3x.html">mvwinnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvwinstr()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_104"#2|</EM></FONT>
- <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1432_20">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1433_20">Str</A></FONT> : <b>out</b> Attributed_String;
+ <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1433_20" HREF="terminal_interface-curses__adb.htm#ref_1762_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1434_20" HREF="terminal_interface-curses__adb.htm#ref_1763_7">Str</A></FONT> : <b>out</b> Attributed_String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">winchnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: winchstr()</EM></FONT>
<FONT COLOR=green><EM>-- AKA: inchstr()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_105"#2|</EM></FONT>
- <b>procedure</b> Peek (<FONT COLOR=red><A NAME="1441_20">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1442_20">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1443_20">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#375_9">Column_Position</A>;
- <FONT COLOR=red><A NAME="1444_20">Str</A></FONT> : <b>out</b> Attributed_String;
+ <b>procedure</b> Peek (<FONT COLOR=red><A NAME="ref_1442_20" HREF="terminal_interface-curses__adb.htm#ref_1799_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1443_20" HREF="terminal_interface-curses__adb.htm#ref_1800_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1444_20" HREF="terminal_interface-curses__adb.htm#ref_1801_7">Column</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_376_9">Column_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1445_20" HREF="terminal_interface-curses__adb.htm#ref_1802_7">Str</A></FONT> : <b>out</b> Attributed_String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_inchstr.3x.html">mvwinchnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvwinchstr()</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_106"#2|</EM></FONT>
- <b>procedure</b> Get (<FONT COLOR=red><A NAME="1457_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="1458_19">Str</A></FONT> : <b>out</b> String;
+ <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1458_19" HREF="terminal_interface-curses__adb.htm#ref_1810_19">Win</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1459_19" HREF="terminal_interface-curses__adb.htm#ref_1811_19">Str</A></FONT> : <b>out</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">wgetnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: wgetstr()</EM></FONT>
<FONT COLOR=green><EM>-- overflows.</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_107"#2|</EM></FONT>
- <b>procedure</b> Get (<FONT COLOR=red><A NAME="1468_19">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#59_9">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1469_19">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1470_19">Column</A></FONT> : <b>in</b> Column_Position;
- <FONT COLOR=red><A NAME="1471_19">Str</A></FONT> : <b>out</b> String;
+ <b>procedure</b> Get (<FONT COLOR=red><A NAME="ref_1469_19" HREF="terminal_interface-curses__adb.htm#ref_1840_7">Win</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_60_9">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1470_19" HREF="terminal_interface-curses__adb.htm#ref_1841_7">Line</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1471_19" HREF="terminal_interface-curses__adb.htm#ref_1842_7">Column</A></FONT> : <b>in</b> Column_Position;
+ <FONT COLOR=red><A NAME="ref_1472_19" HREF="terminal_interface-curses__adb.htm#ref_1843_7">Str</A></FONT> : <b>out</b> String;
Len : <b>in</b> Integer := -1);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_getstr.3x.html">mvwgetnstr()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: mvwgetstr()</EM></FONT>
<FONT COLOR=green><EM>-- Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set</EM></FONT>
- <b>type</b> Soft_Label_Key_Format <b>is</b> (<FONT COLOR=red><A NAME="1485_35">Three_Two_Three</A></FONT>,
- <FONT COLOR=red><A NAME="1486_35">Four_Four</A></FONT>,
- <FONT COLOR=red><A NAME="1487_35">PC_Style</A></FONT>, <FONT COLOR=green><EM>-- ncurses specific</EM></FONT>
- <FONT COLOR=red><A NAME="1488_9"> </A></FONT> PC_Style_With_Index); <FONT COLOR=green><EM>-- "</EM></FONT>
- <b>type</b> <FONT COLOR=red><A NAME="1489_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. <FONT COLOR=red><A NAME="1489_49">12</A></FONT>;
+ <b>type</b> Soft_Label_Key_Format <b>is</b> (<FONT COLOR=red><A NAME="ref_1486_35">Three_Two_Three</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_1487_35">Four_Four</A></FONT>,
+ <FONT COLOR=red><A NAME="ref_1488_35">PC_Style</A></FONT>, <FONT COLOR=green><EM>-- ncurses specific</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1489_9"> </A></FONT> PC_Style_With_Index); <FONT COLOR=green><EM>-- "</EM></FONT>
+ <b>type</b> <FONT COLOR=red><A NAME="ref_1490_9">Label_Number</A></FONT> <b>is</b> <b>new</b> Positive <b>range</b> 1 .. <FONT COLOR=red><A NAME="ref_1490_49">12</A></FONT>;
<b>type</b> Label_Justification <b>is</b> (Left, Centered, Right);
<FONT COLOR=green><EM>-- #1A NAME="AFU_108"#2|</EM></FONT>
<b>pragma</b> Inline (Init_Soft_Label_Keys);
<FONT COLOR=green><EM>-- #1A NAME="AFU_109"#2|</EM></FONT>
- <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="1499_34">Label</A></FONT> : <b>in</b> Label_Number;
- <FONT COLOR=red><A NAME="1500_34">Text</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1489_9">String</A>;
+ <b>procedure</b> Set_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1500_34" HREF="terminal_interface-curses__adb.htm#ref_1862_34">Label</A></FONT> : <b>in</b> Label_Number;
+ <FONT COLOR=red><A NAME="ref_1501_34" HREF="terminal_interface-curses__adb.htm#ref_1863_34">Text</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1490_9">String</A>;
Fmt : <b>in</b> Label_Justification := Left);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_set()</A></EM></FONT>
<FONT COLOR=green><EM>-- We don't inline this procedure</EM></FONT>
<b>pragma</b> Inline (Refresh_Soft_Label_Keys_Without_Update);
<FONT COLOR=green><EM>-- #1A NAME="AFU_112"#2|</EM></FONT>
- <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="1516_34">Label</A></FONT> : <b>in</b> Label_Number;
+ <b>procedure</b> Get_Soft_Label_Key (<FONT COLOR=red><A NAME="ref_1517_34" HREF="terminal_interface-curses__adb.htm#ref_1901_34">Label</A></FONT> : <b>in</b> Label_Number;
Text : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_label()</A></EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_117"#2|</EM></FONT>
<b>procedure</b> Switch_Soft_Label_Key_Attributes
- (<FONT COLOR=red><A NAME="1543_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set;
+ (<FONT COLOR=red><A NAME="ref_1544_7" HREF="terminal_interface-curses__adb.htm#ref_1949_7">Attr</A></FONT> : <b>in</b> Character_Attribute_Set;
On : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attron()</A></EM></FONT>
<FONT COLOR=green><EM>-- AKA: slk_attroff()</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_118"#2|</EM></FONT>
<b>procedure</b> Set_Soft_Label_Key_Attributes
- (<FONT COLOR=red><A NAME="1551_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#297_9">Character_Attribute_Set</A> := Normal_Video;
+ (<FONT COLOR=red><A NAME="ref_1552_7" HREF="terminal_interface-curses__adb.htm#ref_1973_7">Attr</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_299_9">Character_Attribute_Set</A> := Normal_Video;
Color : <b>in</b> Color_Pair := Color_Pair'First);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_slk.3x.html">slk_attrset()</A></EM></FONT>
<b>pragma</b> Inline (Set_Soft_Label_Key_Attributes);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_122"#2|</EM></FONT>
- <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="1580_26">Key</A></FONT> : <b>in</b> Special_Key_Code;
+ <b>procedure</b> Enable_Key (<FONT COLOR=red><A NAME="ref_1581_26" HREF="terminal_interface-curses__adb.htm#ref_2019_26">Key</A></FONT> : <b>in</b> Special_Key_Code;
Enable : <b>in</b> Boolean := True);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/keyok.3x.html">keyok()</A></EM></FONT>
<b>pragma</b> Inline (Enable_Key);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_123"#2|</EM></FONT>
- <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="1590_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#76_12">String</A>;
+ <b>procedure</b> Define_Key (<FONT COLOR=red><A NAME="ref_1591_26" HREF="terminal_interface-curses__adb.htm#ref_2032_26">Definition</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_78_12">String</A>;
Key : <b>in</b> Special_Key_Code);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/define_key.3x.html">define_key()</A></EM></FONT>
<b>pragma</b> Inline (Define_Key);
<FONT COLOR=green><EM>--</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_124"#2|</EM></FONT>
- <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="1604_24">Key</A></FONT> : <b>in</b> Real_Key_Code;
+ <b>procedure</b> Key_Name (<FONT COLOR=red><A NAME="ref_1605_24" HREF="terminal_interface-curses__adb.htm#ref_144_24">Key</A></FONT> : <b>in</b> Real_Key_Code;
Name : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">keyname()</A></EM></FONT>
<FONT COLOR=green><EM>-- The external name for a real keystroke.</EM></FONT>
<FONT COLOR=green><EM>-- We don't inline this routine</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_126"#2|</EM></FONT>
- <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="1616_26">Ch</A></FONT> : <b>in</b> Attributed_Character;
+ <b>procedure</b> Un_Control (<FONT COLOR=red><A NAME="ref_1617_26" HREF="terminal_interface-curses__adb.htm#ref_2048_26">Ch</A></FONT> : <b>in</b> Attributed_Character;
Str : <b>out</b> String);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_util.3x.html">unctrl()</A></EM></FONT>
<b>pragma</b> Import (C, Start_Color, "start_color");
<FONT COLOR=green><EM>-- #1A NAME="AFU_141"#2|</EM></FONT>
- <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="1706_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Redefinable_Color_Pair</A>;
- <FONT COLOR=red><A NAME="1707_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
+ <b>procedure</b> Init_Pair (<FONT COLOR=red><A NAME="ref_1707_25" HREF="terminal_interface-curses__adb.htm#ref_2175_25">Pair</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Redefinable_Color_Pair</A>;
+ <FONT COLOR=red><A NAME="ref_1708_25" HREF="terminal_interface-curses__adb.htm#ref_2176_25">Fore</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
Back : <b>in</b> Color_Number);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_pair()</A></EM></FONT>
<b>pragma</b> Inline (Init_Pair);
<FONT COLOR=green><EM>-- #1A NAME="AFU_142"#2|</EM></FONT>
- <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="1713_28">Pair</A></FONT> : <b>in</b> Color_Pair;
- <FONT COLOR=red><A NAME="1714_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A>;
+ <b>procedure</b> Pair_Content (<FONT COLOR=red><A NAME="ref_1714_28" HREF="terminal_interface-curses__adb.htm#ref_2196_28">Pair</A></FONT> : <b>in</b> Color_Pair;
+ <FONT COLOR=red><A NAME="ref_1715_28" HREF="terminal_interface-curses__adb.htm#ref_2197_28">Fore</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A>;
Back : <b>out</b> Color_Number);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">pair_content()</A></EM></FONT>
<b>pragma</b> Inline (Pair_Content);
<b>pragma</b> Inline (Has_Colors);
<FONT COLOR=green><EM>-- #1A NAME="AFU_144"#2|</EM></FONT>
- <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="1725_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">Color_Number</A>;
- <FONT COLOR=red><A NAME="1726_26">Red</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
- <FONT COLOR=red><A NAME="1727_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
+ <b>procedure</b> Init_Color (<FONT COLOR=red><A NAME="ref_1726_26" HREF="terminal_interface-curses__adb.htm#ref_2228_26">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
+ <FONT COLOR=red><A NAME="ref_1727_26" HREF="terminal_interface-curses__adb.htm#ref_2229_26">Red</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+ <FONT COLOR=red><A NAME="ref_1728_26" HREF="terminal_interface-curses__adb.htm#ref_2230_26">Green</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
Blue : <b>in</b> RGB_Value);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">init_color()</A></EM></FONT>
<b>pragma</b> Inline (Init_Color);
<b>pragma</b> Inline (Can_Change_Color);
<FONT COLOR=green><EM>-- #1A NAME="AFU_146"#2|</EM></FONT>
- <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="1738_29">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#293_9">Color_Number</A>;
- <FONT COLOR=red><A NAME="1739_29">Red</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
- <FONT COLOR=red><A NAME="1740_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#293_9">RGB_Value</A>;
+ <b>procedure</b> Color_Content (<FONT COLOR=red><A NAME="ref_1739_29" HREF="terminal_interface-curses__adb.htm#ref_2257_29">Color</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">Color_Number</A>;
+ <FONT COLOR=red><A NAME="ref_1740_29" HREF="terminal_interface-curses__adb.htm#ref_2258_29">Red</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
+ <FONT COLOR=red><A NAME="ref_1741_29" HREF="terminal_interface-curses__adb.htm#ref_2259_29">Green</A></FONT> : <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_295_9">RGB_Value</A>;
Blue : <b>out</b> RGB_Value);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_color.3x.html">color_content()</A></EM></FONT>
<b>pragma</b> Inline (Color_Content);
<b>pragma</b> Inline (Reset_Terminal_State);
<b>type</b> Stdscr_Init_Proc <b>is</b> <b>access</b>
- <b>function</b> (<FONT COLOR=red><A NAME="1775_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Window</A>;
- Columns :<A HREF="terminal_interface-curses__ads.htm#1773_9"> </A>Column_Count) <b>return</b> Integer;
+ <b>function</b> (<FONT COLOR=red><A NAME="ref_1776_17">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Window</A>;
+ Columns :<A HREF="terminal_interface-curses__ads.htm#ref_1774_9"> </A>Column_Count) <b>return</b> Integer;
<b>pragma</b> Convention (C, Stdscr_Init_Proc);
<FONT COLOR=green><EM>-- N.B.: the return value is actually ignored, but it seems to be</EM></FONT>
<FONT COLOR=green><EM>-- a good practice to return 0 if you think all went fine</EM></FONT>
<FONT COLOR=green><EM>-- and -1 otherwise.</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_151"#2|</EM></FONT>
- <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="1783_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#1773_9">Integer</A>;
+ <b>procedure</b> Rip_Off_Lines (<FONT COLOR=red><A NAME="ref_1784_29" HREF="terminal_interface-curses__adb.htm#ref_2337_29">Lines</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses__ads.htm#ref_1774_9">Integer</A>;
Proc : <b>in</b> Stdscr_Init_Proc);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/curs_kernel.3x.html">ripoffline()</A></EM></FONT>
<FONT COLOR=green><EM>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</EM></FONT>
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<b>type</b> Transform_Direction <b>is</b> (From_Screen, To_Screen);
<b>procedure</b> Transform_Coordinates
- (<FONT COLOR=red><A NAME="1809_7">W</A></FONT> : <b>in</b> Window := Standard_Window;
- <FONT COLOR=red><A NAME="1810_7">Line</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#60_9">Line_Position</A>;
- <FONT COLOR=red><A NAME="1811_7">Column</A></FONT> : <b>in</b> <b>out</b> Column_Position;
+ (<FONT COLOR=red><A NAME="ref_1810_7" HREF="terminal_interface-curses__adb.htm#ref_2422_7">W</A></FONT> : <b>in</b> Window := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1811_7" HREF="terminal_interface-curses__adb.htm#ref_2423_7">Line</A></FONT> : <b>in</b> <b>out</b> <A HREF="terminal_interface-curses__ads.htm#ref_61_9">Line_Position</A>;
+ <FONT COLOR=red><A NAME="ref_1812_7" HREF="terminal_interface-curses__adb.htm#ref_2424_7">Column</A></FONT> : <b>in</b> <b>out</b> Column_Position;
Dir : <b>in</b> Transform_Direction := From_Screen);
<FONT COLOR=green><EM>-- This procedure transforms screen coordinates into coordinates relative</EM></FONT>
<FONT COLOR=green><EM>-- to the window and vice versa, depending on the Dir parameter.</EM></FONT>
<b>pragma</b> Inline (Use_Default_Colors);
<FONT COLOR=green><EM>-- #1A NAME="AFU_155"#2|</EM></FONT>
- <b>procedure</b> Assume_Default_Colors (<FONT COLOR=red><A NAME="1830_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#276_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#283_4">Default_Color</A>;
+ <b>procedure</b> Assume_Default_Colors (<FONT COLOR=red><A NAME="ref_1831_37" HREF="terminal_interface-curses__adb.htm#ref_2460_37">Fore</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_278_9">Color_Number</A> := <A HREF="terminal_interface-curses__ads.htm#ref_285_4">Default_Color</A>;
Back : Color_Number := Default_Color);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/dft_fgbg.3x.html">assume_default_colors()</A></EM></FONT>
<b>pragma</b> Inline (Assume_Default_Colors);
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<FONT COLOR=green><EM>-- #1A NAME="AFU_162"#2|</EM></FONT>
- <b>procedure</b> Resize (<FONT COLOR=red><A NAME="1898_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#62_12">Window</A> := Standard_Window;
- <FONT COLOR=red><A NAME="1899_22">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#64_12">Line_Count</A>;
+ <b>procedure</b> Resize (<FONT COLOR=red><A NAME="ref_1899_22" HREF="terminal_interface-curses__adb.htm#ref_2551_22">Win</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_63_12">Window</A> := Standard_Window;
+ <FONT COLOR=red><A NAME="ref_1900_22" HREF="terminal_interface-curses__adb.htm#ref_2552_22">Number_Of_Lines</A></FONT> : <A HREF="terminal_interface-curses__ads.htm#ref_65_12">Line_Count</A>;
Number_Of_Columns : Column_Count);
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/wresize.3x.html">wresize()</A></EM></FONT>
<FONT COLOR=green><EM>-- The next constants are generated and may be different on your</EM></FONT>
<FONT COLOR=green><EM>-- architecture.</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
- <FONT COLOR=red><A NAME="1910_4">Offset_maxy</A></FONT> : <b>constant</b> Natural := 2; <FONT COLOR=green><EM>-- short</EM></FONT>
- <FONT COLOR=red><A NAME="1911_4">Offset_maxx</A></FONT> : <b>constant</b> Natural := 3; <FONT COLOR=green><EM>-- short</EM></FONT>
- <FONT COLOR=red><A NAME="1912_4">Offset_begy</A></FONT> : <b>constant</b> Natural := 4; <FONT COLOR=green><EM>-- short</EM></FONT>
- <FONT COLOR=red><A NAME="1913_4">Offset_begx</A></FONT> : <b>constant</b> Natural := 5; <FONT COLOR=green><EM>-- short</EM></FONT>
- <FONT COLOR=red><A NAME="1914_4">Offset_cury</A></FONT> : <b>constant</b> Natural := 0; <FONT COLOR=green><EM>-- short</EM></FONT>
- <FONT COLOR=red><A NAME="1915_4">Offset_curx</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- short</EM></FONT>
- <FONT COLOR=red><A NAME="1916_4">Offset_yoffset</A></FONT> : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>-- short</EM></FONT>
- <FONT COLOR=red><A NAME="1917_4">Offset_pary</A></FONT> : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>-- int</EM></FONT>
- <FONT COLOR=red><A NAME="1918_4">Offset_parx</A></FONT> : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>-- int</EM></FONT>
- <FONT COLOR=red><A NAME="1919_4">Offset_notimeout</A></FONT> : <b>constant</b> Natural := 24; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1920_4">Offset_clear</A></FONT> : <b>constant</b> Natural := 25; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1921_4">Offset_leaveok</A></FONT> : <b>constant</b> Natural := 26; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1922_4">Offset_scroll</A></FONT> : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1923_4">Offset_idlok</A></FONT> : <b>constant</b> Natural := 28; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1924_4">Offset_idcok</A></FONT> : <b>constant</b> Natural := 29; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1925_4">Offset_immed</A></FONT> : <b>constant</b> Natural := 30; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1926_4">Offset_sync</A></FONT> : <b>constant</b> Natural := 31; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1927_4">Offset_use_keypad</A></FONT> : <b>constant</b> Natural := 32; <FONT COLOR=green><EM>-- char</EM></FONT>
- <FONT COLOR=red><A NAME="1928_4">Sizeof_bool</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- bool</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1911_4">Offset_maxy</A></FONT> : <b>constant</b> Natural := 2; <FONT COLOR=green><EM>-- short</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1912_4">Offset_maxx</A></FONT> : <b>constant</b> Natural := 3; <FONT COLOR=green><EM>-- short</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1913_4">Offset_begy</A></FONT> : <b>constant</b> Natural := 4; <FONT COLOR=green><EM>-- short</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1914_4">Offset_begx</A></FONT> : <b>constant</b> Natural := 5; <FONT COLOR=green><EM>-- short</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1915_4">Offset_cury</A></FONT> : <b>constant</b> Natural := 0; <FONT COLOR=green><EM>-- short</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1916_4">Offset_curx</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- short</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1917_4">Offset_yoffset</A></FONT> : <b>constant</b> Natural := 36; <FONT COLOR=green><EM>-- short</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1918_4">Offset_pary</A></FONT> : <b>constant</b> Natural := 13; <FONT COLOR=green><EM>-- int</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1919_4">Offset_parx</A></FONT> : <b>constant</b> Natural := 12; <FONT COLOR=green><EM>-- int</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1920_4">Offset_notimeout</A></FONT> : <b>constant</b> Natural := 24; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1921_4">Offset_clear</A></FONT> : <b>constant</b> Natural := 25; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1922_4">Offset_leaveok</A></FONT> : <b>constant</b> Natural := 26; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1923_4">Offset_scroll</A></FONT> : <b>constant</b> Natural := 27; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1924_4">Offset_idlok</A></FONT> : <b>constant</b> Natural := 28; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1925_4">Offset_idcok</A></FONT> : <b>constant</b> Natural := 29; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1926_4">Offset_immed</A></FONT> : <b>constant</b> Natural := 30; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1927_4">Offset_sync</A></FONT> : <b>constant</b> Natural := 31; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1928_4">Offset_use_keypad</A></FONT> : <b>constant</b> Natural := 32; <FONT COLOR=green><EM>-- char</EM></FONT>
+ <FONT COLOR=red><A NAME="ref_1929_4">Sizeof_bool</A></FONT> : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- bool</EM></FONT>
Offset_XY : <b>constant</b> Natural := 1; <FONT COLOR=green><EM>-- int</EM></FONT>
- <b>type</b> Curses_Bool <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#1930_9">Interfaces</A>.C.char'Size;
+ <b>type</b> Curses_Bool <b>is</b> <b>mod</b> 2 ** <A HREF="terminal_interface-curses__ads.htm#ref_1931_9">Interfaces</A>.C.char'Size;
Curses_Bool_False : <b>constant</b> Curses_Bool := 0;
<b>end</b> Terminal_Interface.Curses;
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>terminal_interface.ads</TITLE></HEAD>
<BODY>
<HR><DIV ALIGN="center"><H1> File : terminal_interface.ads </H1></DIV><HR>
<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<b>package</b> <FONT COLOR=red><A NAME="41_9">Terminal_Interface</A></FONT> <b>is</b>
- <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A>);
+<b>package</b> <FONT COLOR=red><A NAME="ref_41_9">Terminal_Interface</A></FONT> <b>is</b>
+ <b>pragma</b> Pure (<A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>);
<FONT COLOR=green><EM>--</EM></FONT>
<FONT COLOR=green><EM>-- Everything is in the child units</EM></FONT>
<FONT COLOR=green><EM>--</EM></FONT>
-<b>end</b> <A HREF="terminal_interface__ads.htm#41_9">Terminal_Interface</A><A HREF="terminal_interface__ads.htm#41_9">;</A>
+<b>end</b> <A HREF="terminal_interface__ads.htm#ref_41_9">Terminal_Interface</A>;
</PRE></BODY></HTML>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<!--
- $Id: announce.html,v 1.46 2004/01/18 01:28:19 tom Exp $
+ $Id: announce.html,v 1.49 2005/10/09 14:18:35 tom Exp $
-->
<HTML>
<HEAD>
-<TITLE>Announcing ncurses 5.4</TITLE>
+<TITLE>Announcing ncurses 5.5</TITLE>
<link rev=made href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>Announcing ncurses 5.4</H1>
+<H1>Announcing ncurses 5.5</H1>
The ncurses (new curses) library is a free software emulation of
curses in System V Release 4.0, and more. It uses terminfo format,
and has all the other SYSV-curses enhancements over BSD curses.<P>
In mid-June 1995, the maintainer of 4.4BSD curses declared that he
-considered 4.4BSD curses obsolete, and is encouraging the keepers of
-Unix releases such as BSD/OS, freeBSD and netBSD to switch over to
+considered 4.4BSD curses obsolete, and encouraged the keepers of
+Unix releases such as BSD/OS, FreeBSD and NetBSD to switch over to
ncurses.<P>
The ncurses code was developed under GNU/Linux.
<H1>Release Notes</H1>
-This release is designed to be upward compatible from ncurses 5.0 and 5.3;
+This release is designed to be upward compatible from ncurses 5.0 through 5.4;
very few applications will require recompilation, depending on the platform.
-These are the highlights from the change-log since ncurses 5.3 release.
+These are the highlights from the change-log since ncurses 5.4 release.
<p>
Interface changes:
<ul>
- <li>add the remaining functions for X/Open curses wide-character
- support.
- <ul>
- <li>pecho_wchar()
- <li>slk_wset()
- </ul>
- These are only available if the library is configured using the
- <kbd>--enable-widec</kbd> option.
-
- <li>write <code>getyx()</code> and related 2-return macros in terms of
- <code>getcury()</code>,
- <code>getcurx()</code>, etc.
-
- <li>simplify ifdef for <code>bool</code> declaration in curses.h
-
- <li>modify ifdef's in curses.h that disabled use of
- <code>__attribute__()</code> for g++, since recent versions
- implement the cases which ncurses uses.
-
- <li>add <code>key_defined()</code> function, to tell which keycode a
- string is bound to.
+ <li>terminfo installs "xterm-new" as "xterm" entry rather than
+ "xterm-old" (aka xterm-r6).
+
+ <li>terminfo data is installed using the tic -x option (few systems
+ still use ncurses 4.2).
+
+ <li>modify C++ binding to work with newer C++ compilers by providing
+ initializers and using modern casts. Old-style header names are
+ still used in this release to allow compiling with not-so-old
+ compilers.
+
+ <li>modify parameter type in c++ binding for insch() and mvwinsch() to
+ be consistent with underlying ncurses library (was char, is chtype).
+
+ <li>change NCursesWindow::err_handler() to a virtual function.
+
+ <li>form and menu libraries now work with wide-character data.
+ Applications which bypassed the form library and manipulated the
+ FIELD.buf data directly will not work properly with libformw,
+ since that no longer points to an array of char. The
+ set_field_buffer() and field_buffer() functions translate to/from
+ the actual field data.
+
+
+ <li>add symbol to curses.h which can be used to suppress include of
+ stdbool.h, e.g.,
+ <pre>
+ #define NCURSES_ENABLE_STDBOOL_H 0
+ #include <curses.h>
+ </pre>
+
+ <li>change SP->_current_attr to a pointer, adjust ifdef's to ensure
+ that libtinfo.so and libtinfow.so have the same ABI. The reason
+ for this is that the corresponding data which belongs to the
+ upper-level ncurses library has a different size in each model.
+
+ <li>winnstr() now returns multibyte character strings for the
+ wide-character configuration.
+
+ <li>assume_default_colors() no longer requires that
+ use_default_colors() be called first.
+
+ <li>data_ahead() now works with wide-characters.
+
+ <li>slk_set() and slk_wset() now accept and store multibyte or
+ multicolumn characters.
+
+ <li>start_color() now returns OK if colors have
+ already been started.
+ start_color() also returns ERR if it cannot allocate memory.
+
+ <li>pair_content() now returns -1 for consistency with init_pair()
+ if it corresponds to the default-color.
+
+ <li>unctrl() now returns null if its parameter does not correspond
+ to an unsigned char.
+
</ul>
New features and improvements:
<ul>
<li>library
<ul>
- <li>implement logic in lib_mouse.c to handle position reports which
- are generated when XFree86 xterm is initialized with private
- modes 1002 or 1003. These are returned to the application as the
- REPORT_MOUSE_POSITION mask, which was not implemented.
- <li>modify soft-key initialization to use A_REVERSE if A_STANDOUT
- would not be shown when colors are used, i.e., if ncv#1 is set in
- the terminfo as is done in "screen".
- <li>add configure option for FreeBSD sysmouse, --with-sysmouse, and
- implement library support for that.
+ <li>environment variable NCURSES_NO_UTF8_ACS supports
+ miscellaneous terminal emulators which ignore alternate
+ character set escape sequences when in UTF-8 mode.
+
+ <li>modify initialization of key lookup table so that if an extended
+ capability (tic -x) string is defined, and its name begins with 'k',
+ ncurses will automatically treat it as a key.
+
+ <li>change GPM initialization, using dl library to load it
+ dynamically at runtime.
+
+ <li>form, menu and panel libraries support debug-tracing.
+
</ul>
- <li>programs:
+ <li>add NCURSES-Programming-HOWTO.html by Pradeep Padala
+ (see http://tldp.org/HOWTO/NCURSES-Programming-HOWTO/).
- <ul>
- <li>tack:
+ <li>programs:
+ <li>infocmp:
<ul>
- <li>allow it to run from fallback terminfo data.
- <li>reset colors after each color test, correct a place
- where <code>exit_standout_mode</code> was used instead of
- <code>exit_attribute_mode</code>.
- <li>improve <code>bce</code> test by making it set colors other
- than black on white.
+ <li>The -i option now matches 8-bit controls against its table
+ entries, e.g., so it can analyze the xterm-8bit entry.
+
+ <li>add "-x" option to infocmp like tic's "-x", for use in "-F"
+ comparisons. This modifies infocmp to only report extended
+ capabilities if the -x option is given, making this more
+ consistent with tic. Some scripts may break, since infocmp
+ previous gave this information without an option.
+
</ul>
<li>tic:
<ul>
- <li>handle a case where an entry has no
- description, and capabilities begin on the same line as the entry
- name.
- <li>allow a terminfo entry with a leading 2-character name.
- <li>improved warnings when suppressing items to fit in termcap's
- 1023-byte limit.
- <li>add check for multiple "tc=" clauses in a termcap.
- <li>correct logic for resolving "use=" clauses
- allow infocmp and tic to show cancelled capabilities.
- <li>check for incomplete line-drawing character mapping.
- <li>check for missing/empty/illegal terminfo name.
- </ul>
- <li>tput:
- <ul>
- <li>modify tput to use the same parameter analysis as tparm() does,
- to provide for user-defined strings, e.g., for xterm title, a
- corresponding capability might be
- title=\E]2;%p1%s^G,
+ <li>modify termcap-parsing to retain 2-character aliases at the
+ beginning of an entry if the "-x" option is used in tic.
+
+ <li>filter out long extended names when translating to termcap
+ format. Only two characters are permissible for termcap
+ capability names.
+
+ <li>correct translation of "%%" in terminfo format to termcap,
+ e.g., using "tic -C".
+
+ <li>modify the "-c -v" options to ignore delays when comparing
+ strings. Also modify it to ignore a canceled sgr string,
+ e.g., for terminals which cannot properly combine attributes
+ in one control sequence.
+
+ <li>add a check for improperly ended strings, i.e., where a
+ following line begins in column 1.
+
+ <li>add a check in tic for terminfo entries having an sgr0 but no
+ sgr string. This confuses Tru64 and HPUX curses when combined
+ with color, e.g., making them leave line-drawing characters in
+ odd places.
+
+ <li>add check (with debug configuration) that provides about the
+ runtime changes that would be made to sgr0 for termcap
+ applications.
+
</ul>
<li>tset:
<ul>
- <li>use the system's default values for CKILL and other default
- control characters.
- <li>correct interchanged defaults for kill and interrupt
- characters, which caused it to report unnecessarily.
+
+ <li>add -c and -w options to allow user to suppress ncurses'
+ resizing of the terminal emulator window in the special case
+ where it is not able to detect the true size.
+
</ul>
- </ul>
</ul>
Major bug fixes:
<ul>
- <li>prevent recursion in wgetch() via wgetnstr() if the connection
- cannot be switched between cooked/raw modes because it is not a TTY.
- <li>correct a case in _nc_remove_string(), used by
- <code>define_key()</code>, to avoid infinite loop if the given string
- happens to be a substring of other strings which are assigned to keys.
+ <li>improve logic in tgetent() which adjusts the termcap "me" string
+ to work with ISO-2022 string used in xterm-new.
+ This is a feature that was incompletely implemented in ncurses 5.3.
+ ncurses attempts to provide termcap clients with the portion of
+ the sgr0 (termcap "me") string that does not reset line-drawing.
- <li>modify logic of acsc to use the original character if no mapping is
- defined, rather than a null.
+ <li>cells in the WINDOW which are continuations of a multicolumn
+ character are encoded differently, making repainting more
+ reliable.
- <li>several improvements for handling multi-cell display of wide
- characters.
- <ul>
- <li>modify setcchar() to allow converting control characters to complex
- characters.
- <li>correct handling of multibyte characters in waddch_literal() which
- force wrapping because they are started too late on the line.
- <li>modify setcchar() to allow for wchar_t input strings that have
- more than one spacing character.
- </ul>
+ <li>amend change to setupterm() in ncurses 5.4 (20030405) which would
+ reuse the value of cur_term if the same output was selected. This
+ now reuses it only when setupterm() is called from tgetent(),
+ which has no notion of separate SCREENs. Note that tgetent() must
+ be called after initscr() or newterm() to use this feature.
- <li>other fixes for wide-character support:
- <ul>
- <li>rewrote lib_acs.c to allow PutAttrChar() to decide how to render
- alternate-characters, i.e., to work with Linux console and UTF-8
- locale.
- <li>implement a workaround so that line-drawing works with screen's
- crippled UTF-8 support (tested with 3.9.13). This only works with
- the wide-character support (--enable-widec); the normal library
- will simply suppress line-drawing when running in a UTF-8 locale in
- screen.
- <li>corrections to lib_get_wstr.c:
- <ul>
- <li>null-terminate buffer passed to setcchar(), which occasionally
- failed.
- <li>map special characters such as erase- and kill-characters into
- key-codes so those will work as expected even if they are not
- mentioned in the terminfo.
- </ul>
- </ul>
+ <li>make setcchar() now works when its wchar_t* parameter is
+ pointing to a string which contains more data than can be converted.
- <li>modify <code>setupterm()</code> to check if the terminfo and
- terminal-modes have already been read. This ensures that it does not
- reinvoke <code>def_prog_mode()</code> when an application calls more
- than one function, such as <code>tgetent()</code> and
- <code>initscr()</code>.
+ <li>win_wchnstr() now works for more than one cell.
- <li>fix form_driver() cases for REQ_CLR_EOF, REQ_CLR_EOL, REQ_DEL_CHAR,
- REQ_DEL_PREV and REQ_NEW_LINE, which did not ensure the cursor was at
- the editing position before making modifications.
+ <li>resizeterm() now processes all levels of window hierarchy.
- <li>correct <code>keybound()</code>, which reported definitions in the
- wrong table, i.e., the list of definitions which are disabled by
- <code>keyok()</code>.
+ <li>disable GPM mouse support when $TERM happens to be prefixed with
+ "xterm". Gpm_Open() would otherwise assert that it can deal with
+ mouse events in this case.
- <li>fixes related to safe_sprintf.c:
- <ul>
- <li>correct an allocation size in safe_sprintf.c for the "*" format
- code.
- <li>correct safe_sprintf.c to not return a null pointer if the format
- happens to be an empty string.
- <li>make return value from _nc_printf_string() consistent. Before,
- depending on whether --enable-safe-sprintf was used, it might not
- be cached for reallocating.
- </ul>
+ <li>add SP->_screen_acs_map[], used to ensure that mapping of missing
+ line-drawing characters is handled properly. For example, ACS_DARROW
+ is absent from xterm-new, and it was coincidentally displayed the
+ same as ACS_BTEE.
- <li>other low-level improvements to the optimization code include:
- <ul>
- <li>if the output is a socket or other non-tty device, use 1
- millisecond
- for the cost in mvcur; previously it was 9 milliseconds because the
- baudrate was not known.
- <li>modify lib_getch.c to avoid recursion via wgetnstr() when the
- input
- is not a tty and consequently mode-changes do not work.
- <li>fix several places in tack/pad.c which tested and used the
- parameter- and parameterless strings inconsistently.
- <li>change several tputs() calls in scrolling code to use putp(), to
- enable padding which may be needed for some terminals.
- <li>improve mvcur() by checking if it is safe to move when video
- attributes are set (msgr), and if not, reset/restore attributes
- within that function rather than doing it separately in the GoTo()
- function in tty_update.c.
- <li>use tputs() rather than putp() in a few cases in tty_update.c
- since the corresponding delays are proportional to the number of
- lines affected: repeat_char, clr_eos, change_scroll_region.
- </ul>
-
- <li>correct line/column reference in adjust_window(), needed to make
- special windows such as curscr track properly when resizing.
-
- <li>fix a potential recursion between napms() and _nc_timed_wait()
-
- <li>rewrote lib_insch.c, combining it with lib_insstr.c so both handle
- tab and other control characters consistently.
-
- <li>do not try to open gpm mouse driver if standard output is not a
- tty; the gpm library does not make this check.
</ul>
Portability:
<ul>
<li>new options:
<dl>
- <dt>--with-abi-version option.
- <dd>addresses platforms where packagers have diverged from
- ncurses ABI numbering.
- <dt>--with-manpage-format=catonly
- <dd>addresses
- behavior of BSDI, allow install of man+cat files on NetBSD,
- whose behavior has diverged by requiring both to be present.
- <dt>--with-manpage-aliases
- <dd>extends
- "--with-manpage-aliases" to provide the option of generating
- ".so" files rather than symbolic links for manpage aliases.
- <dt>--with-rel-version
- <dd>workaround to force
- libtool on Darwin generate the "same" library names as with
- the "--with-shared" option. The Darwin ld program does not
- work well with a zero as the minor-version value.
- <dt>--with-trace
- <dd>simplifies defining TRACE to incorporate trace() in libraries.
+ <dt>--enable-largefile
+ <dd>set compiler and linker flags to use largefile support.
+
+ <dt>--enable-ext-colors
+ <dd>Allow encoding of 256 foreground
+ and background colors, e.g., with the xterm-256color or
+ xterm-88color terminfo entries.
+ This requires ABI 6 because it changes the size of cchar_t.
+
+ <dt>--enable-ext-mouse
+ <dd>This defines NCURSES_MOUSE_VERSION 2, and modifies the encoding of
+ mouse events to support wheel mice, which may transmit buttons
+ 4 and 5. This works with xterm and similar terminal
+ emulators.
+ This requires ABI 6 because it changes the encoding of
+ mouse events.
+
+ <dt>--with-chtype
+ <dd>overriding of the non-LP64 model's use of chtype
+
+ <dt>--with-mmask-t
+ <dd>overriding of the non-LP64 model's use of mmask_t
+
+ <dt>--without-xterm-new
+ <dd>Installs "xterm-old" as the "xterm" entry of the terminfo
+ database.
+
</dl>
-
+
+ <li>The --with-termlib option now accepts a value which sets
+ the name of the terminfo library. This would allow a packager to
+ build libtinfow.so renamed to coincide with libtinfo.so
+
<li>fixes/improvements for cross-compiling:
-
- <ul>
- <li>allow BUILD_CC and related configure script variables to be
- overridden from the environment.
- <li>use AC_CHECK_TOOL to get proper values for AR and LD for cross
- compiling.
- <li>use <code>$cross_compiling</code> variable in configure script
- rather than comparing <code>$host_alias</code> and
- <code>$target</code> alias, since "host" is traditionally misused
- in autoconf to refer to the target platform.
- <li>modify run_tic.in to avoid using wrong shared libraries when
- cross-compiling.
- </ul>
-
- <li>fixes for Mac OS X:
- <ul>
- <li>fix a redefinition of <code>$RANLIB</code> in the configure
- script when libtool is used.
- <li>modify MKlib_gen.sh to avoid passing "#" tokens through the C
- preprocessor. This works around Mac OS X's preprocessor, which
- insists on adding a blank on each side of the token.
- </ul>
-
- <li>workarounds for broken tools:
+
<ul>
- <li>add configure check for wchar_t and wint_t types, rather than
- rely on preprocessor definitions. Also work around for gcc
- <code>fixinclude</code> bug which creates a shadow copy of
- curses.h if it sees these symbols apparently typedef'd.
- <li>modify configure script to omit -Winline for gcc 3.3, since
- that feature is broken.
- <li>several script fixes to work around the ironically named
- <em>POSIXLY_CORRECT</em> feature of GNU sed 4.0.
- <li>modify configure script to avoid using "head -1", which does
- not work if POSIXLY_CORRECT (sic) is set.
- <li>update configure script to reflect fix for
- AC_PROG_GCC_TRADITIONAL, which is broken in autoconf 2.5x for Mac
- OS X 10.2.3.
- <li>repair check for missing C++ compiler, which is broken in
- autoconf 2.5x by hardcoding it to g++.
+ <li>suppress $suffix in misc/run_tic.sh when cross-compiling.
+ This allows cross-compiles to use the host's tic program to
+ handle the "make install.data" step.
+
+ <li>correct BUILD_CPPFLAGS substitution in ncurses/Makefile.in, to allow
+ cross-compiling from a separate directory tree.
+
</ul>
-
- <li>corrected ifdef's relating to configure check for wchar_t, etc.
- <li>remove configure script check to allow -Wconversion for older
- versions of gcc
- <li>modify configure script to accommodate libtool 1.5, as well as
- add an parameter to the "--with-libtool" option which can specify
- the pathname of libtool.
- <li>change several sed scripts to avoid using "\+" since it is not a
- BRE (basic regular expression). One instance caused terminfo.5 to
- be misformatted on FreeBSD.
- <li>use '%' as sed substitute delimiter in run_tic script to avoid
- problems with pathname delimiters such as ':' and '@'.
- <li>add -D_XOPEN_SOURCE=500 if needed when configuring with
- "--enable-widec", to get <code>mbstate_t</code> declaration on HPUX
- 11.11.
+
</ul>
<li>library:
<ul>
- <li>adjust include-options in CF_ETIP_DEFINES to avoid missing
- ncurses_dll.h, fixing special definitions that may be needed for
- etip.h.
- <li>modify CF_LIB_SUFFIX for Itanium releases of HP-UX, which use a
- ".so" suffix.
- <li>improve ifdef's to guard against redefinition of wchar_t and wint_t
- in curses.h.
- <li>remove an #undef for KEY_EVENT from curses.tail used in the
- experimental NCURSES_WGETCH_EVENTS feature. The #undef confuses
- Debian <code>dpkg</code>'s build script.
+
+ <li>add ifdef's for _LP64 in curses.h to avoid using wasteful
+ 64-bits for chtype and mmask_t, but add configure option
+ --disable-lp64 in case anyone used that configuration.
+
+ <li>modify C++ binding to use some C internal functions to make it
+ compile properly on Solaris (and other platforms).
+
+ <li>remove check in newwin() that prevents allocating windows that
+ extend beyond the screen (Solaris does this).
+
+ <li>check for <code>nl_langinfo(CODESET)</code>, use it if available.
+ This replaces ad hoc tests of environment variables to
+ check if the terminal is setup for UTF-8 encoding.
+ Applications which do not call <code>setlocale()</code>
+ should be corrected, to make them work properly with
+ UTF-8 encoding.
+ <br>
+ <strong>In particular, applications which assume (and
+ do not call <code>setlocale()</code>) that
+ Latin-1 codes are printable will no longer work in
+ a UTF-8 locale since the ad hoc check of environment
+ variables to see if the locale was UTF-8 is not used
+ when <code>nl_langinfo(CODESET)</code> is available.</strong>
+
+ <li>use setlocale() to query the program's current locale rather
+ than using getenv(). This supports applications which rely
+ upon legacy treatment of 8-bit characters when the locale is
+ not initialized.
+
</ul>
</ul>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: captoinfo.1m,v 1.17 2003/05/11 00:32:53 tom Exp @
+ * @Id: captoinfo.1m,v 1.18 2004/07/05 13:16:08 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG> <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
+<STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG> <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
has not mistakenly translated a completely unknown and
random capability and/or syntax error.
+
Nonstd Std From Terminfo
name name capability
-----------------------------------------------
GE ae XENIX exit_alt_charset_mode
GS as XENIX enter_alt_charset_mode
HM kh XENIX key_home
- LD kL XENIX key_dl
+ LD kL XENIX key_dl
PD kN XENIX key_npage
PN po XENIX prtr_off
PS pf XENIX prtr_on
bilities for forms drawing, designed to take advantage of
the IBM PC high-half graphics. They were as follows:
+
Cap Graphic
-----------------------------
G2 upper left
minfo but incompatible with the SVr4 format. The following
AIX extensions are automatically translated:
+
IBM XSI
-------------
ksel kslt
font0 s0ds
font1 s1ds
font2 s2ds
+
font3 s3ds
Additionally, the AIX <STRONG>box1</STRONG> capability will be automati-
- <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
+ <STRONG><A HREF="captoinfo.1m.html">captoinfo(1m)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
+<STRONG><A HREF="clear.1.html">clear(1)</A></STRONG> <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
- <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
+ <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG> <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_add_wchstr.3x,v 1.2 2003/12/27 18:53:41 tom Exp @
+ * @Id: curs_add_wchstr.3x,v 1.6 2005/01/02 01:28:49 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
riage return characters), they do not advance the current
cursor position, they do not expand other control charac-
ters to ^-escapes, and they truncate the string if it
- crosses the right margin, rather then wrapping it around
+ crosses the right margin, rather than wrapping it around
to the new line.
These routines end successfully on encountering a null
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>, <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addch.3x,v 1.22 2003/12/27 18:38:28 tom Exp @
+ * @Id: curs_addch.3x,v 1.23 2004/01/31 13:16:21 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+<STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG> <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
replacement for it (but see the EXTENSIONS section below).
The names are taken from VT100 nomenclature.
+
<EM>Name</EM> <EM>Default</EM> <EM>Description</EM>
--------------------------------------------------
ACS_BLOCK # solid square block
The <STRONG>TABSIZE</STRONG> variable is implemented in some versions of
curses, but is not part of X/Open curses.
+ If <EM>ch</EM> is a carriage return, the cursor is moved to the
+ beginning of the current row of the window. This is true
+ of other implementations, but is not documented.
+
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addchstr.3x,v 1.8 2003/12/27 18:51:24 tom Exp @
+ * @Id: curs_addchstr.3x,v 1.10 2005/05/15 16:17:07 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG> <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>addchstr</STRONG>, <STRONG>addchnstr</STRONG>, <STRONG>waddchstr</STRONG>, <STRONG>waddchnstr</STRONG>, <STRONG>mvaddchstr</STRONG>,
- <STRONG>mvaddchnstr</STRONG>, <STRONG>mvwaddchstr</STRONG>, <STRONG>mvwaddchnstr</STRONG> - add a string of
+ <STRONG>addchstr</STRONG>, <STRONG>addchnstr</STRONG>, <STRONG>waddchstr</STRONG>, <STRONG>waddchnstr</STRONG>, <STRONG>mvaddchstr</STRONG>,
+ <STRONG>mvaddchnstr</STRONG>, <STRONG>mvwaddchstr</STRONG>, <STRONG>mvwaddchnstr</STRONG> - add a string of
characters (and attributes) to a <STRONG>curses</STRONG> window
ters that will fit on the line.
The window cursor is <EM>not</EM> advanced, and these routines work
- faster than <STRONG>waddnstr</STRONG>. On the other hand, they don't per-
+ faster than <STRONG>waddnstr</STRONG>. On the other hand, they do not per-
form any kind of checking (such as for the newline,
- backspace, or carriage return characters), they don't
- advance the current cursor position, they don't expand
- other control characters to ^-escapes, and they truncate
- the string if it crosses the right margin, rather then
- wrapping it around to the new line.
+ backspace, or carriage return characters), they do not ad-
+ vance the current cursor position, they do not expand oth-
+ er control characters to ^-escapes, and they truncate the
+ string if it crosses the right margin, rather then wrap-
+ ping it around to the new line.
</PRE>
other than <STRONG>ERR</STRONG>") upon successful completion, unless other-
wise noted in the preceding routine descriptions.
+ X/Open does not define any error conditions. This imple-
+ mentation returns an error if the window pointer is null.
+
</PRE>
<H2>NOTES</H2><PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
- All these entry points are described in the XSI Curses
- standard, Issue 4.
+ These entry points are described in the XSI Curses stan-
+ dard, Issue 4.
</PRE>
- <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addstr.3x,v 1.11 2003/12/27 18:51:15 tom Exp @
+ * @Id: curs_addstr.3x,v 1.13 2005/05/15 16:17:14 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG> <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>addstr</STRONG>, <STRONG>addnstr</STRONG>, <STRONG>waddstr</STRONG>, <STRONG>waddnstr</STRONG>, <STRONG>mvaddstr</STRONG>, <STRONG>mvaddnstr</STRONG>,
- <STRONG>mvwaddstr</STRONG>, <STRONG>mvwaddnstr</STRONG> - add a string of characters to a
+ <STRONG>addstr</STRONG>, <STRONG>addnstr</STRONG>, <STRONG>waddstr</STRONG>, <STRONG>waddnstr</STRONG>, <STRONG>mvaddstr</STRONG>, <STRONG>mvaddnstr</STRONG>,
+ <STRONG>mvwaddstr</STRONG>, <STRONG>mvwaddnstr</STRONG> - add a string of characters to a
<STRONG>curses</STRONG> window and advance cursor
</PRE>
<H2>DESCRIPTION</H2><PRE>
- These routines write the characters of the (null-termi-
- nated) character string <EM>str</EM> on the given window. It is
- similar to calling <STRONG>waddch</STRONG> once for each character in the
+ These routines write the characters of the (null-terminat-
+ ed) character string <EM>str</EM> on the given window. It is simi-
+ lar to calling <STRONG>waddch</STRONG> once for each character in the
string. The four routines with <EM>n</EM> as the last argument
write at most <EM>n</EM> characters. If <EM>n</EM> is -1, then the entire
string will be added, up to the maximum number of charac-
success (the SVr4 manuals specify only "an integer value
other than <STRONG>ERR</STRONG>") upon successful completion.
+ X/Open does not define any error conditions. This imple-
+ mentation returns an error if the window pointer is null
+ or if the string pointer is null or if the corresponding
+ calls to <STRONG>waddch</STRONG> return an error.
+
</PRE>
<H2>NOTES</H2><PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
- All these entry points are described in the XSI Curses
- standard, Issue 4. The XSI errors EILSEQ and EOVERFLOW,
- associated with extended-level conformance, are not yet
+ All these entry points are described in the XSI Curses
+ standard, Issue 4. The XSI errors EILSEQ and EOVERFLOW,
+ associated with extended-level conformance, are not yet
detected.
- <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_addwstr.3x,v 1.3 2003/12/27 18:51:01 tom Exp @
+ * @Id: curs_addwstr.3x,v 1.6 2005/05/15 17:02:54 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG> <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>addwstr</STRONG>, <STRONG>addnwstr</STRONG>, <STRONG>waddwstr</STRONG>, <STRONG>waddnwstr</STRONG>, <STRONG>mvaddwstr</STRONG>,
+ <STRONG>addwstr</STRONG>, <STRONG>addnwstr</STRONG>, <STRONG>waddwstr</STRONG>, <STRONG>waddnwstr</STRONG>, <STRONG>mvaddwstr</STRONG>,
<STRONG>mvaddnwstr</STRONG>, <STRONG>mvwaddwstr</STRONG>, <STRONG>mvwaddnwstr</STRONG> - add a string of wide
characters to a <STRONG>curses</STRONG> window and advance cursor
</PRE>
<H2>DESCRIPTION</H2><PRE>
- These routines write the characters of the (null-termi-
- nated) <STRONG>wchar_t</STRONG>character string <EM>wstr</EM> on the given window.
- It is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t
- in the string, then calling <STRONG>wadd_wch</STRONG> for the resulting
+ These routines write the characters of the (null-terminat-
+ ed) <STRONG>wchar_t</STRONG> character string <EM>wstr</EM> on the given window. It
+ is similar to constructing a <STRONG>cchar_t</STRONG> for each wchar_t in
+ the string, then calling <STRONG>wadd_wch</STRONG> for the resulting
<STRONG>cchar_t</STRONG>.
The <EM>mv</EM> routines perform cursor movement once, before writ-
- <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_attr.3x,v 1.27 2003/12/27 18:50:51 tom Exp @
+ * @Id: curs_attr.3x,v 1.29 2005/05/15 16:17:25 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+<STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG> <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>,
- <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>, <STRONG>standout</STRONG>,
- <STRONG>wstandout</STRONG>, <STRONG>attr_get</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>wattr_off</STRONG>,
- <STRONG>attr_on</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_set</STRONG>, <STRONG>chgat</STRONG>, <STRONG>wchgat</STRONG>,
- <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> character and win-
- dow attribute control routines
+ <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>, <STRONG>wattrset</STRONG>,
+ <STRONG>color_set</STRONG>, <STRONG>wcolor_set</STRONG>, <STRONG>standend</STRONG>, <STRONG>wstandend</STRONG>, <STRONG>standout</STRONG>,
+ <STRONG>wstandout</STRONG>, <STRONG>attr_get</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>attr_off</STRONG>, <STRONG>wattr_off</STRONG>,
+ <STRONG>attr_on</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_set</STRONG>, <STRONG>chgat</STRONG>, <STRONG>wchgat</STRONG>,
+ <STRONG>mvchgat</STRONG>, <STRONG>mvwchgat</STRONG>, <STRONG>PAIR_NUMBER</STRONG> - <STRONG>curses</STRONG> character and
+ window attribute control routines
</PRE>
<H2>DESCRIPTION</H2><PRE>
These routines manipulate the current attributes of the
named window. The current attributes of a window apply to
- all characters that are written into the window with <STRONG>wad-</STRONG>
- <STRONG>dch</STRONG>, <STRONG>waddstr</STRONG> and <STRONG>wprintw</STRONG>. Attributes are a property of
- the character, and move with the character through any
+ all characters that are written into the window with <STRONG>wadd-</STRONG>
+ <STRONG>ch</STRONG>, <STRONG>waddstr</STRONG> and <STRONG>wprintw</STRONG>. Attributes are a property of the
+ character, and move with the character through any
scrolling and insert/delete line/character operations. To
the extent possible, they are displayed as appropriate
modifications to the graphic rendition of characters put
same as <STRONG>attrset(A_NORMAL)</STRONG> or <STRONG>attrset(0)</STRONG>, that is, it turns
off all attributes.
- The <STRONG>attrset</STRONG> and related routines do not affect the
- attributes used when erasing portions of the window. See
+ The <STRONG>attrset</STRONG> and related routines do not affect the at-
+ tributes used when erasing portions of the window. See
<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> for functions which modify the attributes
used for erasing and clearing.
the way to the end of the current line. The <STRONG>wchgat</STRONG> func-
tion generalizes this to any window; the <STRONG>mvwchgat</STRONG> function
does a cursor move before acting. In these functions, the
- color argument is a color-pair index (as in the first
- argument of <EM>init</EM><STRONG>_</STRONG><EM>pair</EM>, see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>). The <STRONG>opts</STRONG>
- argument is not presently used, but is reserved for the
- future (leave it <STRONG>NULL</STRONG>). Note that changing the attributes
- does not imply that a subsequent <STRONG>refresh</STRONG> will update the
- screen to match, since the character values are not modi-
- fied. Use <STRONG>touchwin</STRONG> to force the screen to match the
- updated attributes.
+ color argument is a color-pair index (as in the first ar-
+ gument of <EM>init</EM><STRONG>_</STRONG><EM>pair</EM>, see <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>). The <STRONG>opts</STRONG> argu-
+ ment is not presently used, but is reserved for the future
+ (leave it <STRONG>NULL</STRONG>). Note that changing the attributes does
+ not imply that a subsequent <STRONG>refresh</STRONG> will update the screen
+ to match, since the character values are not modified.
+ Use <STRONG>touchwin</STRONG> to force the screen to match the updated at-
+ tributes.
<STRONG>Attributes</STRONG>
The following video attributes, defined in <STRONG><curses.h></STRONG>, can
be passed to the routines <STRONG>attron</STRONG>, <STRONG>attroff</STRONG>, and <STRONG>attrset</STRONG>, or
- OR'ed with the characters passed to <STRONG>addch</STRONG>.
+ OR'd with the characters passed to <STRONG>addch</STRONG>.
+
<STRONG>A_NORMAL</STRONG> Normal display (no highlight)
<STRONG>A_STANDOUT</STRONG> Best highlighting mode of the terminal.
Note that <STRONG>attroff</STRONG>, <STRONG>wattroff</STRONG>, <STRONG>attron</STRONG>, <STRONG>wattron</STRONG>, <STRONG>attrset</STRONG>,
<STRONG>wattrset</STRONG>, <STRONG>standend</STRONG> and <STRONG>standout</STRONG> may be macros.
+ <STRONG>COLOR_PAIR</STRONG> values can only be OR'd with attributes if the
+ pair number is less than 256. The alternate functions
+ such as <STRONG>color_set</STRONG> can pass a color pair value directly.
+ However, ncurses ABI 4 and 5 simply OR this value within
+ the alternate functions. You must use ncurses ABI 6 to
+ support more than 256 color pairs.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
- All these functions are supported in the XSI Curses stan-
- dard, Issue 4. The standard defined the dedicated type
- for highlights, <STRONG>attr_t</STRONG>, which is not defined in SVr4
- curses. The functions taking <STRONG>attr_t</STRONG> arguments are not sup-
- ported under SVr4.
-
- The XSI Curses standard states that whether the tradi-
- tional functions <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG> can manipulate
- attributes other than <STRONG>A_BLINK</STRONG>, <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>,
- <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified". Under this
- implementation as well as SVr4 curses, these functions
- correctly manipulate all other highlights (specifically,
+ These functions are supported in the XSI Curses standard,
+ Issue 4. The standard defined the dedicated type for
+ highlights, <STRONG>attr_t</STRONG>, which is not defined in SVr4 curses.
+ The functions taking <STRONG>attr_t</STRONG> arguments are not supported
+ under SVr4.
+
+ The XSI Curses standard states that whether the tradition-
+ al functions <STRONG>attron</STRONG>/<STRONG>attroff</STRONG>/<STRONG>attrset</STRONG> can manipulate at-
+ tributes other than <STRONG>A_BLINK</STRONG>, <STRONG>A_BOLD</STRONG>, <STRONG>A_DIM</STRONG>, <STRONG>A_REVERSE</STRONG>,
+ <STRONG>A_STANDOUT</STRONG>, or <STRONG>A_UNDERLINE</STRONG> is "unspecified". Under this
+ implementation as well as SVr4 curses, these functions
+ correctly manipulate all other highlights (specifically,
<STRONG>A_ALTCHARSET</STRONG>, <STRONG>A_PROTECT</STRONG>, and <STRONG>A_INVIS</STRONG>).
- XSI Curses added the new entry points, <STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>,
- <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>wattr_get</STRONG>,
- <STRONG>wattr_set</STRONG>. These are intended to work with a new series
- of highlight macros prefixed with <STRONG>WA_</STRONG>.
+ XSI Curses added the new entry points, <STRONG>attr_get</STRONG>, <STRONG>attr_on</STRONG>,
+ <STRONG>attr_off</STRONG>, <STRONG>attr_set</STRONG>, <STRONG>wattr_on</STRONG>, <STRONG>wattr_off</STRONG>, <STRONG>wattr_get</STRONG>, <STRONG>wat-</STRONG>
+ <STRONG>tr_set</STRONG>. These are intended to work with a new series of
+ highlight macros prefixed with <STRONG>WA_</STRONG>.
+
<STRONG>WA_NORMAL</STRONG> Normal display (no highlight)
<STRONG>WA_STANDOUT</STRONG> Best highlighting mode of the terminal.
<STRONG>WA_ALTCHARSET</STRONG> Alternate character set
The XSI curses standard specifies that each pair of corre-
- sponding <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same
+ sponding <STRONG>A_</STRONG> and <STRONG>WA_</STRONG>-using functions operates on the same
current-highlight information.
The XSI standard extended conformance level adds new high-
lights <STRONG>A_HORIZONTAL</STRONG>, <STRONG>A_LEFT</STRONG>, <STRONG>A_LOW</STRONG>, <STRONG>A_RIGHT</STRONG>, <STRONG>A_TOP</STRONG>, <STRONG>A_VER-</STRONG>
- <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each) which this
- curses does not yet support.
+ <STRONG>TICAL</STRONG> (and corresponding <STRONG>WA_</STRONG> macros for each) which this
+ implementation does not yet support.
+
+
+</PRE>
+<H2>RETURN VALUE</H2><PRE>
+ All routines return the integer <STRONG>OK</STRONG> on success, or <STRONG>ERR</STRONG> on
+ failure.
+
+ X/Open does not define any error conditions.
+
+ This implementation returns an error if the window pointer
+ is null. The <STRONG>wcolor_set</STRONG> function returns an error if the
+ color pair parameter is outside the range 0..COL-
+ OR_PAIRS-1.
</PRE>
- <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_beep.3x,v 1.9 2003/12/27 18:44:30 tom Exp @
+ * @Id: curs_beep.3x,v 1.10 2005/01/08 17:55:51 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG> <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+<STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG> <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
</PRE>
<H2>PORTABILITY</H2><PRE>
- These functions are defined in the XSI Curses standard,
+ These functions are described in the XSI Curses standard,
Issue 4. Like SVr4, it specifies that they always return
<STRONG>OK</STRONG>.
- <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
+ <STRONG><A HREF="curs_beep.3x.html">curs_beep(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+<STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
- <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
+ <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_bkgrnd.3x,v 1.1 2002/02/23 23:23:42 tom Exp @
+ * @Id: curs_bkgrnd.3x,v 1.2 2004/03/13 19:39:10 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+<STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG> <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
- <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+ <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_border.3x,v 1.15 2002/02/16 22:21:47 tom Exp @
+ * @Id: curs_border.3x,v 1.17 2005/05/15 16:17:31 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+<STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG> <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>border</STRONG>, <STRONG>wborder</STRONG>, <STRONG>box</STRONG>, <STRONG>hline</STRONG>, <STRONG>whline</STRONG>, <STRONG>vline</STRONG>, <STRONG>wvline</STRONG>, <STRONG>mvh-</STRONG>
- <STRONG>line</STRONG>, <STRONG>mvwhline</STRONG>, <STRONG>mvvline</STRONG>, <STRONG>mvwvline</STRONG> - create <STRONG>curses</STRONG> borders,
- horizontal and vertical lines
+ <STRONG>border</STRONG>, <STRONG>wborder</STRONG>, <STRONG>box</STRONG>, <STRONG>hline</STRONG>, <STRONG>whline</STRONG>, <STRONG>vline</STRONG>, <STRONG>wvline</STRONG>,
+ <STRONG>mvhline</STRONG>, <STRONG>mvwhline</STRONG>, <STRONG>mvvline</STRONG>, <STRONG>mvwvline</STRONG> - create <STRONG>curses</STRONG>
+ borders, horizontal and vertical lines
</PRE>
says "or a non-negative integer if <STRONG>immedok</STRONG> is set", but
this appears to be an error.
+ X/Open does not define any error conditions. This imple-
+ mentation returns an error if the window pointer is null.
+
</PRE>
<H2>NOTES</H2><PRE>
- <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
+ <STRONG><A HREF="curs_border.3x.html">curs_border(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_border_set.3x,v 1.3 2002/04/20 16:49:13 tom Exp @
+ * @Id: curs_border_set.3x,v 1.6 2005/05/15 16:17:37 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+<STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG> <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>border_set</STRONG>, <STRONG>wborder_set</STRONG>, <STRONG>box_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>whline_set</STRONG>,
- <STRONG>mvhline_set</STRONG>, <STRONG>mvwhline_set</STRONG>, <STRONG>vline_set</STRONG>, <STRONG>wvline_set</STRONG>,
+ <STRONG>border_set</STRONG>, <STRONG>wborder_set</STRONG>, <STRONG>box_set</STRONG>, <STRONG>hline_set</STRONG>, <STRONG>whline_set</STRONG>,
+ <STRONG>mvhline_set</STRONG>, <STRONG>mvwhline_set</STRONG>, <STRONG>vline_set</STRONG>, <STRONG>wvline_set</STRONG>,
<STRONG>mvvline_set</STRONG>, <STRONG>mvwvline_set</STRONG> - create <STRONG>curses</STRONG> borders or lines
using complex characters and renditions
Upon successful completion, these functions return <STRONG>OK</STRONG>.
Otherwise, they return <STRONG>ERR</STRONG>.
+ Functions using a window parameter return an error if it
+ is null.
+
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
+ <STRONG><A HREF="curs_border_set.3x.html">curs_border_set(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_clear.3x,v 1.7 1998/03/11 21:12:53 juergen Exp @
+ * @Id: curs_clear.3x,v 1.10 2005/10/01 19:34:43 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+<STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG> <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>erase</STRONG>, <STRONG>werase</STRONG>, <STRONG>clear</STRONG>, <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, <STRONG>wclrtobot</STRONG>, <STRONG>clr-</STRONG>
- <STRONG>toeol</STRONG>, <STRONG>wclrtoeol</STRONG> - clear all or part of a <STRONG>curses</STRONG> window
+ <STRONG>erase</STRONG>, <STRONG>werase</STRONG>, <STRONG>clear</STRONG>, <STRONG>wclear</STRONG>, <STRONG>clrtobot</STRONG>, <STRONG>wclrtobot</STRONG>,
+ <STRONG>clrtoeol</STRONG>, <STRONG>wclrtoeol</STRONG> - clear all or part of a <STRONG>curses</STRONG> window
</PRE>
</PRE>
<H2>DESCRIPTION</H2><PRE>
- The <STRONG>erase</STRONG> and <STRONG>werase</STRONG> routines copy blanks to every posi-
+ The <STRONG>erase</STRONG> and <STRONG>werase</STRONG> routines copy blanks to every posi-
tion in the window, clearing the screen.
- The <STRONG>clear</STRONG> and <STRONG>wclear</STRONG> routines are like <STRONG>erase</STRONG> and <STRONG>werase</STRONG>,
- but they also call <STRONG>clearok</STRONG>, so that the screen is cleared
- completely on the next call to <STRONG>wrefresh</STRONG> for that window
+ The <STRONG>clear</STRONG> and <STRONG>wclear</STRONG> routines are like <STRONG>erase</STRONG> and <STRONG>werase</STRONG>,
+ but they also call <STRONG>clearok</STRONG>, so that the screen is cleared
+ completely on the next call to <STRONG>wrefresh</STRONG> for that window
and repainted from scratch.
- The <STRONG>clrtobot</STRONG> and <STRONG>wclrtobot</STRONG> routines erase from the cursor
+ The <STRONG>clrtobot</STRONG> and <STRONG>wclrtobot</STRONG> routines erase from the cursor
to the end of screen. That is, they erase all lines below
- the cursor in the window. Also, the current line to the
+ the cursor in the window. Also, the current line to the
right of the cursor, inclusive, is erased.
The <STRONG>clrtoeol</STRONG> and <STRONG>wclrtoeol</STRONG> routines erase the current line
- to the right of the cursor, inclusive, to the end of the
+ to the right of the cursor, inclusive, to the end of the
current line.
Blanks created by erasure have the current background ren-
</PRE>
<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>OK</STRONG>. The SVr4.0 manual
- says "or a non-negative integer if <STRONG>immedok</STRONG> is set", but
- this appears to be an error.
+ All routines return the integer <STRONG>OK</STRONG> on success and <STRONG>ERR</STRONG> on
+ failure. The SVr4.0 manual says "or a non-negative inte-
+ ger if <STRONG>immedok</STRONG> is set", but this appears to be an error.
+
+ X/Open defines no error conditions. In this implementa-
+ tion, functions using a window pointer parameter return an
+ error if it is null.
</PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4. The standard specifies that they return <STRONG>ERR</STRONG> on
+ These functions are described in the XSI Curses standard,
+ Issue 4. The standard specifies that they return <STRONG>ERR</STRONG> on
failure, but specifies no error conditions.
- Some historic curses implementations had, as an undocu-
- mented feature, the ability to do the equivalent of
- <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(std-</STRONG>
+ Some historic curses implementations had, as an undocu-
+ mented feature, the ability to do the equivalent of
+ <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(std-</STRONG>
<STRONG>scr)</STRONG>. This will not work under ncurses.
+ This implementation, and others such as Solaris, sets the
+ current position to 0,0 after erasing via <STRONG>werase()</STRONG> and
+ <STRONG>wclear()</STRONG>. That fact is not documented in other implemen-
+ tations, and may not be true of implementations which were
+ not derived from SVr4 source.
+
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
+ <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp @
+ * @Id: curs_color.3x,v 1.27 2005/05/15 16:55:36 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+<STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG> <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>start_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, <STRONG>has_colors</STRONG>,
- <STRONG>can_change_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>COLOR_PAIR</STRONG>
+ <STRONG>start_color</STRONG>, <STRONG>init_pair</STRONG>, <STRONG>init_color</STRONG>, <STRONG>has_colors</STRONG>,
+ <STRONG>can_change_color</STRONG>, <STRONG>color_content</STRONG>, <STRONG>pair_content</STRONG>, <STRONG>COLOR_PAIR</STRONG>
- <STRONG>curses</STRONG> color manipulation routines
</PRE>
<H2>DESCRIPTION</H2><PRE>
<STRONG>Overview</STRONG>
- <STRONG>curses</STRONG> support color attributes on terminals with that
- capability. To use these routines <STRONG>start_color</STRONG> must be
+ <STRONG>curses</STRONG> support color attributes on terminals with that ca-
+ pability. To use these routines <STRONG>start_color</STRONG> must be
called, usually right after <STRONG>initscr</STRONG>. Colors are always
used in pairs (referred to as color-pairs). A color-pair
consists of a foreground color (for characters) and a
ters are displayed). A programmer initializes a color-
pair with the routine <STRONG>init_pair</STRONG>. After it has been ini-
tialized, <STRONG>COLOR_PAIR</STRONG>(<EM>n</EM>), a macro defined in <STRONG><curses.h></STRONG>,
- can be used as a new video attribute.
-
- If a terminal is capable of redefining colors, the pro-
- grammer can use the routine <STRONG>init_color</STRONG> to change the defi-
- nition of a color. The routines <STRONG>has_colors</STRONG> and
- <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>, depending on
- whether the terminal has color capabilities and whether
- the programmer can change the colors. The routine
- <STRONG>color_content</STRONG> allows a programmer to extract the amounts
- of red, green, and blue components in an initialized
- color. The routine <STRONG>pair_content</STRONG> allows a programmer to
- find out how a given color-pair is currently defined.
+ can be used as a new video attribute. If a terminal is
+ capable of redefining colors, the programmer can use the
+ routine <STRONG>init_color</STRONG> to change the definition of a color.
+ The routines <STRONG>has_colors</STRONG> and <STRONG>can_change_color</STRONG> return <STRONG>TRUE</STRONG>
+ or <STRONG>FALSE</STRONG>, depending on whether the terminal has color ca-
+ pabilities and whether the programmer can change the col-
+ ors. The routine <STRONG>color_content</STRONG> allows a programmer to ex-
+ tract the amounts of red, green, and blue components in an
+ initialized color. The routine <STRONG>pair_content</STRONG> allows a pro-
+ grammer to find out how a given color-pair is currently
+ defined.
<STRONG>Routine</STRONG> <STRONG>Descriptions</STRONG>
The <STRONG>start_color</STRONG> routine requires no arguments. It must be
- called if the programmer wants to use colors, and before
- any other color manipulation routine is called. It is
- good practice to call this routine right after <STRONG>initscr</STRONG>.
- <STRONG>start_color</STRONG> initializes eight basic colors (black, red,
- green, yellow, blue, magenta, cyan, and white), and two
- global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> (respectively
- defining the maximum number of colors and color-pairs the
+ called if the programmer wants to use colors, and before
+ any other color manipulation routine is called. It is
+ good practice to call this routine right after <STRONG>initscr</STRONG>.
+ <STRONG>start_color</STRONG> initializes eight basic colors (black, red,
+ green, yellow, blue, magenta, cyan, and white), and two
+ global variables, <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG> (respectively
+ defining the maximum number of colors and color-pairs the
terminal can support). It also restores the colors on the
terminal to the values they had when the terminal was just
- turned on.
-
- The <STRONG>init_pair</STRONG> routine changes the definition of a color-
- pair. It takes three arguments: the number of the color-
- pair to be changed, the foreground color number, and the
- background color number. For portable applications:
+ turned on. The <STRONG>init_pair</STRONG> routine changes the definition
+ of a color-pair. It takes three arguments: the number of
+ the color-pair to be changed, the foreground color number,
+ and the background color number. For portable applica-
+ tions:
- The value of the first argument must be between <STRONG>1</STRONG> and
<STRONG>COLOR_PAIRS-1</STRONG>.
- The value of the second and third arguments must be
- between 0 and <STRONG>COLORS</STRONG> (the 0 color pair is wired to
- white on black and cannot be changed).
+ between 0 and <STRONG>COLORS</STRONG>. Color pair 0 is assumed to be
+ white on black, but is actually whatever the terminal
+ implements before color is initialized. It cannot be
+ modified by the application.
If the color-pair was previously initialized, the screen
is refreshed and all occurrences of that color-pair are
- changed to the new definition.
-
- As an extension, ncurses allows you to set color pair 0
- via the <STRONG>assume_default_colors</STRONG> routine, or to specify the
- use of default colors (color number <STRONG>-1</STRONG>) if you first
- invoke the <STRONG>use_default_colors</STRONG> routine.
-
- The <STRONG>init_color</STRONG> routine changes the definition of a color.
- It takes four arguments: the number of the color to be
- changed followed by three RGB values (for the amounts of
- red, green, and blue components). The value of the first
- argument must be between <STRONG>0</STRONG> and <STRONG>COLORS</STRONG>. (See the section
- <STRONG>Colors</STRONG> for the default color index.) Each of the last
- three arguments must be a value between 0 and 1000. When
- <STRONG>init_color</STRONG> is used, all occurrences of that color on the
- screen immediately change to the new definition.
-
- The <STRONG>has_colors</STRONG> routine requires no arguments. It returns
- <STRONG>TRUE</STRONG> if the terminal can manipulate colors; otherwise, it
- returns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal-
+ changed to the new definition. As an extension, ncurses
+ allows you to set color pair 0 via the <STRONG>assume_default_col-</STRONG>
+ <STRONG>ors</STRONG> routine, or to specify the use of default colors (col-
+ or number <STRONG>-1</STRONG>) if you first invoke the <STRONG>use_default_colors</STRONG>
+ routine. The <STRONG>init_color</STRONG> routine changes the definition of
+ a color. It takes four arguments: the number of the color
+ to be changed followed by three RGB values (for the
+ amounts of red, green, and blue components). The value of
+ the first argument must be between <STRONG>0</STRONG> and <STRONG>COLORS</STRONG>. (See the
+ section <STRONG>Colors</STRONG> for the default color index.) Each of the
+ last three arguments must be a value between 0 and 1000.
+ When <STRONG>init_color</STRONG> is used, all occurrences of that color on
+ the screen immediately change to the new definition. The
+ <STRONG>has_colors</STRONG> routine requires no arguments. It returns <STRONG>TRUE</STRONG>
+ if the terminal can manipulate colors; otherwise, it re-
+ turns <STRONG>FALSE</STRONG>. This routine facilitates writing terminal-
independent programs. For example, a programmer can use
- it to decide whether to use color or some other video
- attribute.
-
- The <STRONG>can_change_color</STRONG> routine requires no arguments. It
- returns <STRONG>TRUE</STRONG> if the terminal supports colors and can
- change their definitions; other, it returns <STRONG>FALSE</STRONG>. This
- routine facilitates writing terminal-independent programs.
-
- The <STRONG>color_content</STRONG> routine gives programmers a way to find
- the intensity of the red, green, and blue (RGB) components
- in a color. It requires four arguments: the color number,
- and three addresses of <STRONG>short</STRONG>s for storing the information
- about the amounts of red, green, and blue components in
- the given color. The value of the first argument must be
- between 0 and <STRONG>COLORS</STRONG>. The values that are stored at the
- addresses pointed to by the last three arguments are
- between 0 (no component) and 1000 (maximum amount of com-
- ponent).
-
- The <STRONG>pair_content</STRONG> routine allows programmers to find out
- what colors a given color-pair consists of. It requires
- three arguments: the color-pair number, and two addresses
- of <STRONG>short</STRONG>s for storing the foreground and the background
- color numbers. The value of the first argument must be
- between 1 and <STRONG>COLOR_PAIRS-1</STRONG>. The values that are stored
- at the addresses pointed to by the second and third argu-
- ments are between 0 and <STRONG>COLORS</STRONG>.
+ it to decide whether to use color or some other video at-
+ tribute. The <STRONG>can_change_color</STRONG> routine requires no argu-
+ ments. It returns <STRONG>TRUE</STRONG> if the terminal supports colors
+ and can change their definitions; other, it returns <STRONG>FALSE</STRONG>.
+ This routine facilitates writing terminal-independent pro-
+ grams. The <STRONG>color_content</STRONG> routine gives programmers a way
+ to find the intensity of the red, green, and blue (RGB)
+ components in a color. It requires four arguments: the
+ color number, and three addresses of <STRONG>short</STRONG>s for storing
+ the information about the amounts of red, green, and blue
+ components in the given color. The value of the first ar-
+ gument must be between 0 and <STRONG>COLORS</STRONG>. The values that are
+ stored at the addresses pointed to by the last three argu-
+ ments are between 0 (no component) and 1000 (maximum
+ amount of component). The <STRONG>pair_content</STRONG> routine allows
+ programmers to find out what colors a given color-pair
+ consists of. It requires three arguments: the color-pair
+ number, and two addresses of <STRONG>short</STRONG>s for storing the fore-
+ ground and the background color numbers. The value of the
+ first argument must be between 1 and <STRONG>COLOR_PAIRS-1</STRONG>. The
+ values that are stored at the addresses pointed to by the
+ second and third arguments are between 0 and <STRONG>COLORS</STRONG>.
<STRONG>Colors</STRONG>
In <STRONG><curses.h></STRONG> the following macros are defined. These are
the default colors. <STRONG>curses</STRONG> also assumes that <STRONG>COLOR_BLACK</STRONG>
is the default background color for all terminals.
-
<STRONG>COLOR_BLACK</STRONG>
<STRONG>COLOR_RED</STRONG>
<STRONG>COLOR_GREEN</STRONG>
</PRE>
<H2>RETURN VALUE</H2><PRE>
The routines <STRONG>can_change_color()</STRONG> and <STRONG>has_colors()</STRONG> return
- <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>.
-
- All other routines return the integer <STRONG>ERR</STRONG> upon failure and
- an <STRONG>OK</STRONG> (SVr4 specifies only "an integer value other than
- <STRONG>ERR</STRONG>") upon successful completion.
+ <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>. All other routines return the integer <STRONG>ERR</STRONG>
+ upon failure and an <STRONG>OK</STRONG> (SVr4 specifies only "an integer
+ value other than <STRONG>ERR</STRONG>") upon successful completion.
+
+ X/Open defines no error conditions. This implementation
+ will return <STRONG>ERR</STRONG> on attempts to use color values outside
+ the range 0 to COLORS-1 (except for the default colors ex-
+ tension), or use color pairs outside the range 0 to COL-
+ OR_PAIR-1. Color values used in <STRONG>init_color</STRONG> must be in the
+ range 0 to 1000. An error is returned from all functions
+ if the terminal has not been initialized. An error is re-
+ turned from secondary functions such as <STRONG>init_pair</STRONG> if
+ <STRONG>start_color</STRONG> was not called.
+
+ <STRONG>init_color</STRONG>
+ returns an error if the terminal does not sup-
+ port this feature, e.g., if the <EM>initial-</EM>
+ <EM>ize</EM><STRONG>_</STRONG><EM>color</EM> capability is absent from the termi-
+ nal description.
+
+ <STRONG>start_color</STRONG>
+ returns an error If the color table cannot be
+ allocated.
</PRE>
<H2>NOTES</H2><PRE>
In the <EM>ncurses</EM> implementation, there is a separate color
- activation flag, color palette, color pairs table, and
- associated COLORS and COLOR_PAIRS counts for each screen;
+ activation flag, color palette, color pairs table, and as-
+ sociated COLORS and COLOR_PAIRS counts for each screen;
the <STRONG>start_color</STRONG> function only affects the current screen.
The SVr4/XSI interface is not really designed with this in
mind, and historical implementations may use a single
- shared color palette.
-
- Note that setting an implicit background color via a color
- pair affects only character cells that a character write
- operation explicitly touches. To change the background
- color used when parts of a window are blanked by erasing
- or scrolling operations, see <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>.
-
- Several caveats apply on 386 and 486 machines with VGA-
- compatible graphics:
-
- - COLOR_YELLOW is actually brown. To get yellow, use
+ shared color palette. Note that setting an implicit back-
+ ground color via a color pair affects only character cells
+ that a character write operation explicitly touches. To
+ change the background color used when parts of a window
+ are blanked by erasing or scrolling operations, see
+ <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>. Several caveats apply on 386 and 486 ma-
+ chines with VGA-compatible graphics:
+
+ - COLOR_YELLOW is actually brown. To get yellow, use
COLOR_YELLOW combined with the <STRONG>A_BOLD</STRONG> attribute.
- - The A_BLINK attribute should in theory cause the
- background to go bright. This often fails to work,
- and even some cards for which it mostly works (such
- as the Paradise and compatibles) do the wrong thing
+ - The A_BLINK attribute should in theory cause the
+ background to go bright. This often fails to work,
+ and even some cards for which it mostly works (such
+ as the Paradise and compatibles) do the wrong thing
when you try to set a bright "yellow" background (you
get a blinking yellow foreground instead).
</PRE>
<H2>PORTABILITY</H2><PRE>
- This implementation satisfies XSI Curses's minimum maxi-
+ This implementation satisfies XSI Curses's minimum maxi-
mums for <STRONG>COLORS</STRONG> and <STRONG>COLOR_PAIRS</STRONG>.
- The <STRONG>init_pair</STRONG> routine accepts negative values of fore-
- ground and background color to support the
- <STRONG>use_default_colors</STRONG> extension, but only if that routine has
- been first invoked.
+ The <STRONG>init_pair</STRONG> routine accepts negative values of fore-
+ ground and background color to support the <STRONG>use_de-</STRONG>
+ <STRONG>fault_colors</STRONG> extension, but only if that routine has been
+ first invoked.
- The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background
- color for all terminals can be modified using the
- <STRONG>assume_default_colors</STRONG> extension,
+ The assumption that <STRONG>COLOR_BLACK</STRONG> is the default background
+ color for all terminals can be modified using the <STRONG>as-</STRONG>
+ <STRONG>sume_default_colors</STRONG> extension.
+ This implementation checks the pointers, e.g., for the
+ values returned by <STRONG>color_content</STRONG> and <STRONG>pair_content</STRONG>, and
+ will treat those as optional parameters when null.
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG>default_col-</STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG>default_col-</STRONG>
<STRONG><A HREF="default_colors.3x.html">ors(3x)</A></STRONG>
- <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
+ <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+<STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG> <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
- <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_delch.3x.html">curs_delch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_deleteln.3x,v 1.8 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_deleteln.3x,v 1.9 2005/05/15 16:53:35 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+<STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG> <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
(SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>")
upon successful completion.
+ X/Open defines no error conditions. In this implementa-
+ tion, if the window parameter is null, an error is
+ returned.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
- <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
+ <STRONG><A HREF="curs_deleteln.3x.html">curs_deleteln(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1999
- * @Id: curs_extend.3x,v 1.12 2003/10/25 20:33:16 tom Exp @
+ * @Id: curs_extend.3x,v 1.13 2004/07/05 13:16:08 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
+<STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG> <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
- <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
+ <STRONG><A HREF="curs_extend.3x.html">curs_extend(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG> <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_get_wch.3x.html">curs_get_wch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_get_wstr.3x,v 1.3 2003/07/05 11:15:28 tom Exp @
+ * @Id: curs_get_wstr.3x,v 1.5 2005/05/15 16:17:44 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>get_wstr</STRONG>, <STRONG>getn_wstr</STRONG>, <STRONG>wget_wstr</STRONG>, <STRONG>wgetn_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>,
- <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG> - get an array of
+ <STRONG>get_wstr</STRONG>, <STRONG>getn_wstr</STRONG>, <STRONG>wget_wstr</STRONG>, <STRONG>wgetn_wstr</STRONG>, <STRONG>mvget_wstr</STRONG>,
+ <STRONG>mvgetn_wstr</STRONG>, <STRONG>mvwget_wstr</STRONG>, <STRONG>mvwgetn_wstr</STRONG> - get an array of
wide characters from a curses terminal keyboard
tion is represented by <STRONG>WEOF</STRONG>, as defined in <STRONG><wchar.h></STRONG>. The
newline and end-of-line conditions are represented by the
<STRONG>\n</STRONG> <STRONG>wchar_t</STRONG> value. In all instances, the end of the string
- is terminated by a null <STRONG>wchar_t</STRONG>. The routine places
- resulting values in the area pointed to by <EM>wstr</EM>.
+ is terminated by a null <STRONG>wchar_t</STRONG>. The routine places re-
+ sulting values in the area pointed to by <EM>wstr</EM>.
The user's erase and kill characters are interpreted. If
keypad mode is on for the window, <STRONG>KEY_LEFT</STRONG> and
All of these functions return <STRONG>OK</STRONG> upon successful comple-
tion. Otherwise, they return <STRONG>ERR</STRONG>.
+ Functions using a window parameter return an error if it
+ is null.
+
+ <STRONG>wgetn_wstr</STRONG>
+ returns an error if the associated call to
+ <STRONG>wget_wch</STRONG> failed.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
implementation returns ERR if the window pointer is null,
or if the lower-level <STRONG>wget_wch</STRONG> call returns an ERR. In
the latter case, an ERR return without other data is
- treated as an end-of-file condition, and the returned
- array contains a <STRONG>WEOF</STRONG> followed by a null <STRONG>wchar_t</STRONG>.
+ treated as an end-of-file condition, and the returned ar-
+ ray contains a <STRONG>WEOF</STRONG> followed by a null <STRONG>wchar_t</STRONG>.
X/Open curses documents these functions to pass an array
of <STRONG>wchar_t</STRONG>, but all of the vendors implement this using
- <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG> <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+<STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG> <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
- <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
+ <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getch.3x,v 1.24 2003/12/27 18:46:06 tom Exp @
+ * @Id: curs_getch.3x,v 1.29 2005/06/25 22:03:09 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+<STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, <STRONG>mvwgetch</STRONG>, <STRONG>ungetch</STRONG>, <STRONG>has_key</STRONG> - get
+ <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, <STRONG>mvwgetch</STRONG>, <STRONG>ungetch</STRONG>, <STRONG>has_key</STRONG> - get
(or push back) characters from <STRONG>curses</STRONG> terminal keyboard
character from the window. In no-delay mode, if no input
is waiting, the value <STRONG>ERR</STRONG> is returned. In delay mode, the
program waits until the system passes text through to the
- program. Depending on the setting of <STRONG>cbreak</STRONG>, this is
- after one character (cbreak mode), or after the first new-
+ program. Depending on the setting of <STRONG>cbreak</STRONG>, this is af-
+ ter one character (cbreak mode), or after the first new-
line (nocbreak mode). In half-delay mode, the program
waits until a character is typed or the specified timeout
has been reached.
lowing rules: If the character is the current erase char-
acter, left arrow, or backspace, the cursor is moved one
space to the left and that screen position is erased as if
- <STRONG>delch</STRONG> had been called. If the character value is any
- other <STRONG>KEY_</STRONG> define, the user is alerted with a <STRONG>beep</STRONG> call.
+ <STRONG>delch</STRONG> had been called. If the character value is any oth-
+ er <STRONG>KEY_</STRONG> define, the user is alerted with a <STRONG>beep</STRONG> call.
Otherwise the character is simply output to the screen.
If the window is not a pad, and it has been moved or modi-
fied since the last call to <STRONG>wrefresh</STRONG>, <STRONG>wrefresh</STRONG> will be
called before another character is read.
- If <STRONG>keypad</STRONG> is <STRONG>TRUE</STRONG>, and a function key is pressed, the
- token for that function key is returned instead of the raw
- characters. Possible function keys are defined in
- <STRONG><curses.h></STRONG> as macros with values outside the range of
- 8-bit characters whose names begin with <STRONG>KEY_</STRONG>. Thus, a
- variable intended to hold the return value of a function
- key must be of short size or larger.
+ If <STRONG>keypad</STRONG> is <STRONG>TRUE</STRONG>, and a function key is pressed, the to-
+ ken for that function key is returned instead of the raw
+ characters. Possible function keys are defined in <STRONG><curs-</STRONG>
+ <STRONG>es.h></STRONG> as macros with values outside the range of 8-bit
+ characters whose names begin with <STRONG>KEY_</STRONG>. Thus, a variable
+ intended to hold the return value of a function key must
+ be of short size or larger.
When a character that could be the beginning of a function
- key is received (which, on modern terminals, means an
- escape character), <STRONG>curses</STRONG> sets a timer. If the remainder
- of the sequence does not come in within the designated
- time, the character is passed through; otherwise, the
- function key value is returned. For this reason, many
- terminals experience a delay between the time a user
- presses the escape key and the escape is returned to the
- program.
+ key is received (which, on modern terminals, means an es-
+ cape character), <STRONG>curses</STRONG> sets a timer. If the remainder of
+ the sequence does not come in within the designated time,
+ the character is passed through; otherwise, the function
+ key value is returned. For this reason, many terminals
+ experience a delay between the time a user presses the es-
+ cape key and the escape is returned to the program.
The <STRONG>ungetch</STRONG> routine places <EM>ch</EM> back onto the input queue to
be returned by the next call to <STRONG>wgetch</STRONG>. There is just one
<STRONG>Function</STRONG> <STRONG>Keys</STRONG>
- The following function keys, defined in <STRONG><curses.h></STRONG>, might
- be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG> has been enabled. Note
- that not all of these are necessarily supported on any
+ The following function keys, defined in <STRONG><curses.h></STRONG>, might
+ be returned by <STRONG>getch</STRONG> if <STRONG>keypad</STRONG> has been enabled. Note
+ that not all of these are necessarily supported on any
particular terminal.
- <EM>Name</EM> <EM>Key</EM> <EM>name</EM>
- KEY_BREAK Break key
+ <EM>Name</EM> <EM>Key</EM> <EM>name</EM>
+ KEY_BREAK Break key
KEY_DOWN The four arrow keys ...
KEY_UP
KEY_LEFT
KEY_REFERENCE Ref(erence) key
KEY_REFRESH Refresh key
KEY_REPLACE Replace key
-
KEY_RESIZE Screen resized
KEY_RESTART Restart key
KEY_RESUME Resume key
+
KEY_SAVE Save key
KEY_SBEG Shifted beginning key
KEY_SCANCEL Shifted cancel key
Keypad is arranged like this:
+
+-----+------+-------+
| <STRONG>A1</STRONG> | <STRONG>up</STRONG> | <STRONG>A3</STRONG> |
+-----+------+-------+
The <STRONG>has_key</STRONG> routine takes a key value from the above list,
and returns TRUE or FALSE according to whether the current
terminal type recognizes a key with that value. Note that
- a few values do not correspond to a real key, e.g.,
- KEY_RESIZE and KEY_MOUSE.
+ a few values do not correspond to a real key, e.g.,
+ <STRONG>KEY_RESIZE</STRONG> and <STRONG>KEY_MOUSE</STRONG>. See <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> for more de-
+ tails about <STRONG>KEY_RESIZE</STRONG>, and <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> for a discus-
+ sion of <STRONG>KEY_MOUSE</STRONG>.
</PRE>
<H2>RETURN VALUE</H2><PRE>
- All routines return the integer <STRONG>ERR</STRONG> upon failure and an
+ All routines return the integer <STRONG>ERR</STRONG> upon failure and an
integer value other than <STRONG>ERR</STRONG> (<STRONG>OK</STRONG> in the case of ungetch())
upon successful completion.
+ <STRONG>ungetch</STRONG>
+ returns an error if there is no more room in
+ the FIFO.
+
+ <STRONG>wgetch</STRONG>
+ returns an error if the window pointer is
+ null, or if its timeout expires without having
+ any data.
+
</PRE>
<H2>NOTES</H2><PRE>
ing function-key sequence.
Note that some keys may be the same as commonly used con-
- trol keys, e.g., KEY_ENTER versus control/M, KEY_BACKSPACE
+ trol keys, e.g., <STRONG>KEY_ENTER</STRONG> versus control/M, <STRONG>KEY_BACKSPACE</STRONG>
versus control/H. Some curses implementations may differ
according to whether they treat these control keys spe-
cially (and ignore the terminfo), or use the terminfo def-
initions. <STRONG>Ncurses</STRONG> uses the terminfo definition. If it
- says that KEY_ENTER is control/M, <STRONG>getch</STRONG> will return
- KEY_ENTER when you press control/M.
+ says that <STRONG>KEY_ENTER</STRONG> is control/M, <STRONG>getch</STRONG> will return
+ <STRONG>KEY_ENTER</STRONG> when you press control/M.
When using <STRONG>getch</STRONG>, <STRONG>wgetch</STRONG>, <STRONG>mvgetch</STRONG>, or <STRONG>mvwgetch</STRONG>, nocbreak
mode (<STRONG>nocbreak</STRONG>) and echo mode (<STRONG>echo</STRONG>) should not be used at
the same time. Depending on the state of the tty driver
- when each character is typed, the program may produce
- undesirable results.
+ when each character is typed, the program may produce un-
+ desirable results.
Note that <STRONG>getch</STRONG>, <STRONG>mvgetch</STRONG>, and <STRONG>mvwgetch</STRONG> may be macros.
The echo behavior of these functions on input of <STRONG>KEY_</STRONG> or
backspace characters was not specified in the SVr4 docu-
- mentation. This description is adopted from the XSI
- Curses standard.
+ mentation. This description is adopted from the XSI Curs-
+ es standard.
The behavior of <STRONG>getch</STRONG> and friends in the presence of han-
dled signals is unspecified in the SVr4 and XSI Curses
documentation. Under historical curses implementations,
- it varied depending on whether the operating system's
- implementation of handled signal receipt interrupts a
+ it varied depending on whether the operating system's im-
+ plementation of handled signal receipt interrupts a
<STRONG><A HREF="read.2.html">read(2)</A></STRONG> call in progress or not, and also (in some imple-
mentations) depending on whether an input timeout or non-
blocking mode has been set.
Programmers concerned about portability should be prepared
- for either of two cases: (a) signal receipt does not
- interrupt <STRONG>getch</STRONG>; (b) signal receipt interrupts <STRONG>getch</STRONG> and
+ for either of two cases: (a) signal receipt does not in-
+ terrupt <STRONG>getch</STRONG>; (b) signal receipt interrupts <STRONG>getch</STRONG> and
causes it to return ERR with <STRONG>errno</STRONG> set to <STRONG>EINTR</STRONG>. Under
the <STRONG>ncurses</STRONG> implementation, handled signals never inter-
rupt <STRONG>getch</STRONG>.
The <STRONG>has_key</STRONG> function is unique to <STRONG>ncurses</STRONG>. We recommend
- that any code using it be conditionalized on the
- <STRONG>NCURSES_VERSION</STRONG> feature macro.
+ that any code using it be conditionalized on the <STRONG>NCURS-</STRONG>
+ <STRONG>ES_VERSION</STRONG> feature macro.
</PRE>
<H2>SEE ALSO</H2><PRE>
<STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>, <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>,
- <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>. <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
+ <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>.
- <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_getstr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_getstr.3x,v 1.14 2005/05/15 16:17:55 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG> <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>getstr</STRONG>, <STRONG>getnstr</STRONG>, <STRONG>wgetstr</STRONG>, <STRONG>wgetnstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvgetnstr</STRONG>,
- <STRONG>mvwgetstr</STRONG>, <STRONG>mvwgetnstr</STRONG> - accept character strings from
+ <STRONG>getstr</STRONG>, <STRONG>getnstr</STRONG>, <STRONG>wgetstr</STRONG>, <STRONG>wgetnstr</STRONG>, <STRONG>mvgetstr</STRONG>, <STRONG>mvgetnstr</STRONG>,
+ <STRONG>mvwgetstr</STRONG>, <STRONG>mvwgetnstr</STRONG> - accept character strings from
<STRONG>curses</STRONG> terminal keyboard
The function <STRONG>getstr</STRONG> is equivalent to a series of calls to
<STRONG>getch</STRONG>, until a newline or carriage return is received (the
terminating character is not included in the returned
- string). The resulting value is placed in the area
- pointed to by the character pointer <EM>str</EM>.
+ string). The resulting value is placed in the area point-
+ ed to by the character pointer <EM>str</EM>.
<STRONG>wgetnstr</STRONG> reads at most <EM>n</EM> characters, thus preventing a
- possible overflow of the input buffer. Any attempt to
- enter more characters (other than the terminating newline
- or carriage return) causes a beep. Function keys also
- cause a beep and are ignored. The <STRONG>getnstr</STRONG> function reads
- from the <EM>stdscr</EM> default window.
+ possible overflow of the input buffer. Any attempt to en-
+ ter more characters (other than the terminating newline or
+ carriage return) causes a beep. Function keys also cause
+ a beep and are ignored. The <STRONG>getnstr</STRONG> function reads from
+ the <EM>stdscr</EM> default window.
The user's erase and kill characters are interpreted. If
keypad mode is on for the window, <STRONG>KEY_LEFT</STRONG> and
(SVr4 specifies only "an integer value other than <STRONG>ERR</STRONG>")
upon successful completion.
+ X/Open defines no error conditions.
+
+ In this implementation, these functions return an error if
+ the window pointer is null, or if its timeout expires
+ without having any data.
+
</PRE>
<H2>NOTES</H2><PRE>
<H2>PORTABILITY</H2><PRE>
These functions are described in the XSI Curses standard,
Issue 4. They read single-byte characters only. The
- standard does not define any error conditions. This
- implementation returns ERR if the window pointer is null,
- or if the lower-level <STRONG>wgetch</STRONG> call returns an ERR.
+ standard does not define any error conditions. This im-
+ plementation returns ERR if the window pointer is null, or
+ if the lower-level <STRONG>wgetch</STRONG> call returns an ERR.
SVr3 and early SVr4 curses implementations did not reject
function keys; the SVr4.0 documentation claimed that "spe-
useful (being, in fact, the low-order eight bits of the
key's KEY_ value).
- The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were pre-
- sent but not documented in SVr4.
+ The functions <STRONG>getnstr</STRONG>, <STRONG>mvgetnstr</STRONG>, and <STRONG>mvwgetnstr</STRONG> were
+ present but not documented in SVr4.
</PRE>
- <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_getstr.3x.html">curs_getstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+<STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG> <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
- <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
+ <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_in_wchstr.3x,v 1.2 2002/05/18 21:48:30 tom Exp @
+ * @Id: curs_in_wchstr.3x,v 1.5 2005/05/15 16:57:17 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG> <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>in_wchstr</STRONG>, <STRONG>in_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>, <STRONG>win_wchnstr</STRONG>, <STRONG>mvin_wch-</STRONG>
- <STRONG>str</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG> - get an
- array of complex characters and renditions from a curses
- window
+ <STRONG>in_wchstr</STRONG>, <STRONG>in_wchnstr</STRONG>, <STRONG>win_wchstr</STRONG>, <STRONG>win_wchnstr</STRONG>,
+ <STRONG>mvin_wchstr</STRONG>, <STRONG>mvin_wchnstr</STRONG>, <STRONG>mvwin_wchstr</STRONG>, <STRONG>mvwin_wchnstr</STRONG> -
+ get an array of complex characters and renditions from a
+ curses window
</PRE>
</PRE>
<H2>SEE ALSO</H2><PRE>
- Functions: <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG> <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>,
+ Functions: <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_in_wch.3x.html">curs_in_wch(3x)</A></STRONG>, <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>,
<STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+<STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG> <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
The following bit-masks may be AND-ed with characters
returned by <STRONG>winch</STRONG>.
+
<STRONG>A_CHARTEXT</STRONG> Bit-mask to extract character
<STRONG>A_ATTRIBUTES</STRONG> Bit-mask to extract attributes
<STRONG>A_COLOR</STRONG> Bit-mask to extract color-pair field information
- <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inchstr.3x,v 1.8 2000/07/01 20:16:18 tom Exp @
+ * @Id: curs_inchstr.3x,v 1.10 2005/05/15 16:54:53 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG> <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>inchstr</STRONG>, <STRONG>inchnstr</STRONG>, <STRONG>winchstr</STRONG>, <STRONG>winchnstr</STRONG>, <STRONG>mvinchstr</STRONG>,
- <STRONG>mvinchnstr</STRONG>, <STRONG>mvwinchstr</STRONG>, <STRONG>mvwinchnstr</STRONG> - get a string of
+ <STRONG>inchstr</STRONG>, <STRONG>inchnstr</STRONG>, <STRONG>winchstr</STRONG>, <STRONG>winchnstr</STRONG>, <STRONG>mvinchstr</STRONG>,
+ <STRONG>mvinchnstr</STRONG>, <STRONG>mvwinchstr</STRONG>, <STRONG>mvwinchnstr</STRONG> - get a string of
characters (and attributes) from a <STRONG>curses</STRONG> window
(the number of characters retrieved, exclusive of the
trailing 0).
+ No error conditions are defined. If the <EM>chstr</EM> parameter
+ is null, no data is returned, and the return value is ze-
+ ro.
+
</PRE>
<H2>NOTES</H2><PRE>
- <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_initscr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_initscr.3x,v 1.14 2005/05/15 16:18:01 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+<STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG> <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>initscr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>endwin</STRONG>, <STRONG>isendwin</STRONG>, <STRONG>set_term</STRONG>, <STRONG>delscreen</STRONG> -
+ <STRONG>initscr</STRONG>, <STRONG>newterm</STRONG>, <STRONG>endwin</STRONG>, <STRONG>isendwin</STRONG>, <STRONG>set_term</STRONG>, <STRONG>delscreen</STRONG> -
<STRONG>curses</STRONG> screen initialization and manipulation routines
The initscr code determines the terminal type and initial-
izes all <STRONG>curses</STRONG> data structures. <STRONG>initscr</STRONG> also causes the
- first call to <STRONG>refresh</STRONG> to clear the screen. If errors
- occur, <STRONG>initscr</STRONG> writes an appropriate error message to
- standard error and exits; otherwise, a pointer is returned
- to <STRONG>stdscr</STRONG>.
+ first call to <STRONG>refresh</STRONG> to clear the screen. If errors oc-
+ cur, <STRONG>initscr</STRONG> writes an appropriate error message to stan-
+ dard error and exits; otherwise, a pointer is returned to
+ <STRONG>stdscr</STRONG>.
A program that outputs to more than one terminal should
use the <STRONG>newterm</STRONG> routine for each terminal instead of
same terminal, the first terminal referred to must be the
last one for which <STRONG>endwin</STRONG> is called.
- A program should always call <STRONG>endwin</STRONG> before exiting or
- escaping from <STRONG>curses</STRONG> mode temporarily. This routine
- restores tty modes, moves the cursor to the lower left-
- hand corner of the screen and resets the terminal into the
+ A program should always call <STRONG>endwin</STRONG> before exiting or es-
+ caping from <STRONG>curses</STRONG> mode temporarily. This routine re-
+ stores tty modes, moves the cursor to the lower left-hand
+ corner of the screen and resets the terminal into the
proper non-visual mode. Calling <STRONG>refresh</STRONG> or <STRONG>doupdate</STRONG> after
a temporary escape causes the program to resume visual
mode.
terminals. The screen reference <STRONG>new</STRONG> becomes the new cur-
rent terminal. The previous terminal is returned by the
routine. This is the only routine which manipulates
- <STRONG>SCREEN</STRONG> pointers; all other routines affect only the
- current terminal.
+ <STRONG>SCREEN</STRONG> pointers; all other routines affect only the cur-
+ rent terminal.
The <STRONG>delscreen</STRONG> routine frees storage associated with the
<STRONG>SCREEN</STRONG> data structure. The <STRONG>endwin</STRONG> routine does not do
Routines that return pointers always return <STRONG>NULL</STRONG> on error.
+ X/Open defines no error conditions. In this implementa-
+ tion <STRONG>endwin</STRONG> returns an error if the terminal was not ini-
+ tialized.
+
</PRE>
<H2>NOTES</H2><PRE>
- <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inopts.3x,v 1.11 2003/12/27 18:45:42 tom Exp @
+ * @Id: curs_inopts.3x,v 1.13 2005/05/15 16:18:07 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+<STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG> <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>cbreak</STRONG>, <STRONG>nocbreak</STRONG>, <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>, <STRONG>key-</STRONG>
- <STRONG>pad</STRONG>, <STRONG>meta</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>raw</STRONG>, <STRONG>noraw</STRONG>, <STRONG>noqiflush</STRONG>,
- <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, <STRONG>wtimeout</STRONG>, <STRONG>typeahead</STRONG> - <STRONG>curses</STRONG> input
+ <STRONG>cbreak</STRONG>, <STRONG>nocbreak</STRONG>, <STRONG>echo</STRONG>, <STRONG>noecho</STRONG>, <STRONG>halfdelay</STRONG>, <STRONG>intrflush</STRONG>,
+ <STRONG>keypad</STRONG>, <STRONG>meta</STRONG>, <STRONG>nodelay</STRONG>, <STRONG>notimeout</STRONG>, <STRONG>raw</STRONG>, <STRONG>noraw</STRONG>, <STRONG>noqiflush</STRONG>,
+ <STRONG>qiflush</STRONG>, <STRONG>timeout</STRONG>, <STRONG>wtimeout</STRONG>, <STRONG>typeahead</STRONG> - <STRONG>curses</STRONG> input
options
Normally, the tty driver buffers typed characters until a
newline or carriage return is typed. The <STRONG>cbreak</STRONG> routine
disables line buffering and erase/kill character-process-
- ing (interrupt and flow control characters are unaf-
- fected), making characters typed by the user immediately
+ ing (interrupt and flow control characters are unaffect-
+ ed), making characters typed by the user immediately
available to the program. The <STRONG>nocbreak</STRONG> routine returns
the terminal to normal (cooked) mode.
The <STRONG>echo</STRONG> and <STRONG>noecho</STRONG> routines control whether characters
typed by the user are echoed by <STRONG>getch</STRONG> as they are typed.
- Echoing by the tty driver is always disabled, but ini-
- tially <STRONG>getch</STRONG> is in echo mode, so characters typed are
- echoed. Authors of most interactive programs prefer to do
- their own echoing in a controlled area of the screen, or
- not to echo at all, so they disable echoing by calling
- <STRONG>noecho</STRONG>. [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these
- routines interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
+ Echoing by the tty driver is always disabled, but initial-
+ ly <STRONG>getch</STRONG> is in echo mode, so characters typed are echoed.
+ Authors of most interactive programs prefer to do their
+ own echoing in a controlled area of the screen, or not to
+ echo at all, so they disable echoing by calling <STRONG>noecho</STRONG>.
+ [See <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> for a discussion of how these routines
+ interact with <STRONG>cbreak</STRONG> and <STRONG>nocbreak</STRONG>.]
The <STRONG>halfdelay</STRONG> routine is used for half-delay mode, which
is similar to <STRONG>cbreak</STRONG> mode in that characters typed by the
user are immediately available to the program. However,
- after blocking for <EM>tenths</EM> tenths of seconds, ERR is
- returned if nothing has been typed. The value of <STRONG>tenths</STRONG>
+ after blocking for <EM>tenths</EM> tenths of seconds, ERR is re-
+ turned if nothing has been typed. The value of <STRONG>tenths</STRONG>
must be a number between 1 and 255. Use <STRONG>nocbreak</STRONG> to leave
half-delay mode.
If the <STRONG>intrflush</STRONG> option is enabled, (<EM>bf</EM> is <STRONG>TRUE</STRONG>), when an
interrupt key is pressed on the keyboard (interrupt,
break, quit) all output in the tty driver queue will be
- flushed, giving the effect of faster response to the
- interrupt, but causing <STRONG>curses</STRONG> to have the wrong idea of
- what is on the screen. Disabling (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the
- option prevents the flush. The default for the option is
- inherited from the tty driver settings. The window argu-
- ment is ignored.
+ flushed, giving the effect of faster response to the in-
+ terrupt, but causing <STRONG>curses</STRONG> to have the wrong idea of what
+ is on the screen. Disabling (<EM>bf</EM> is <STRONG>FALSE</STRONG>), the option
+ prevents the flush. The default for the option is inher-
+ ited from the tty driver settings. The window argument is
+ ignored.
The <STRONG>keypad</STRONG> option enables the keypad of the user's termi-
nal. If enabled (<EM>bf</EM> is <STRONG>TRUE</STRONG>), the user can press a func-
If disabled (<EM>bf</EM> is <STRONG>FALSE</STRONG>), <STRONG>curses</STRONG> does not treat function
keys specially and the program has to interpret the escape
sequences itself. If the keypad in the terminal can be
- turned on (made to transmit) and off (made to work
- locally), turning on this option causes the terminal key-
- pad to be turned on when <STRONG>wgetch</STRONG> is called. The default
- value for keypad is false.
+ turned on (made to transmit) and off (made to work local-
+ ly), turning on this option causes the terminal keypad to
+ be turned on when <STRONG>wgetch</STRONG> is called. The default value for
+ keypad is false.
Initially, whether the terminal returns 7 or 8 significant
- bits on input depends on the control mode of the tty
- driver [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>]. To force 8 bits to be returned,
- invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>); this is equivalent, under POSIX,
- to setting the CS8 flag on the terminal. To force 7 bits
- to be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>); this is equiva-
- lent, under POSIX, to setting the CS7 flag on the termi-
- nal. The window argument, <EM>win</EM>, is always ignored. If the
- terminfo capabilities <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are
- defined for the terminal, <STRONG>smm</STRONG> is sent to the terminal when
+ bits on input depends on the control mode of the tty driv-
+ er [see <STRONG><A HREF="termio.7.html">termio(7)</A></STRONG>]. To force 8 bits to be returned, in-
+ voke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>); this is equivalent, under POSIX, to
+ setting the CS8 flag on the terminal. To force 7 bits to
+ be returned, invoke <STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>FALSE</STRONG>); this is equivalent,
+ under POSIX, to setting the CS7 flag on the terminal. The
+ window argument, <EM>win</EM>, is always ignored. If the terminfo
+ capabilities <STRONG>smm</STRONG> (meta_on) and <STRONG>rmm</STRONG> (meta_off) are defined
+ for the terminal, <STRONG>smm</STRONG> is sent to the terminal when
<STRONG>meta</STRONG>(<EM>win</EM>, <STRONG>TRUE</STRONG>) is called and <STRONG>rmm</STRONG> is sent when <STRONG>meta</STRONG>(<EM>win</EM>,
<STRONG>FALSE</STRONG>) is called.
While interpreting an input escape sequence, <STRONG>wgetch</STRONG> sets a
timer while waiting for the next character. If <STRONG>notime-</STRONG>
<STRONG>out(</STRONG><EM>win</EM>, <STRONG>TRUE</STRONG>) is called, then <STRONG>wgetch</STRONG> does not set a
- timer. The purpose of the timeout is to differentiate
- between sequences received from a function key and those
+ timer. The purpose of the timeout is to differentiate be-
+ tween sequences received from a function key and those
typed by a user.
The <STRONG>raw</STRONG> and <STRONG>noraw</STRONG> routines place the terminal into or out
of raw mode. Raw mode is similar to <STRONG>cbreak</STRONG> mode, in that
- characters typed are immediately passed through to the
- user program. The differences are that in raw mode, the
- interrupt, quit, suspend, and flow control characters are
+ characters typed are immediately passed through to the us-
+ er program. The differences are that in raw mode, the in-
+ terrupt, quit, suspend, and flow control characters are
all passed through uninterpreted, instead of generating a
signal. The behavior of the BREAK key depends on other
bits in the tty driver that are not set by <STRONG>curses</STRONG>.
The <STRONG>timeout</STRONG> and <STRONG>wtimeout</STRONG> routines set blocking or non-
blocking read for a given window. If <EM>delay</EM> is negative,
- blocking read is used (i.e., waits indefinitely for
- input). If <EM>delay</EM> is zero, then non-blocking read is used
+ blocking read is used (i.e., waits indefinitely for in-
+ put). If <EM>delay</EM> is zero, then non-blocking read is used
(i.e., read returns <STRONG>ERR</STRONG> if no input is waiting). If <EM>delay</EM>
is positive, then read blocks for <EM>delay</EM> milliseconds, and
returns <STRONG>ERR</STRONG> if there is still no input. Hence, these rou-
tines provide the same functionality as <STRONG>nodelay</STRONG>, plus the
- additional capability of being able to block for only
- <EM>delay</EM> milliseconds (where <EM>delay</EM> is positive).
+ additional capability of being able to block for only <EM>de-</EM>
+ <EM>lay</EM> milliseconds (where <EM>delay</EM> is positive).
The <STRONG>curses</STRONG> library does ``line-breakout optimization'' by
looking for typeahead periodically while updating the
than <STRONG>ERR</STRONG>") upon successful completion, unless otherwise
noted in the preceding routine descriptions.
+ X/Open does not define any error conditions. In this im-
+ plementation, functions with a window parameter will re-
+ turn an error if it is null. Any function will also re-
+ turn an error if the terminal was not initialized. Also,
+
+ <STRONG>halfdelay</STRONG>
+ returns an error if its parameter is outside
+ the range 1..255.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
that the echo bit is cleared when curses initializes the
terminal state. BSD curses differed from this slightly;
it left the echo bit on at initialization, but the BSD <STRONG>raw</STRONG>
- call turned it off as a side-effect. For best portabil-
- ity, set echo or noecho explicitly just after initializa-
+ call turned it off as a side-effect. For best portabili-
+ ty, set echo or noecho explicitly just after initializa-
tion, even if your program remains in cooked mode.
- <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
+ <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+<STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
- <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_ins_wstr.3x,v 1.2 2002/03/10 23:43:27 tom Exp @
+ * @Id: curs_ins_wstr.3x,v 1.4 2005/05/15 17:02:54 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG> <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>ins_wstr</STRONG>, <STRONG>ins_nwstr</STRONG>, <STRONG>wins_wstr</STRONG>, <STRONG>wins_nwstr</STRONG>, <STRONG>mvins_wstr</STRONG>,
- <STRONG>mvins_nwstr</STRONG>, <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwins_nwstr</STRONG> - insert a wide-
+ <STRONG>ins_wstr</STRONG>, <STRONG>ins_nwstr</STRONG>, <STRONG>wins_wstr</STRONG>, <STRONG>wins_nwstr</STRONG>, <STRONG>mvins_wstr</STRONG>,
+ <STRONG>mvins_nwstr</STRONG>, <STRONG>mvwins_wstr</STRONG>, <STRONG>mvwins_nwstr</STRONG> - insert a wide-
character string into a curses window
- <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+<STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG> <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
- <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_insch.3x.html">curs_insch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_insstr.3x,v 1.12 2001/11/03 19:59:03 tom Exp @
+ * @Id: curs_insstr.3x,v 1.16 2005/05/15 17:48:33 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+<STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG> <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
These routines insert a character string (as many charac-
ters as will fit on the line) before the character under
the cursor. All characters to the right of the cursor are
- shifted right, with the possibility of the rightmost char-
+ shifted right with the possibility of the rightmost char-
acters on the line being lost. The cursor position does
- not change (after moving to <EM>y</EM>, <EM>x</EM>, if specified). The four
- routines with <EM>n</EM> as the last argument insert a leading sub-
- string of at most <EM>n</EM> characters. If <EM>n</EM><=0, then the entire
- string is inserted.
-
- If a character in <EM>str</EM> is a tab, newline, carriage return
- or backspace, the cursor is moved appropriately within the
- window. A newline also does a <STRONG>clrtoeol</STRONG> before moving.
- Tabs are considered to be at every eighth column. If a
- character in <EM>str</EM> is another control character, it is drawn
- in the <STRONG>^</STRONG><EM>X</EM> notation. Calling <STRONG>winch</STRONG> after adding a control
- character (and moving to it, if necessary) does not return
- the control character, but instead returns a character in
- the ^-representation of the control character.
+ not change (after moving to <EM>y</EM>, <EM>x</EM>, if specified). The
+ functions with <EM>n</EM> as the last argument insert a leading
+ substring of at most <EM>n</EM> characters. If <EM>n</EM><=0, then the
+ entire string is inserted.
+
+ Special characters are handled as in <STRONG>addch</STRONG>.
</PRE>
than <STRONG>ERR</STRONG>") upon successful completion, unless otherwise
noted in the preceding routine descriptions.
+ X/Open defines no error conditions. In this implementa-
+ tion, if the window parameter is null or the str parameter
+ is null, an error is returned.
+
</PRE>
<H2>NOTES</H2><PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
These functions are described in the XSI Curses standard,
- Issue 4, which adds const qualifiers to the arguments.
- The XSI Curses error conditions <STRONG>EILSEQ</STRONG> and <STRONG>EILOVERFLOW</STRONG>
- associated with extended-level conformance are not yet
- detected (this implementation does not yet support XPG4
- multibyte characters).
+ Issue 4, which adds const qualifiers to the arguments.
+
+ The Single Unix Specification, Version 2 states that
+ <STRONG>insnstr</STRONG> and <STRONG>winsnstr</STRONG> perform wrapping. This is probably
+ an error, since it makes this group of functions inconsis-
+ tent. Also, no implementation of curses documents this
+ inconsistency.
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="unctrl.3x.html">unctrl(3x)</A></STRONG>, <STRONG><A HREF="curs_clear.3x.html">curs_clear(3x)</A></STRONG>, <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>.
- <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_insstr.3x.html">curs_insstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998,2001,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_instr.3x,v 1.10 2001/11/03 19:58:56 tom Exp @
+ * @Id: curs_instr.3x,v 1.12 2005/05/15 17:48:23 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+<STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG> <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
All of the functions return <STRONG>ERR</STRONG> upon failure, or the num-
ber of characters actually read into the string.
+ X/Open defines no error conditions. In this implementa-
+ tion, if the window parameter is null or the str parameter
+ is null, a zero is returned.
+
</PRE>
<H2>NOTES</H2><PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
- The XSI Curses error conditions <STRONG>EILSEQ</STRONG> and <STRONG>EILOVERFLOW</STRONG>
- associated with extended-level conformance are not yet
- detected (this implementation does not yet support XPG4
- multibyte characters). SVr4 does not document whether a
- length limit includes or excludes the trailing NUL.
-
- The ncurses library extends the XSI description by allow-
- ing a negative value for <EM>n</EM>. In this case, the functions
+ SVr4 does not document whether a length limit includes or
+ excludes the trailing NUL.
+
+ The ncurses library extends the XSI description by allow-
+ ing a negative value for <EM>n</EM>. In this case, the functions
return the string ending at the right margin.
- <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
+ <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_inwstr.3x,v 1.2 2002/04/13 20:25:35 tom Exp @
+ * @Id: curs_inwstr.3x,v 1.4 2005/06/25 18:31:26 Daniel.Jacobowitz Exp @
-->
<HTML>
<HEAD>
-<TITLE>curs_inwstr 3</TITLE>
+<TITLE>curs_inwstr 3x</TITLE>
<link rev=made href="mailto:bug-ncurses@gnu.org">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
-<H1>curs_inwstr 3</H1>
+<H1>curs_inwstr 3x</H1>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_inwstr.3.html">curs_inwstr(3)</A></STRONG> <STRONG><A HREF="curs_inwstr.3.html">curs_inwstr(3)</A></STRONG>
+<STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG> <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
- <STRONG><A HREF="curs_inwstr.3.html">curs_inwstr(3)</A></STRONG>
+ <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_kernel.3x,v 1.13 2001/12/08 18:01:25 tom Exp @
+ * @Id: curs_kernel.3x,v 1.15 2005/05/15 16:18:13 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+<STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG> <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>,
- <STRONG>reset_shell_mode</STRONG>, <STRONG>resetty</STRONG>, <STRONG>savetty</STRONG>, <STRONG>getsyx</STRONG>, <STRONG>setsyx</STRONG>, <STRONG>ripof-</STRONG>
- <STRONG>fline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-level <STRONG>curses</STRONG> routines
+ <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>,
+ <STRONG>reset_shell_mode</STRONG>, <STRONG>resetty</STRONG>, <STRONG>savetty</STRONG>, <STRONG>getsyx</STRONG>, <STRONG>setsyx</STRONG>,
+ <STRONG>ripoffline</STRONG>, <STRONG>curs_set</STRONG>, <STRONG>napms</STRONG> - low-level <STRONG>curses</STRONG> routines
</PRE>
The <STRONG>def_prog_mode</STRONG> and <STRONG>def_shell_mode</STRONG> routines save the
current terminal modes as the "program" (in <STRONG>curses</STRONG>) or
- "shell" (not in <STRONG>curses</STRONG>) state for use by the
- <STRONG>reset_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines. This is
- done automatically by <STRONG>initscr</STRONG>. There is one such save
- area for each screen context allocated by <STRONG>newterm()</STRONG>.
+ "shell" (not in <STRONG>curses</STRONG>) state for use by the <STRONG>re-</STRONG>
+ <STRONG>set_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines. This is done
+ automatically by <STRONG>initscr</STRONG>. There is one such save area for
+ each screen context allocated by <STRONG>newterm()</STRONG>.
The <STRONG>reset_prog_mode</STRONG> and <STRONG>reset_shell_mode</STRONG> routines restore
the terminal to "program" (in <STRONG>curses</STRONG>) or "shell" (out of
The <STRONG>getsyx</STRONG> routine returns the current coordinates of the
virtual screen cursor in <EM>y</EM> and <EM>x</EM>. If <STRONG>leaveok</STRONG> is currently
<STRONG>TRUE</STRONG>, then <STRONG>-1</STRONG>,<STRONG>-1</STRONG> is returned. If lines have been removed
- from the top of the screen, using <STRONG>ripoffline</STRONG>, <EM>y</EM> and <EM>x</EM>
- include these lines; therefore, <EM>y</EM> and <EM>x</EM> should be used
- only as arguments for <STRONG>setsyx</STRONG>.
+ from the top of the screen, using <STRONG>ripoffline</STRONG>, <EM>y</EM> and <EM>x</EM> in-
+ clude these lines; therefore, <EM>y</EM> and <EM>x</EM> should be used only
+ as arguments for <STRONG>setsyx</STRONG>.
The <STRONG>setsyx</STRONG> routine sets the virtual screen cursor to <EM>y</EM>, <EM>x</EM>.
If <EM>y</EM> and <EM>x</EM> are both <STRONG>-1</STRONG>, then <STRONG>leaveok</STRONG> is set. The two rou-
- tines <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG> are designed to be used by a
- library routine, which manipulates <STRONG>curses</STRONG> windows but does
+ tines <STRONG>getsyx</STRONG> and <STRONG>setsyx</STRONG> are designed to be used by a li-
+ brary routine, which manipulates <STRONG>curses</STRONG> windows but does
not want to change the current position of the program's
- cursor. The library routine would call <STRONG>getsyx</STRONG> at the
- beginning, do its manipulation of its own windows, do a
+ cursor. The library routine would call <STRONG>getsyx</STRONG> at the be-
+ ginning, do its manipulation of its own windows, do a
<STRONG>wnoutrefresh</STRONG> on its windows, call <STRONG>setsyx</STRONG>, and then call
<STRONG>doupdate</STRONG>.
- The <STRONG>ripoffline</STRONG> routine provides access to the same facil-
- ity that <STRONG>slk_init</STRONG> [see <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>] uses to reduce the
+ The <STRONG>ripoffline</STRONG> routine provides access to the same facili-
+ ty that <STRONG>slk_init</STRONG> [see <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>] uses to reduce the
size of the screen. <STRONG>ripoffline</STRONG> must be called before
<STRONG>initscr</STRONG> or <STRONG>newterm</STRONG> is called. If <EM>line</EM> is positive, a line
is removed from the top of <STRONG>stdscr</STRONG>; if <EM>line</EM> is negative, a
<STRONG>ripoffline</STRONG> can be called up to five times before calling
<STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>.
- The <STRONG>curs_set</STRONG> routine sets the cursor state is set to
- invisible, normal, or very visible for <STRONG>visibility</STRONG> equal to
+ The <STRONG>curs_set</STRONG> routine sets the cursor state is set to in-
+ visible, normal, or very visible for <STRONG>visibility</STRONG> equal to
<STRONG>0</STRONG>, <STRONG>1</STRONG>, or <STRONG>2</STRONG> respectively. If the terminal supports the
- <EM>visibility</EM> requested, the previous <EM>cursor</EM> state is
- returned; otherwise, <STRONG>ERR</STRONG> is returned.
+ <EM>visibility</EM> requested, the previous <EM>cursor</EM> state is re-
+ turned; otherwise, <STRONG>ERR</STRONG> is returned.
The <STRONG>napms</STRONG> routine is used to sleep for <EM>ms</EM> milliseconds.
</PRE>
<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>curs_set</STRONG>, these routines always return <STRONG>OK</STRONG>.
- <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if the
+ Except for <STRONG>curs_set</STRONG>, these routines always return <STRONG>OK</STRONG>.
+
+ <STRONG>curs_set</STRONG> returns the previous cursor state, or <STRONG>ERR</STRONG> if the
requested <EM>visibility</EM> is not supported.
+ X/Open defines no error conditions. In this implementa-
+ tion
+
+ <STRONG>def_prog_mode</STRONG>, <STRONG>def_shell_mode</STRONG>, <STRONG>reset_prog_mode</STRONG>, <STRONG>re-</STRONG>
+ <STRONG>set_shell_mode</STRONG>
+ return an error if the terminal was not ini-
+ tialized, or if the I/O call to obtain the
+ terminal settings fails.
+
+ <STRONG>ripoffline</STRONG>
+ returns an error if the maximum number of
+ ripped-off lines exceeds the maximum (NRIPS =
+ 5).
+
</PRE>
<H2>NOTES</H2><PRE>
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>,
- <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>, <STRONG>curs_re-</STRONG>
+ <STRONG><A HREF="curs_refresh.3x.html">fresh(3x)</A></STRONG>, <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>, <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
- <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
+ <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_mouse.3x,v 1.24 2003/12/27 18:47:54 tom Exp @
+ * @Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+<STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG> <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>,
- <STRONG>wmouse_trafo</STRONG>, <STRONG>mouseinterval</STRONG> - mouse interface through
+ <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>wenclose</STRONG>, <STRONG>mouse_trafo</STRONG>,
+ <STRONG>wmouse_trafo</STRONG>, <STRONG>mouseinterval</STRONG> - mouse interface through
curses
pseudo-key values in the <STRONG>wgetch</STRONG> input stream.
To make mouse events visible, use the <STRONG>mousemask</STRONG> function.
- This will set the mouse events to be reported. By
- default, no mouse events are reported. The function will
+ This will set the mouse events to be reported. By de-
+ fault, no mouse events are reported. The function will
return a mask to indicate which of the specified mouse
events can be reported; on complete failure it returns 0.
If oldmask is non-NULL, this function fills the indicated
the mouse pointer; setting a nonzero mask may turn it on.
Whether this happens is device-dependent.
- Here are the mouse event type masks:
+ Here are the mouse event type masks which may be defined:
+
<EM>Name</EM> <EM>Description</EM>
---------------------------------------------------------------------
BUTTON1_CLICKED mouse button 1 clicked
BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
+ ---------------------------------------------------------------------
BUTTON2_PRESSED mouse button 2 down
BUTTON2_RELEASED mouse button 2 up
BUTTON2_CLICKED mouse button 2 clicked
BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
+ ---------------------------------------------------------------------
+
BUTTON3_PRESSED mouse button 3 down
BUTTON3_RELEASED mouse button 3 up
BUTTON3_CLICKED mouse button 3 clicked
-
BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
+ ---------------------------------------------------------------------
BUTTON4_PRESSED mouse button 4 down
BUTTON4_RELEASED mouse button 4 up
BUTTON4_CLICKED mouse button 4 clicked
BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
+ ---------------------------------------------------------------------
+ BUTTON5_PRESSED mouse button 5 down
+ BUTTON5_RELEASED mouse button 5 up
+ BUTTON5_CLICKED mouse button 5 clicked
+ BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked
+ BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked
+ ---------------------------------------------------------------------
BUTTON_SHIFT shift was down during button state change
BUTTON_CTRL control was down during button state change
BUTTON_ALT alt was down during button state change
ALL_MOUSE_EVENTS report all button state changes
REPORT_MOUSE_POSITION report mouse movement
+ ---------------------------------------------------------------------
Once a class of mouse events have been made visible in a
- window, calling the <STRONG>wgetch</STRONG> function on that window may
- return <STRONG>KEY_MOUSE</STRONG> as an indicator that a mouse event has
- been queued. To read the event data and pop the event off
- the queue, call <STRONG>getmouse</STRONG>. This function will return <STRONG>OK</STRONG> if
- a mouse event is actually visible in the given window, <STRONG>ERR</STRONG>
+ window, calling the <STRONG>wgetch</STRONG> function on that window may re-
+ turn <STRONG>KEY_MOUSE</STRONG> as an indicator that a mouse event has been
+ queued. To read the event data and pop the event off the
+ queue, call <STRONG>getmouse</STRONG>. This function will return <STRONG>OK</STRONG> if a
+ mouse event is actually visible in the given window, <STRONG>ERR</STRONG>
otherwise. When <STRONG>getmouse</STRONG> returns <STRONG>OK</STRONG>, the data deposited
as y and x in the event structure coordinates will be
screen-relative character-cell coordinates. The returned
event type.
The <STRONG>ungetmouse</STRONG> function behaves analogously to <STRONG>ungetch</STRONG>.
- It pushes a <STRONG>KEY_MOUSE</STRONG> event onto the input queue, and
- associates with that event the given state data and
- screen-relative character-cell coordinates.
+ It pushes a <STRONG>KEY_MOUSE</STRONG> event onto the input queue, and as-
+ sociates with that event the given state data and screen-
+ relative character-cell coordinates.
The <STRONG>wenclose</STRONG> function tests whether a given pair of
screen-relative character-cell coordinates is enclosed by
dinates from stdscr-relative coordinates to screen-rela-
tive coordinates or vice versa. Please remember, that
stdscr-relative coordinates are not always identical to
- screen-relative coordinates due to the mechanism to
- reserve lines on top or bottom of the screen for other
- purposes (ripoff() call, see also slk_... functions). If
+ screen-relative coordinates due to the mechanism to re-
+ serve lines on top or bottom of the screen for other pur-
+ poses (ripoff() call, see also slk_... functions). If
the parameter <STRONG>to_screen</STRONG> is <STRONG>TRUE</STRONG>, the pointers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must
reference the coordinates of a location inside the window
<STRONG>win</STRONG>. They are converted to screen-relative coordinates
and returned through the pointers. If the conversion was
- successful, the function returns <STRONG>TRUE</STRONG>. If one of the
- parameters was NULL or the location is not inside the win-
+ successful, the function returns <STRONG>TRUE</STRONG>. If one of the pa-
+ rameters was NULL or the location is not inside the win-
dow, <STRONG>FALSE</STRONG> is returned. If <STRONG>to_screen</STRONG> is <STRONG>FALSE</STRONG>, the point-
ers <STRONG>pY,</STRONG> <STRONG>pX</STRONG> must reference screen-relative coordinates.
They are converted to stdscr-relative coordinates if the
successful.
The <STRONG>mouseinterval</STRONG> function sets the maximum time (in thou-
- sands of a second) that can elapse between press and
- release events for them to be recognized as a click. Use
- <STRONG>mouseinterval(-1)</STRONG> to disable click resolution. This func-
- tion returns the previous interval value. The default is
- one sixth of a second.
-
- Note that mouse events will be ignored when input is in
+ sands of a second) that can elapse between press and re-
+ lease events for them to be recognized as a click. Use
+ <STRONG>mouseinterval(0)</STRONG> to disable click resolution. This func-
+ tion returns the previous interval value. Use <STRONG>mouseinter-</STRONG>
+ <STRONG>val(-1)</STRONG> to obtain the interval without altering it. The
+ default is one sixth of a second.
+
+ Note that mouse events will be ignored when input is in
cooked mode, and will cause an error beep when cooked mode
- is being simulated in a window by a function such as <STRONG>get-</STRONG>
+ is being simulated in a window by a function such as <STRONG>get-</STRONG>
<STRONG>str</STRONG> that expects a linefeed for input-loop termination.
</PRE>
<H2>RETURN VALUE</H2><PRE>
- <STRONG>getmouse</STRONG>, <STRONG>ungetmouse</STRONG> and <STRONG>mouseinterval</STRONG> return the integer
- <STRONG>ERR</STRONG> upon failure or <STRONG>OK</STRONG> upon successful completion. <STRONG>mouse-</STRONG>
- <STRONG>mask</STRONG> returns the mask of reportable events. <STRONG>wenclose</STRONG> and
- <STRONG>wmouse_trafo</STRONG> are boolean functions returning <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>
- depending on their test result.
+ <STRONG>getmouse</STRONG> and <STRONG>ungetmouse</STRONG> return the integer <STRONG>ERR</STRONG> upon fail-
+ ure or <STRONG>OK</STRONG> upon successful completion.
+
+ <STRONG>getmouse</STRONG>
+ returns an error. If no mouse driver was ini-
+ tialized, or if the mask parameter is zero,
+
+ <STRONG>ungetmouse</STRONG>
+ returns an error if the FIFO is full.
+
+ <STRONG>mousemask</STRONG> returns the mask of reportable events.
+
+ <STRONG>mouseinterval</STRONG> returns the previous interval value, unless
+ the terminal was not initialized. In that case, it re-
+ turns the maximum interval value (166).
+
+ <STRONG>wenclose</STRONG> and <STRONG>wmouse_trafo</STRONG> are boolean functions returning
+ <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG> depending on their test result.
</PRE>
The feature macro <STRONG>NCURSES_MOUSE_VERSION</STRONG> is provided so the
preprocessor can be used to test whether these features
- are present (its value is 1). If the interface is
- changed, the value of <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incre-
- mented.
+ are present. If the interface is changed, the value of
+ <STRONG>NCURSES_MOUSE_VERSION</STRONG> will be incremented. These values
+ for <STRONG>NCURSES_MOUSE_VERSION</STRONG> may be specified when configur-
+ ing ncurses:
+
+ 1 has definitions for reserved events. The mask
+ uses 28 bits.
+
+ 2 adds definitions for button 5, removes the defi-
+ nitions for reserved events. The mask uses 29
+ bits.
The order of the <STRONG>MEVENT</STRONG> structure members is not guaran-
teed. Additional fields may be added to the structure in
the future.
- Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented using
- either xterm's built-in mouse-tracking API or platform-
- specific drivers including
+ Under <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>, these calls are implemented using ei-
+ ther xterm's built-in mouse-tracking API or platform-spe-
+ cific drivers including
Alessandro Rubini's gpm server.
FreeBSD sysmouse
OS/2 EMX
Mouse events under xterm will not be detected correctly in
a window with its keypad bit off, since they are inter-
- preted as a variety of function key. Your terminfo
- description must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning
- of the response from xterm for mouse clicks).
+ preted as a variety of function key. Your terminfo de-
+ scription must have <STRONG>kmous</STRONG> set to "\E[M" (the beginning of
+ the response from xterm for mouse clicks).
Because there are no standard terminal responses that
would serve to identify terminals which support the xterm
- <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
+ <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_move.3x,v 1.7 2001/11/03 19:58:47 tom Exp @
+ * @Id: curs_move.3x,v 1.11 2005/05/15 17:36:19 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+<STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG> <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
fies only "an integer value other than <STRONG>ERR</STRONG>") upon success-
ful completion.
+ Specifically, they return an error if the window pointer
+ is null, or if the position is outside the window.
+
</PRE>
<H2>NOTES</H2><PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
- These functions are described in the XSI Curses standard,
- Issue 4. The standard specifies that if (y,x) is within a
- multi-column character, the cursor is moved to the first
- column of that character; however, this implementation
- does not yet support the extended-level XSI multibyte
- characters.
+ These functions are described in the XSI Curses standard,
+ Issue 4.
</PRE>
- <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
+ <STRONG><A HREF="curs_move.3x.html">curs_move(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_outopts.3x,v 1.18 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_outopts.3x,v 1.20 2005/05/15 16:18:32 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+<STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG> <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>clearok</STRONG>, <STRONG>idlok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>immedok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>setscrreg</STRONG>,
+ <STRONG>clearok</STRONG>, <STRONG>idlok</STRONG>, <STRONG>idcok</STRONG>, <STRONG>immedok</STRONG>, <STRONG>leaveok</STRONG>, <STRONG>setscrreg</STRONG>,
<STRONG>wsetscrreg</STRONG>, <STRONG>scrollok</STRONG>, <STRONG>nl</STRONG>, <STRONG>nonl</STRONG> - <STRONG>curses</STRONG> output options
<H2>DESCRIPTION</H2><PRE>
These routines set options that change the style of output
within <STRONG>curses</STRONG>. All options are initially <STRONG>FALSE</STRONG>, unless
- otherwise stated. It is not necessary to turn these
- options off before calling <STRONG>endwin</STRONG>.
+ otherwise stated. It is not necessary to turn these op-
+ tions off before calling <STRONG>endwin</STRONG>.
If <STRONG>clearok</STRONG> is called with <STRONG>TRUE</STRONG> as argument, the next call
to <STRONG>wrefresh</STRONG> with this window will clear the screen com-
the window image, such as the ones caused by <STRONG>waddch,</STRONG> <STRONG>wclr-</STRONG>
<STRONG>tobot,</STRONG> <STRONG>wscrl</STRONG>, etc., automatically cause a call to <STRONG>wre-</STRONG>
<STRONG>fresh</STRONG>. However, it may degrade performance considerably,
- due to repeated calls to <STRONG>wrefresh</STRONG>. It is disabled by
- default.
+ due to repeated calls to <STRONG>wrefresh</STRONG>. It is disabled by de-
+ fault.
Normally, the hardware cursor is left at the location of
- the window cursor being refreshed. The <STRONG>leaveok</STRONG> option
- allows the cursor to be left wherever the update happens
- to leave it. It is useful for applications where the cur-
- sor is not used, since it reduces the need for cursor
- motions.
+ the window cursor being refreshed. The <STRONG>leaveok</STRONG> option al-
+ lows the cursor to be left wherever the update happens to
+ leave it. It is useful for applications where the cursor
+ is not used, since it reduces the need for cursor motions.
The <STRONG>setscrreg</STRONG> and <STRONG>wsetscrreg</STRONG> routines allow the applica-
tion programmer to set a software scrolling region in a
window. <EM>top</EM> and <EM>bot</EM> are the line numbers of the top and
bottom margin of the scrolling region. (Line 0 is the top
- line of the window.) If this option and <STRONG>scrollok</STRONG> are
- enabled, an attempt to move off the bottom margin line
- causes all lines in the scrolling region to scroll one
- line in the direction of the first line. Only the text of
- the window is scrolled. (Note that this has nothing to do
+ line of the window.) If this option and <STRONG>scrollok</STRONG> are en-
+ abled, an attempt to move off the bottom margin line caus-
+ es all lines in the scrolling region to scroll one line in
+ the direction of the first line. Only the text of the
+ window is scrolled. (Note that this has nothing to do
with the use of a physical scrolling region capability in
the terminal, like that in the VT100. If <STRONG>idlok</STRONG> is enabled
- and the terminal has either a scrolling region or
- insert/delete line capability, they will probably be used
- by the output routines.)
+ and the terminal has either a scrolling region or in-
+ sert/delete line capability, they will probably be used by
+ the output routines.)
The <STRONG>scrollok</STRONG> option controls what happens when the cursor
of a window is moved off the edge of the window or
cess and <STRONG>ERR</STRONG> upon failure. All other routines that return
an integer always return <STRONG>OK</STRONG>.
+ X/Open does not define any error conditions.
+
+ In this implementation, those functions that have a window
+ pointer will return an error if the window pointer is
+ null.
+
+ <STRONG>wclrtoeol</STRONG>
+ returns an error if the cursor position is
+ about to wrap.
+
+ <STRONG>wsetscrreg</STRONG>
+ returns an error if the scrolling region lim-
+ its extend outside the window.
+
+ X/Open does not define any error conditions. This imple-
+ mentation returns an error if the window pointer is null.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
translations; AT&T curses (at least as late as SVr1) did
not. We choose to do so, on the theory that a programmer
requesting raw input wants a clean (ideally 8-bit clean)
- connection that the operating system does not mess with.
+ connection that the operating system will not alter.
Some historic curses implementations had, as an undocu-
mented feature, the ability to do the equivalent of
- <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
+ <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_overlay.3x,v 1.11 2002/07/20 14:53:00 tom Exp @
+ * @Id: curs_overlay.3x,v 1.13 2005/05/15 16:18:38 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+<STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG> <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay and manipulate over-
- lapped <STRONG>curses</STRONG> windows
+ <STRONG>overlay</STRONG>, <STRONG>overwrite</STRONG>, <STRONG>copywin</STRONG> - overlay and manipulate
+ overlapped <STRONG>curses</STRONG> windows
</PRE>
and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
<STRONG>ERR</STRONG>") upon successful completion.
+ X/Open defines no error conditions. In this implementa-
+ tion, <STRONG>copywin</STRONG>, <STRONG>overlay</STRONG> and <STRONG>overwrite</STRONG> return an error if
+ either of the window pointers are null, or if some part of
+ the window would be placed off-screen.
+
</PRE>
<H2>NOTES</H2><PRE>
- <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
+ <STRONG><A HREF="curs_overlay.3x.html">curs_overlay(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_pad.3x,v 1.12 2004/01/04 01:36:49 tom Exp @
+ * @Id: curs_pad.3x,v 1.14 2005/05/15 16:18:43 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+<STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>newpad</STRONG>, <STRONG>subpad</STRONG>, <STRONG>prefresh</STRONG>, <STRONG>pnoutrefresh</STRONG>, <STRONG>pechochar</STRONG>,
+ <STRONG>newpad</STRONG>, <STRONG>subpad</STRONG>, <STRONG>prefresh</STRONG>, <STRONG>pnoutrefresh</STRONG>, <STRONG>pechochar</STRONG>,
<STRONG>pecho_wchar</STRONG> - create and display <STRONG>curses</STRONG> pads
it is not restricted by the screen size, and is not neces-
sarily associated with a particular part of the screen.
Pads can be used when a large window is needed, and only a
- part of the window will be on the screen at one time.
- Automatic refreshes of pads (e.g., from scrolling or echo-
- ing of input) do not occur. It is not legal to call <STRONG>wre-</STRONG>
- <STRONG>fresh</STRONG> with a <EM>pad</EM> as an argument; the routines <STRONG>prefresh</STRONG> or
+ part of the window will be on the screen at one time. Au-
+ tomatic refreshes of pads (e.g., from scrolling or echoing
+ of input) do not occur. It is not legal to call <STRONG>wrefresh</STRONG>
+ with a <EM>pad</EM> as an argument; the routines <STRONG>prefresh</STRONG> or
<STRONG>pnoutrefresh</STRONG> should be called instead. Note that these
routines require additional parameters to specify the part
of the pad to be displayed and the location on the screen
screen coordinates, the window is at position (<EM>begin</EM>_<EM>x</EM><STRONG>,</STRONG>
<EM>begin</EM>_<EM>y</EM>) on the pad. The window is made in the middle of
the window <EM>orig</EM>, so that changes made to one window affect
- both windows. During the use of this routine, it will
- often be necessary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM>
- before calling <STRONG>prefresh</STRONG>.
+ both windows. During the use of this routine, it will of-
+ ten be necessary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> be-
+ fore calling <STRONG>prefresh</STRONG>.
The <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> routines are analogous to
<STRONG>wrefresh</STRONG> and <STRONG>wnoutrefresh</STRONG> except that they relate to pads
culated from the screen coordinates, since the rectangles
must be the same size. Both rectangles must be entirely
contained within their respective structures. Negative
- values of <EM>pminrow</EM>, <EM>pmincol</EM>, <EM>sminrow</EM>, or <EM>smincol</EM> are
- treated as if they were zero.
+ values of <EM>pminrow</EM>, <EM>pmincol</EM>, <EM>sminrow</EM>, or <EM>smincol</EM> are treat-
+ ed as if they were zero.
The <STRONG>pechochar</STRONG> routine is functionally equivalent to a call
to <STRONG>addch</STRONG> followed by a call to <STRONG>refresh</STRONG>, a call to <STRONG>waddch</STRONG>
lowed by a call to <STRONG>prefresh</STRONG>. The knowledge that only a
single character is being output is taken into considera-
tion and, for non-control characters, a considerable per-
- formance gain might be seen by using these routines
- instead of their equivalents. In the case of <STRONG>pechochar</STRONG>,
- the last location of the pad on the screen is reused for
- the arguments to <STRONG>prefresh</STRONG>.
+ formance gain might be seen by using these routines in-
+ stead of their equivalents. In the case of <STRONG>pechochar</STRONG>, the
+ last location of the pad on the screen is reused for the
+ arguments to <STRONG>prefresh</STRONG>.
The <STRONG>pecho_wchar</STRONG> function is the analogous wide-character
form of <STRONG>pechochar</STRONG>. It outputs one character to a pad and
Routines that return pointers return <STRONG>NULL</STRONG> on error, and
set <STRONG>errno</STRONG> to <STRONG>ENOMEM</STRONG>.
+ X/Open does not define any error conditions. In this im-
+ plementation
+
+ <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>
+ return an error if the window pointer is null,
+ or if the window is not really a pad or if the
+ area to refresh extends off-screen or if the
+ minimum coordinates are greater than the maxi-
+ mum.
+
+ <STRONG>pechochar</STRONG>
+ returns an error if the window is not really a
+ pad, and the associated call to <STRONG>wechochar</STRONG> re-
+ turns an error.
+
+ <STRONG>pecho_wchar</STRONG>
+ returns an error if the window is not really a
+ pad, and the associated call to <STRONG>wecho_wchar</STRONG>
+ returns an error.
+
</PRE>
<H2>NOTES</H2><PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
+ The XSI Curses standard, Issue 4 describes these func-
tions.
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>,
- <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>.
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>, <STRONG>curs_add-</STRONG>
+ <STRONG><A HREF="curs_addch.3x.html">ch(3x)</A></STRONG>.
- <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+ <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_print.3x,v 1.6 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_print.3x,v 1.7 2005/05/15 15:59:36 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
+<STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG> <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
following:
ENODEV
- Capabilities for printer redirection don't exist.
+ Capabilities for printer redirection do not exist.
ENOMEM
Couldn't allocate sufficient memory to buffer the
- <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
+ <STRONG><A HREF="curs_print.3x.html">curs_print(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_printw.3x,v 1.13 2002/11/16 22:28:57 tom Exp @
+ * @Id: curs_printw.3x,v 1.15 2005/05/15 16:55:16 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+<STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG> <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG>, <STRONG>mvwprintw</STRONG>, <STRONG>vwprintw</STRONG>, <STRONG>vw_printw</STRONG>
+ <STRONG>printw</STRONG>, <STRONG>wprintw</STRONG>, <STRONG>mvprintw</STRONG>, <STRONG>mvwprintw</STRONG>, <STRONG>vwprintw</STRONG>, <STRONG>vw_printw</STRONG>
- print formatted output in <STRONG>curses</STRONG> windows
and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
<STRONG>ERR</STRONG>") upon successful completion.
+ X/Open defines no error conditions. In this implementa-
+ tion, an error may be returned if it cannot allocate
+ enough memory for the buffer used to format the results.
+ It will return an error if the window pointer is null.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
- tions. The function <STRONG>vwprintw</STRONG> is marked TO BE WITHDRAWN,
- and is to be replaced by a function <STRONG>vw_printw</STRONG> using the
+ The XSI Curses standard, Issue 4 describes these func-
+ tions. The function <STRONG>vwprintw</STRONG> is marked TO BE WITHDRAWN,
+ and is to be replaced by a function <STRONG>vw_printw</STRONG> using the
<STRONG><stdarg.h></STRONG> interface. The Single Unix Specification, Ver-
- sion 2 states that <STRONG>vw_printw</STRONG> is preferred to <STRONG>vwprintw</STRONG>
- since the latter requires including <STRONG><varargs.h></STRONG>, which
- cannot be used in the same file as <STRONG><stdarg.h></STRONG>. This
- implementation uses <STRONG><stdarg.h></STRONG> for both, because that
- header is included in <STRONG><curses.h</STRONG>>.
+ sion 2 states that <STRONG>vw_printw</STRONG> is preferred to <STRONG>vwprintw</STRONG>
+ since the latter requires including <STRONG><varargs.h></STRONG>, which
+ cannot be used in the same file as <STRONG><stdarg.h></STRONG>. This im-
+ plementation uses <STRONG><stdarg.h></STRONG> for both, because that header
+ is included in <STRONG><curses.h</STRONG>>.
</PRE>
- <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
+ <STRONG><A HREF="curs_printw.3x.html">curs_printw(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_refresh.3x,v 1.10 2001/11/03 18:57:12 tom Exp @
+ * @Id: curs_refresh.3x,v 1.12 2005/05/15 16:18:49 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+<STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG> <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>doupdate</STRONG>, <STRONG>redrawwin</STRONG>, <STRONG>refresh</STRONG>, <STRONG>wnoutrefresh</STRONG>, <STRONG>wredrawln</STRONG>,
+ <STRONG>doupdate</STRONG>, <STRONG>redrawwin</STRONG>, <STRONG>refresh</STRONG>, <STRONG>wnoutrefresh</STRONG>, <STRONG>wredrawln</STRONG>,
<STRONG>wrefresh</STRONG> - refresh <STRONG>curses</STRONG> windows and lines
minal is left at the location of the cursor for that win-
dow.
- The <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG> routines allow multiple
- updates with more efficiency than <STRONG>wrefresh</STRONG> alone. In
- addition to all the window structures, <STRONG>curses</STRONG> keeps two
- data structures representing the terminal screen: a physi-
- cal screen, describing what is actually on the screen, and
- a virtual screen, describing what the programmer wants to
+ The <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG> routines allow multiple up-
+ dates with more efficiency than <STRONG>wrefresh</STRONG> alone. In addi-
+ tion to all the window structures, <STRONG>curses</STRONG> keeps two data
+ structures representing the terminal screen: a physical
+ screen, describing what is actually on the screen, and a
+ virtual screen, describing what the programmer wants to
have on the screen.
The routine <STRONG>wrefresh</STRONG> works by first calling <STRONG>wnoutrefresh</STRONG>,
which copies the named window to the virtual screen, and
then calling <STRONG>doupdate</STRONG>, which compares the virtual screen
to the physical screen and does the actual update. If the
- programmer wishes to output several windows at once, a
- series of calls to <STRONG>wrefresh</STRONG> results in alternating calls
- to <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG>, causing several bursts of
- output to the screen. By first calling <STRONG>wnoutrefresh</STRONG> for
- each window, it is then possible to call <STRONG>doupdate</STRONG> once,
- resulting in only one burst of output, with fewer total
- characters transmitted and less CPU time used. If the <EM>win</EM>
- argument to <STRONG>wrefresh</STRONG> is the global variable <STRONG>curscr</STRONG>, the
- screen is immediately cleared and repainted from scratch.
+ programmer wishes to output several windows at once, a se-
+ ries of calls to <STRONG>wrefresh</STRONG> results in alternating calls to
+ <STRONG>wnoutrefresh</STRONG> and <STRONG>doupdate</STRONG>, causing several bursts of out-
+ put to the screen. By first calling <STRONG>wnoutrefresh</STRONG> for each
+ window, it is then possible to call <STRONG>doupdate</STRONG> once, result-
+ ing in only one burst of output, with fewer total charac-
+ ters transmitted and less CPU time used. If the <EM>win</EM> argu-
+ ment to <STRONG>wrefresh</STRONG> is the global variable <STRONG>curscr</STRONG>, the screen
+ is immediately cleared and repainted from scratch.
The phrase "copies the named window to the virtual screen"
- above is ambiguous. What actually happens is that all
- <EM>touched</EM> (changed) lines in the window are copied to the
- virtual screen. This affects programs that use overlap-
- ping windows; it means that if two windows overlap, you
- can refresh them in either order and the overlap region
+ above is ambiguous. What actually happens is that all
+ <EM>touched</EM> (changed) lines in the window are copied to the
+ virtual screen. This affects programs that use overlap-
+ ping windows; it means that if two windows overlap, you
+ can refresh them in either order and the overlap region
will be modified only when it is explicitly changed. (But
- see the section on <STRONG>PORTABILITY</STRONG> below for a warning about
+ see the section on <STRONG>PORTABILITY</STRONG> below for a warning about
exploiting this behavior.)
The <STRONG>wredrawln</STRONG> routine indicates to <STRONG>curses</STRONG> that some screen
- lines are corrupted and should be thrown away before any-
- thing is written over them. It touches the indicated
- lines (marking them changed). The routine <STRONG>redrawwin</STRONG>()
+ lines are corrupted and should be thrown away before any-
+ thing is written over them. It touches the indicated
+ lines (marking them changed). The routine <STRONG>redrawwin</STRONG>()
touches the entire window.
</PRE>
<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure,
- and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
+ Routines that return an integer return <STRONG>ERR</STRONG> upon failure,
+ and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value other than
<STRONG>ERR</STRONG>") upon successful completion.
+ X/Open does not define any error conditions. In this im-
+ plementation
+
+ <STRONG>wnoutrefresh</STRONG>
+ returns an error if the window pointer is
+ null, or if the window is really a pad.
+
+ <STRONG>wredrawln</STRONG>
+ returns an error if the associated call to
+ <STRONG>touchln</STRONG> returns an error.
+
</PRE>
<H2>NOTES</H2><PRE>
has never been well-documented in historic curses versions
(including SVr4). It might be unwise to rely on either
behavior in programs that might have to be linked with
- other curses implementations. Instead, you can do an
- explicit <STRONG>touchwin()</STRONG> before the <STRONG>wnoutrefresh()</STRONG> call to
- guarantee an entire-contents copy anywhere.
+ other curses implementations. Instead, you can do an ex-
+ plicit <STRONG>touchwin()</STRONG> before the <STRONG>wnoutrefresh()</STRONG> call to guar-
+ antee an entire-contents copy anywhere.
</PRE>
- <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+ <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+<STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG> <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
- <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
+ <STRONG><A HREF="curs_scanw.3x.html">curs_scanw(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_scr_dump.3x,v 1.3 2003/10/25 20:34:06 tom Exp @
+ * @Id: curs_scr_dump.3x,v 1.5 2005/05/15 16:18:55 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+<STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG> <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>scr_dump</STRONG>, <STRONG>scr_restore</STRONG>, <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG> - read (write) a
+ <STRONG>scr_dump</STRONG>, <STRONG>scr_restore</STRONG>, <STRONG>scr_init</STRONG>, <STRONG>scr_set</STRONG> - read (write) a
<STRONG>curses</STRONG> screen from (to) a file
The <STRONG>scr_init</STRONG> routine reads in the contents of <EM>filename</EM> and
uses them to initialize the <STRONG>curses</STRONG> data structures about
- what the terminal currently has on its screen. If the
- data is determined to be valid, <STRONG>curses</STRONG> bases its next
- update of the screen on this information rather than
- clearing the screen and starting from scratch. <STRONG>scr_init</STRONG>
- is used after <STRONG>initscr</STRONG> or a <STRONG>system</STRONG> call to share the screen
- with another process which has done a <STRONG>scr_dump</STRONG> after its
- <STRONG>endwin</STRONG> call. The data is declared invalid if the terminfo
- capabilities <STRONG>rmcup</STRONG> and <STRONG>nrrmc</STRONG> exist; also if the terminal
- has been written to since the preceding <STRONG>scr_dump</STRONG> call.
+ what the terminal currently has on its screen. If the da-
+ ta is determined to be valid, <STRONG>curses</STRONG> bases its next update
+ of the screen on this information rather than clearing the
+ screen and starting from scratch. <STRONG>scr_init</STRONG> is used after
+ <STRONG>initscr</STRONG> or a <STRONG>system</STRONG> call to share the screen with another
+ process which has done a <STRONG>scr_dump</STRONG> after its <STRONG>endwin</STRONG> call.
+ The data is declared invalid if the terminfo capabilities
+ <STRONG>rmcup</STRONG> and <STRONG>nrrmc</STRONG> exist; also if the terminal has been writ-
+ ten to since the preceding <STRONG>scr_dump</STRONG> call.
The <STRONG>scr_set</STRONG> routine is a combination of <STRONG>scr_restore</STRONG> and
<STRONG>scr_init</STRONG>. It tells the program that the information in
All routines return the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG>
upon success.
+ X/Open defines no error conditions. In this implementa-
+ tion, each will return an error if the file cannot be
+ opened.
+
</PRE>
<H2>NOTES</H2><PRE>
The SVr4 docs merely say under <STRONG>scr_init</STRONG> that the dump data
is also considered invalid "if the time-stamp of the tty
- is old" but don't define "old".
+ is old" but do not define "old".
</PRE>
- <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
+ <STRONG><A HREF="curs_scr_dump.3x.html">curs_scr_dump(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_scroll.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_scroll.3x,v 1.12 2005/05/15 16:19:01 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+<STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG> <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
specifies "an integer value other than <STRONG>ERR</STRONG>") upon success-
ful completion.
+ X/Open defines no error conditions.
+
+ This implementation returns an error if the window pointer
+ is null, or if scrolling is not enabled in the window,
+ e.g., with <STRONG>scrollok</STRONG>.
+
</PRE>
<H2>NOTES</H2><PRE>
entire screen "is" performed, not "may be" performed.
This implementation deliberately does not guarantee that
this will occur, to leave open the possibility of smarter
- optimization of multiple scroll actions on the next
- update.
+ optimization of multiple scroll actions on the next up-
+ date.
Neither the SVr4 nor the XSI documentation specify whether
the current attribute or current color-pair of blanks gen-
- erated by the scroll function is zeroed. Under this
- implementation it is.
+ erated by the scroll function is zeroed. Under this im-
+ plementation it is.
</PRE>
- <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
+ <STRONG><A HREF="curs_scroll.3x.html">curs_scroll(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_slk.3x,v 1.12 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_slk.3x,v 1.14 2005/05/15 16:19:06 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+<STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>,
- <STRONG>slk_label</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>,
- <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>,
- <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>, <STRONG>slk_color</STRONG> - <STRONG>curses</STRONG> soft label rou-
- tines
+ <STRONG>slk_init</STRONG>, <STRONG>slk_set</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_noutrefresh</STRONG>,
+ <STRONG>slk_label</STRONG>, <STRONG>slk_clear</STRONG>, <STRONG>slk_restore</STRONG>, <STRONG>slk_touch</STRONG>, <STRONG>slk_attron</STRONG>,
+ <STRONG>slk_attrset</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attr_on</STRONG>, <STRONG>slk_attr_set</STRONG>,
+ <STRONG>slk_attr_off</STRONG>, <STRONG>slk_attr</STRONG>, <STRONG>slk_color</STRONG> - <STRONG>curses</STRONG> soft label
+ routines
</PRE>
line of <STRONG>stdscr</STRONG>, reducing the size of <STRONG>stdscr</STRONG> and the vari-
able <STRONG>LINES</STRONG>. <STRONG>curses</STRONG> standardizes on eight labels of up to
eight characters each. In addition to this, the ncurses
- implementation supports a mode where it simulates 12
- labels of up to five characters each. This is most common
+ implementation supports a mode where it simulates 12 la-
+ bels of up to five characters each. This is most common
for todays PC like enduser devices. Please note that
ncurses simulates this mode by taking over up to two lines
at the bottom of the screen, it doesn't try to use any
<H2>RETURN VALUE</H2><PRE>
These routines return <STRONG>ERR</STRONG> upon failure and OK (SVr4 speci-
fies only "an integer value other than <STRONG>ERR</STRONG>") upon success-
- ful completion. <STRONG>slk_attr</STRONG> returns the attribute used for
- the soft keys.
+ ful completion.
- <STRONG>slk_label</STRONG> returns <STRONG>NULL</STRONG> on error.
+ X/Open defines no error conditions. In this implementa-
+ tion
+
+ <STRONG>slk_attr</STRONG>
+ returns the attribute used for the soft keys.
+
+ <STRONG>slk_attroff</STRONG>, <STRONG>slk_attron</STRONG>, <STRONG>slk_clear</STRONG>,
+ <STRONG>slk_noutrefresh</STRONG>, <STRONG>slk_refresh</STRONG>, <STRONG>slk_touch</STRONG>
+ return an error if the terminal or the soft-
+ keys were not initialized.
+
+ <STRONG>slk_attrset</STRONG>
+ returns an error if the terminal or the soft-
+ keys were not initialized.
+
+ <STRONG>slk_attr_set</STRONG>
+ returns an error if the terminal or the soft-
+ keys were not initialized, or the color pair
+ is outside the range 0..COLOR_PAIRS-1, or opts
+ is not null.
+
+ <STRONG>slk_color</STRONG>
+ returns an error if the terminal or the soft-
+ keys were not initialized, or the color pair
+ is outside the range 0..COLOR_PAIRS-1.
+
+ <STRONG>slk_init</STRONG>
+ returns an error if the format parameter is
+ outside the range 0..3.
+
+ <STRONG>slk_label</STRONG>
+ returns <STRONG>NULL</STRONG> on error.
+
+ <STRONG>slk_set</STRONG>
+ returns an error if the terminal or the soft-
+ keys were not initialized, or the <EM>labnum</EM> pa-
+ rameter is outside the range of label counts,
+ or if the format parameter is outside the
+ range 0..2, or if memory for the labels cannot
+ be allocated.
</PRE>
</PRE>
<H2>PORTABILITY</H2><PRE>
The XSI Curses standard, Issue 4, describes these func-
- tions. It changes the argument type of the attribute-
- manipulation functions <STRONG>slk_attron</STRONG>, <STRONG>slk_attroff</STRONG>,
- <STRONG>slk_attrset</STRONG> to be <STRONG>attr_t</STRONG>, and adds <STRONG>const</STRONG> qualifiers. The
- format codes <STRONG>2</STRONG> and <STRONG>3</STRONG> for <STRONG>slk_init()</STRONG> and the function
- <STRONG>slk_attr</STRONG> are specific to ncurses.
+ tions. It changes the argument type of the attribute-ma-
+ nipulation functions <STRONG>slk_attron</STRONG>, <STRONG>slk_attroff</STRONG>, <STRONG>slk_attrset</STRONG>
+ to be <STRONG>attr_t</STRONG>, and adds <STRONG>const</STRONG> qualifiers. The format codes
+ <STRONG>2</STRONG> and <STRONG>3</STRONG> for <STRONG>slk_init()</STRONG> and the function <STRONG>slk_attr</STRONG> are spe-
+ cific to ncurses.
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>,
- <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>, <STRONG><A HREF="curs_initscr.3x.html">curs_initscr(3x)</A></STRONG>, <STRONG>curs_re-</STRONG>
+ <STRONG><A HREF="curs_refresh.3x.html">fresh(3x)</A></STRONG>
- <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+ <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+<STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG> <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
- <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
+ <STRONG><A HREF="curs_termattrs.3x.html">curs_termattrs(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG> <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
</PRE>
<H2>RETURN VALUE</H2><PRE>
Except where explicitly noted, routines that return an
- integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only speci-
- fies "an integer value other than <STRONG>ERR</STRONG>") upon successful
- completion.
+ integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 only
+ specifies "an integer value other than <STRONG>ERR</STRONG>") upon success-
+ ful completion.
Routines that return pointers return <STRONG>NULL</STRONG> on error.
- <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
+ <STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_terminfo.3x,v 1.18 2003/12/27 18:48:59 tom Exp @
+ * @Id: curs_terminfo.3x,v 1.20 2005/05/15 16:19:13 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+<STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG> <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>del_curterm</STRONG>, <STRONG>mvcur</STRONG>, <STRONG>putp</STRONG>, <STRONG>restartterm</STRONG>, <STRONG>set_curterm</STRONG>, <STRONG>set-</STRONG>
- <STRONG>term</STRONG>, <STRONG>setupterm</STRONG>, <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, <STRONG>tigetstr</STRONG>, <STRONG>tparm</STRONG>,
- <STRONG>tputs</STRONG>, <STRONG>vid_attr</STRONG>, <STRONG>vid_puts</STRONG>, <STRONG>vidattr</STRONG>, <STRONG>vidputs</STRONG> - <STRONG>curses</STRONG>
+ <STRONG>del_curterm</STRONG>, <STRONG>mvcur</STRONG>, <STRONG>putp</STRONG>, <STRONG>restartterm</STRONG>, <STRONG>set_curterm</STRONG>,
+ <STRONG>setterm</STRONG>, <STRONG>setupterm</STRONG>, <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG>, <STRONG>tigetstr</STRONG>, <STRONG>tparm</STRONG>,
+ <STRONG>tputs</STRONG>, <STRONG>vid_attr</STRONG>, <STRONG>vid_puts</STRONG>, <STRONG>vidattr</STRONG>, <STRONG>vidputs</STRONG> - <STRONG>curses</STRONG>
interfaces to terminfo database
tion keys. For all other functionality, <STRONG>curses</STRONG> routines
are more suitable and their use is recommended.
- Initially, <STRONG>setupterm</STRONG> should be called. Note that
- <STRONG>setupterm</STRONG> is automatically called by <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG>.
+ Initially, <STRONG>setupterm</STRONG> should be called. Note that <STRONG>se-</STRONG>
+ <STRONG>tupterm</STRONG> is automatically called by <STRONG>initscr</STRONG> and <STRONG>newterm</STRONG>.
This defines the set of terminal-dependent variables
[listed in <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. The <STRONG>terminfo</STRONG> variables <STRONG>lines</STRONG> and
<STRONG>columns</STRONG> are initialized by <STRONG>setupterm</STRONG> as follows: If
strings [including the output of <STRONG>tparm</STRONG>] should be printed
with <STRONG>tputs</STRONG> or <STRONG>putp</STRONG>. Call the <STRONG>reset_shell_mode</STRONG> to restore
the tty modes before exiting [see <STRONG><A HREF="curs_kernel.3x.html">curs_kernel(3x)</A></STRONG>]. Pro-
- grams which use cursor addressing should output
- <STRONG>enter_ca_mode</STRONG> upon startup and should output <STRONG>exit_ca_mode</STRONG>
+ grams which use cursor addressing should output <STRONG>en-</STRONG>
+ <STRONG>ter_ca_mode</STRONG> upon startup and should output <STRONG>exit_ca_mode</STRONG>
before exiting. Programs desiring shell escapes should
call
<STRONG>reset_shell_mode</STRONG> and output <STRONG>exit_ca_mode</STRONG> before the shell
- is called and should output <STRONG>enter_ca_mode</STRONG> and call
- <STRONG>reset_prog_mode</STRONG> after returning from the shell.
+ is called and should output <STRONG>enter_ca_mode</STRONG> and call <STRONG>re-</STRONG>
+ <STRONG>set_prog_mode</STRONG> after returning from the shell.
The <STRONG>setupterm</STRONG> routine reads in the <STRONG>terminfo</STRONG> database, ini-
tializing the <STRONG>terminfo</STRONG> structures, but does not set up the
the environment variable <STRONG>TERM</STRONG> is used. All output is to
file descriptor <STRONG>fildes</STRONG> which is initialized for output.
If <EM>errret</EM> is not null, then <STRONG>setupterm</STRONG> returns <STRONG>OK</STRONG> or <STRONG>ERR</STRONG>
- and stores a status value in the integer pointed to by
- <EM>errret</EM>. A return value of <STRONG>OK</STRONG> combined with status of <STRONG>1</STRONG> in
+ and stores a status value in the integer pointed to by <EM>er-</EM>
+ <EM>rret</EM>. A return value of <STRONG>OK</STRONG> combined with status of <STRONG>1</STRONG> in
<EM>errret</EM> is normal. If <STRONG>ERR</STRONG> is returned, examine <EM>errret</EM>:
<STRONG>1</STRONG> means that the terminal is hardcopy, cannot be
The <STRONG>del_curterm</STRONG> routine frees the space pointed to by
<EM>oterm</EM> and makes it available for further use. If <EM>oterm</EM> is
the same as <STRONG>cur_term</STRONG>, references to any of the <STRONG>terminfo</STRONG>
- boolean, numeric, and string variables thereafter may
- refer to invalid memory locations until another <STRONG>setupterm</STRONG>
+ boolean, numeric, and string variables thereafter may re-
+ fer to invalid memory locations until another <STRONG>setupterm</STRONG>
has been called.
The <STRONG>restartterm</STRONG> routine is similar to <STRONG>setupterm</STRONG> and
that argument.
The <STRONG>mvcur</STRONG> routine provides low-level cursor motion. It
- takes effect immediately (rather than at the next
- refresh).
+ takes effect immediately (rather than at the next re-
+ fresh).
The <STRONG>tigetflag</STRONG>, <STRONG>tigetnum</STRONG> and <STRONG>tigetstr</STRONG> routines return the
value of the capability corresponding to the <STRONG>terminfo</STRONG> <EM>cap-</EM>
from the terminal description.
The <STRONG>tigetnum</STRONG> routine returns the value <STRONG>-2</STRONG> if <EM>capname</EM> is
- not a numeric capability, or <STRONG>-1</STRONG> if it is canceled or
- absent from the terminal description.
+ not a numeric capability, or <STRONG>-1</STRONG> if it is canceled or ab-
+ sent from the terminal description.
The <STRONG>tigetstr</STRONG> routine returns the value <STRONG>(char</STRONG> <STRONG>*)-1</STRONG> if <EM>cap-</EM>
<EM>name</EM> is not a string capability, or <STRONG>0</STRONG> if it is canceled or
Routines that return pointers always return <STRONG>NULL</STRONG> on error.
+ X/Open defines no error conditions. In this implementa-
+ tion
+
+ <STRONG>del_curterm</STRONG>
+ returns an error if its terminal parameter is
+ null.
+
+ <STRONG>restartterm</STRONG>
+ returns an error if the associated call to <STRONG>se-</STRONG>
+ <STRONG>tupterm</STRONG> returns an error.
+
+ <STRONG>setupterm</STRONG>
+ returns an error if it cannot allocate enough
+ memory, or create the initial windows (stdscr,
+ curscr, newscr). Other error conditions are
+ documented above.
+
</PRE>
<H2>NOTES</H2><PRE>
- <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
+ <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_touch.3x,v 1.8 2000/07/08 11:07:57 tom Exp @
+ * @Id: curs_touch.3x,v 1.10 2005/05/15 16:19:19 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+<STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG> <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
unless otherwise noted in the preceding routine descrip-
tions.
+ X/Open does not define any error conditions. In this im-
+ plementation
+
+ <STRONG>is_linetouched</STRONG>
+ returns an error if the window pointer is
+ null, or if the line number is outside the
+ window. Note that ERR is distinct from TRUE
+ and FALSE, which are the normal return values
+ of this function.
+
+ <STRONG>wtouchln</STRONG>
+ returns an error if the window pointer is
+ null, or if the line number is outside the
+ window.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
+ The XSI Curses standard, Issue 4 describes these func-
tions.
- Some historic curses implementations had, as an undocu-
- mented feature, the ability to do the equivalent of
- <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(std-</STRONG>
+ Some historic curses implementations had, as an undocu-
+ mented feature, the ability to do the equivalent of
+ <STRONG>clearok(...,</STRONG> <STRONG>1)</STRONG> by saying <STRONG>touchwin(stdscr)</STRONG> or <STRONG>clear(std-</STRONG>
<STRONG>scr)</STRONG>. This will not work under ncurses.
- <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
+ <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2000,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2000-2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_trace.3x,v 1.5 2002/02/16 22:39:52 tom Exp @
+ * @Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+<STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG> <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>_tracef</STRONG>, <STRONG>_tracedump</STRONG>, <STRONG>_traceattr</STRONG>, <STRONG>_traceattr2</STRONG>,
- <STRONG>_nc_tracebits</STRONG>, <STRONG>_tracechar</STRONG>, <STRONG>_tracechtype</STRONG>, <STRONG>_tracechtype2</STRONG>,
+ <STRONG>_tracef</STRONG>, <STRONG>_tracedump</STRONG>, <STRONG>_traceattr</STRONG>, <STRONG>_traceattr2</STRONG>,
+ <STRONG>_nc_tracebits</STRONG>, <STRONG>_tracechar</STRONG>, <STRONG>_tracechtype</STRONG>, <STRONG>_tracechtype2</STRONG>,
<STRONG>_tracemouse</STRONG>, <STRONG>trace</STRONG> - <STRONG>curses</STRONG> debugging routines
</PRE>
<H2>SYNOPSIS</H2><PRE>
<STRONG>#include</STRONG> <STRONG><curses.h></STRONG>
+
<STRONG>void</STRONG> <STRONG>_tracef(const</STRONG> <STRONG>char</STRONG> <STRONG>*format,</STRONG> <STRONG>...);</STRONG>
<STRONG>void</STRONG> <STRONG>_tracedump(const</STRONG> <STRONG>char</STRONG> <STRONG>*label,</STRONG> <STRONG>WINDOW</STRONG> <STRONG>*win);</STRONG>
<STRONG>char</STRONG> <STRONG>*_traceattr(attr_t</STRONG> <STRONG>attr);</STRONG>
</PRE>
<H2>DESCRIPTION</H2><PRE>
- The <STRONG>trace</STRONG> routines are used for debugging the ncurses
- libraries, as well as applications which use the ncurses
- libraries. These functions are normally available only
- with the debugging library <EM>libncurses</EM><STRONG>_</STRONG><EM>g.a</EM>, but may be com-
- piled into any model (shared, static, profile) by defining
- the symbol <STRONG>TRACE</STRONG>.
+ The <STRONG>trace</STRONG> routines are used for debugging the ncurses li-
+ braries, as well as applications which use the ncurses li-
+ braries. These functions are normally available only with
+ the debugging library <EM>libncurses</EM><STRONG>_</STRONG><EM>g.a</EM>, but may be compiled
+ into any model (shared, static, profile) by defining the
+ symbol <STRONG>TRACE</STRONG>.
The principal parts of this interface are the <STRONG>trace</STRONG> rou-
tine which selectively enables different tracing features,
TRACE_ORDINARY
trace all update actions. The old and new screen
- contents are written to the trace file for each
- refresh.
+ contents are written to the trace file for each re-
+ fresh.
TRACE_CALLS
trace all curses calls. The parameters for each call
maximum trace level, enables all of the separate
trace features.
- Some tracing features are enabled whenever the <STRONG>trace</STRONG>
- parameter is nonzero. Some features overlap. The
- specific names are used as a guideline.
+ Some tracing features are enabled whenever the <STRONG>trace</STRONG> pa-
+ rameter is nonzero. Some features overlap. The specific
+ names are used as a guideline.
</PRE>
- <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
+ <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_util.3x,v 1.11 2003/07/19 19:59:56 tom Exp @
+ * @Id: curs_util.3x,v 1.17 2005/06/25 21:51:37 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+<STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG> <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
<STRONG>delay_output</STRONG>, <STRONG>filter</STRONG>, <STRONG>flushinp</STRONG>, <STRONG>getwin</STRONG>, <STRONG>key_name</STRONG>, <STRONG>keyname</STRONG>,
- <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous <STRONG>curses</STRONG>
+ <STRONG>putwin</STRONG>, <STRONG>unctrl</STRONG>, <STRONG>use_env</STRONG>, <STRONG>wunctrl</STRONG> - miscellaneous <STRONG>curses</STRONG>
utility routines
</PRE>
<H2>DESCRIPTION</H2><PRE>
The <STRONG>unctrl</STRONG> routine returns a character string which is a
- printable representation of the character <EM>c</EM>, ignoring
- attributes. Control characters are displayed in the <STRONG>^</STRONG><EM>X</EM>
- notation. Printing characters are displayed as is. The
+ printable representation of the character <EM>c</EM>, ignoring at-
+ tributes. Control characters are displayed in the <STRONG>^</STRONG><EM>X</EM> no-
+ tation. Printing characters are displayed as is. The
corresponding <STRONG>wunctrl</STRONG> returns a printable representation
of a wide-character.
ment, the values of <STRONG>lines</STRONG> and <STRONG>columns</STRONG> specified in the
<EM>terminfo</EM> database will be used, even if environment vari-
ables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> (used by default) are set, or if
- <STRONG>curses</STRONG> is running in a window (in which case default
- behavior would be to use the window size if <STRONG>LINES</STRONG> and
- <STRONG>COLUMNS</STRONG> are not set).
+ <STRONG>curses</STRONG> is running in a window (in which case default be-
+ havior would be to use the window size if <STRONG>LINES</STRONG> and
+ <STRONG>COLUMNS</STRONG> are not set). Note that setting <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG>
+ overrides the corresponding size which may be obtained
+ from the operating system.
The <STRONG>putwin</STRONG> routine writes all data associated with window
<EM>win</EM> into the file to which <EM>filep</EM> points. This information
</PRE>
<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>flushinp</STRONG>, routines that return an integer
- return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an
- integer value other than <STRONG>ERR</STRONG>") upon successful completion.
-
- <STRONG>flushinp</STRONG> always returns <STRONG>OK</STRONG>.
+ Except for <STRONG>flushinp</STRONG>, routines that return an integer re-
+ turn <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4 specifies only "an in-
+ teger value other than <STRONG>ERR</STRONG>") upon successful completion.
Routines that return pointers return <STRONG>NULL</STRONG> on error.
+ X/Open does not define any error conditions. In this im-
+ plementation
+
+ <STRONG>flushinp</STRONG>
+ returns an error if the terminal was not ini-
+ tialized.
+
+ <STRONG>putwin</STRONG>
+ returns an error if the associated <STRONG>fwrite</STRONG>
+ calls return an error.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
The XSI Curses standard, Issue 4 describes these func-
tions. It states that <STRONG>unctrl</STRONG> and <STRONG>wunctrl</STRONG> will return a
- null pointer if unsuccessful, but does not define any
- error conditions.
+ null pointer if unsuccessful, but does not define any er-
+ ror conditions.
The SVr4 documentation describes the action of <STRONG>filter</STRONG> only
in the vaguest terms. The description here is adapted
from the XSI Curses standard (which erroneously fails to
describe the disabling of <STRONG>cuu</STRONG>).
+ The strings returned by <STRONG>unctrl</STRONG> in this implementation are
+ determined at compile time, showing C1 controls from the
+ upper-128 codes with a `~' prefix rather than `^'. Other
+ implementations typically show both sets of control char-
+ acters with `^', and may strip the parameter to 7 bits.
+ This implementation uses 8 bits but does not modify the
+ string to reflect locale.
+
+ The <STRONG>keyname</STRONG> function may return the names of user-defined
+ string capabilities which are defined in the terminfo en-
+ try via the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>.
+
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
+ <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: curs_window.3x,v 1.10 2003/05/10 20:33:49 jmc Exp @
+ * @Id: curs_window.3x,v 1.13 2005/05/15 16:32:02 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+<STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>newwin</STRONG>, <STRONG>delwin</STRONG>, <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>,
- <STRONG>wsyncup</STRONG>, <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>wsyncdown</STRONG> - create <STRONG>curses</STRONG>
+ <STRONG>newwin</STRONG>, <STRONG>delwin</STRONG>, <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>,
+ <STRONG>wsyncup</STRONG>, <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>wsyncdown</STRONG> - create <STRONG>curses</STRONG>
windows
to <STRONG>LINES</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>y</EM> and <STRONG>COLS</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>x</EM>. A new full-screen
window is created by calling <STRONG>newwin(0,0,0,0)</STRONG>.
- Calling <STRONG>delwin</STRONG> deletes the named window, freeing all mem-
- ory associated with it (it does not actually erase the
- window's screen image). Subwindows must be deleted before
+ Calling <STRONG>delwin</STRONG> deletes the named window, freeing all memo-
+ ry associated with it (it does not actually erase the win-
+ dow's screen image). Subwindows must be deleted before
the main window can be deleted.
Calling <STRONG>mvwin</STRONG> moves the window so that the upper left-hand
dow <EM>orig</EM> rather than the screen. There is no difference
between the subwindows and the derived windows.
- Calling <STRONG>mvderwin</STRONG> moves a derived window (or subwindow)
- inside its parent window. The screen-relative parameters
- of the window are not changed. This routine is used to
- display different parts of the parent window at the same
+ Calling <STRONG>mvderwin</STRONG> moves a derived window (or subwindow) in-
+ side its parent window. The screen-relative parameters of
+ the window are not changed. This routine is used to dis-
+ play different parts of the parent window at the same
physical position on the screen.
Calling <STRONG>dupwin</STRONG> creates an exact duplicate of the window
Calling <STRONG>wsyncup</STRONG> touches all locations in ancestors of <EM>win</EM>
that are changed in <EM>win</EM>. If <STRONG>syncok</STRONG> is called with second
- argument <STRONG>TRUE</STRONG> then <STRONG>wsyncup</STRONG> is called automatically when-
- ever there is a change in the window.
+ argument <STRONG>TRUE</STRONG> then <STRONG>wsyncup</STRONG> is called automatically whenev-
+ er there is a change in the window.
The <STRONG>wsyncdown</STRONG> routine touches each location in <EM>win</EM> that
has been touched in any of its ancestor windows. This
</PRE>
<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return the integer <STRONG>ERR</STRONG>
- upon failure and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value
+ Routines that return an integer return the integer <STRONG>ERR</STRONG> up-
+ on failure and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value
other than <STRONG>ERR</STRONG>") upon successful completion.
- <STRONG>delwin</STRONG> returns the integer <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> upon
- successful completion.
-
Routines that return pointers return <STRONG>NULL</STRONG> on error.
+ X/Open defines no error conditions. In this implementa-
+ tion
+
+ <STRONG>delwin</STRONG>
+ returns an error if the window pointer is
+ null, or if the window is the parent of anoth-
+ er window.
+
+ This implementation also maintains a list of
+ windows, and checks that the pointer passed to
+ <STRONG>delwin</STRONG> is one that it created, returning an
+ error if it was not..
+
+ <STRONG>mvderwin</STRONG>
+ returns an error if the window pointer is
+ null, or if some part of the window would be
+ placed off-screen.
+
+ <STRONG>mvwin</STRONG>
+ returns an error if the window pointer is
+ null, or if the window is really a pad, or if
+ some part of the window would be placed off-
+ screen.
+
+ <STRONG>syncok</STRONG>
+ returns an error if the window pointer is
+ null.
+
</PRE>
<H2>NOTES</H2><PRE>
- If many small changes are made to the window, the <STRONG>wsyncup</STRONG>
+ If many small changes are made to the window, the <STRONG>wsyncup</STRONG>
option could degrade performance.
Note that <STRONG>syncok</STRONG> may be a macro.
</PRE>
<H2>BUGS</H2><PRE>
- The subwindow functions (<EM>subwin</EM>, <EM>derwin</EM>, <EM>mvderwin</EM>, <STRONG>wsyn-</STRONG>
- <STRONG>cup</STRONG>, <STRONG>wsyncdown</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>syncok</STRONG>) are flaky, incom-
- pletely implemented, and not well tested.
+ The subwindow functions (<EM>subwin</EM>, <EM>derwin</EM>, <EM>mvderwin</EM>, <STRONG>wsyn-</STRONG>
+ <STRONG>cup</STRONG>, <STRONG>wsyncdown</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>syncok</STRONG>) are flaky, incomplete-
+ ly implemented, and not well tested.
- The System V curses documentation is very unclear about
+ The System V curses documentation is very unclear about
what <STRONG>wsyncup</STRONG> and <STRONG>wsyncdown</STRONG> actually do. It seems to imply
- that they are only supposed to touch exactly those lines
+ that they are only supposed to touch exactly those lines
that are affected by ancestor changes. The language here,
- and the behavior of the <STRONG>curses</STRONG> implementation, is pat-
- terned on the XPG4 curses standard. The weaker XPG4 spec
+ and the behavior of the <STRONG>curses</STRONG> implementation, is pat-
+ terned on the XPG4 curses standard. The weaker XPG4 spec
may result in slower updates.
</PRE>
<H2>PORTABILITY</H2><PRE>
- The XSI Curses standard, Issue 4 describes these func-
+ The XSI Curses standard, Issue 4 describes these func-
tions.
- <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
+ <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * Author: Thomas E. Dickey 1997,1999,2000
- * @Id: default_colors.3x,v 1.17 2003/10/25 20:41:08 tom Exp @
+ * Author: Thomas E. Dickey 1997,1999,2000,2005
+ * @Id: default_colors.3x,v 1.18 2005/02/19 20:25:44 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
+<STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
accepts negative arguments to specify default foreground
or background colors.
+ The <EM>use</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> function was added to support
+ <EM>ded</EM>. This is a full-screen application which uses curses
+ to manage only part of the screen. The bottom portion of
+ the screen, which is of adjustable size, is left uncolored
+ to display the results from shell commands. The top por-
+ tion of the screen colors filenames using a scheme like
+ the "color ls" programs. Attempting to manage the back-
+ ground color of the screen for this application would give
+ unsatisfactory results for a variety of reasons. This
+ extension was devised after noting that color xterm (and
+ similar programs) provides a background color which does
+ not necessarily correspond to any of the ANSI colors.
+ While a special terminfo entry could be constructed using
+ nine colors, there was no mechanism provided within curses
+ to account for the related <EM>orig</EM><STRONG>_</STRONG><EM>pair</EM> and <EM>back</EM><STRONG>_</STRONG><EM>color</EM><STRONG>_</STRONG><EM>erase</EM>
+ capabilities.
+
+ The <EM>assume</EM><STRONG>_</STRONG><EM>default</EM><STRONG>_</STRONG><EM>colors()</EM> function was added to solve a
+ different problem: support for applications which would
+ use environment variables and other configuration to
+ bypass curses' notion of the terminal's default colors,
+ setting specific values.
+
</PRE>
<H2>PORTABILITY</H2><PRE>
- These routines are specific to ncurses. They were not
- supported on Version 7, BSD or System V implementations.
- It is recommended that any code depending on them be con-
+ These routines are specific to ncurses. They were not
+ supported on Version 7, BSD or System V implementations.
+ It is recommended that any code depending on them be con-
ditioned using NCURSES_VERSION.
</PRE>
<H2>AUTHOR</H2><PRE>
- Thomas Dickey (from an analysis of the requirements for
+ Thomas Dickey (from an analysis of the requirements for
color xterm for XFree86 3.1.2C, February 1996).
- <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
+ <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 1997
- * @Id: define_key.3x,v 1.10 2003/10/25 20:33:16 tom Exp @
+ * @Id: define_key.3x,v 1.11 2004/06/05 19:20:03 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+<STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG> <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>.
+ <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>, <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>.
</PRE>
- <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
+ <STRONG><A HREF="define_key.3x.html">define_key(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG> <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+<STRONG><A HREF="form.3x.html">form(3x)</A></STRONG> <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
The following table lists each <STRONG>form</STRONG> routine and the name
of the manual page on which it is described.
+
<STRONG>curses</STRONG> Routine Name Manual Page Name
-------------------------------------------------
current_field <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
form_driver <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
form_fields <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
form_init <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- form_opts <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+ form_opts <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
form_opts_off <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
form_opts_on <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
form_page <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
- <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
+ <STRONG><A HREF="form.3x.html">form(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG> <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+<STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG> <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
- <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
+ <STRONG><A HREF="form_cursor.3x.html">form_cursor(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG> <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+<STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG> <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
- <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
+ <STRONG><A HREF="form_data.3x.html">form_data(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG> <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+<STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG> <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
- <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
+ <STRONG><A HREF="form_driver.3x.html">form_driver(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG> <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+<STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG> <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
- <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
+ <STRONG><A HREF="form_field.3x.html">form_field(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG> <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+<STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG> <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
- <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_attributes.3x.html">form_field_attributes(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_buffer.3x,v 1.10 2003/05/10 20:22:01 tom Exp @
+ * @Id: form_field_buffer.3x,v 1.12 2005/05/15 15:59:55 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG> <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+<STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG> <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
value out of the buffer and removes the leading and trail-
ing spaces. Please note also, that subsequent operations
on the form will probably change the content of the
- buffer. So don't use it for long term storage of the
+ buffer. So do not use it for long term storage of the
entered form data.
The function <STRONG>set_field_status</STRONG> sets the associated status
</PRE>
<H2>NOTES</H2><PRE>
The header file <STRONG><form.h></STRONG> automatically includes the header
- file <STRONG><curses.h></STRONG>.
+ file
+
+ When configured for wide-characters, <STRONG>field_buffer</STRONG> returns
+ a pointer to temporary storage (allocated and freed by the
+ library). The application should not attempt to modify
+ the data. It will be freed on the next call to
+ <STRONG>field_buffer</STRONG> to return the same buffer. <STRONG><curses.h></STRONG>.
</PRE>
- <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_buffer.3x.html">form_field_buffer(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_info.3x,v 1.8 2002/01/19 22:48:32 tom Exp @
+ * @Id: form_field_info.3x,v 1.9 2005/10/08 22:15:07 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG> <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+<STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG> <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
The function <STRONG>dynamic_field_info</STRONG> returns the actual size of
the field, and its maximum possible size. If the field
has no size limit, the location addressed by the third
- argument will be set to 0. (A field can be made dynamic
- by turning off the <STRONG>O_STATIC</STRONG>).
+ argument will be set to 0. A field can be made dynamic by
+ turning off the <STRONG>O_STATIC</STRONG> option with <STRONG>field_opts_off</STRONG>.
</PRE>
- <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_info.3x.html">form_field_info(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG> <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+<STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG> <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
- <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_just.3x.html">form_field_just(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG> <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+<STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG> <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
- <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_new.3x.html">form_field_new(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: form_field_opts.3x,v 1.8 2003/05/10 20:33:49 jmc Exp @
+ * @Id: form_field_opts.3x,v 1.10 2005/10/08 22:16:18 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG> <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+<STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG> <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
The field can be edited.
O_WRAP
- Words that don't fit on a line are wrapped to the
+ Words that do not fit on a line are wrapped to the
next line. Words are blank-separated.
O_BLANK
Allow a blank field.
O_STATIC
- Field buffers are fixed to field's original size.
+ Field buffers are fixed to field's original size.
+ Turn this option off to create a dynamic field.
O_PASSOK
Validate field only if modified by user.
</PRE>
<H2>RETURN VALUE</H2><PRE>
- Except for <STRONG>field_opts</STRONG>, each routine returns one of the
+ Except for <STRONG>field_opts</STRONG>, each routine returns one of the
following:
<STRONG>E_OK</STRONG> The routine succeeded.
</PRE>
<H2>PORTABILITY</H2><PRE>
- These routines emulate the System V forms library. They
+ These routines emulate the System V forms library. They
were not supported on Version 7 or BSD versions.
</PRE>
<H2>AUTHORS</H2><PRE>
- Juergen Pfeifer. Manual pages and adaptation for new
+ Juergen Pfeifer. Manual pages and adaptation for new
curses by Eric S. Raymond.
- <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_opts.3x.html">form_field_opts(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG> <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+<STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG> <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
- <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_userptr.3x.html">form_field_userptr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+<STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG> <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
- <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
+ <STRONG><A HREF="form_field_validation.3x.html">form_field_validation(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+<STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG> <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
- <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
+ <STRONG><A HREF="form_fieldtype.3x.html">form_fieldtype(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG> <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+<STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG> <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
- <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
+ <STRONG><A HREF="form_hook.3x.html">form_hook(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG> <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+<STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG> <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
- <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
+ <STRONG><A HREF="form_new.3x.html">form_new(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG> <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+<STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG> <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
- <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
+ <STRONG><A HREF="form_new_page.3x.html">form_new_page(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG> <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+<STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG> <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
- <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
+ <STRONG><A HREF="form_opts.3x.html">form_opts(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG> <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+<STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG> <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
- <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
+ <STRONG><A HREF="form_page.3x.html">form_page(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG> <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+<STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG> <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
- <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
+ <STRONG><A HREF="form_post.3x.html">form_post(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG> <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+<STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG> <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
<H2>DESCRIPTION</H2><PRE>
The function <STRONG>form_request_name</STRONG> returns the printable name
of a form request code.
- The function <STRONG>form_request_by_name</STRONG> searches in the name-
- table for a request with the given name and returns its
+ The function <STRONG>form_request_by_name</STRONG> searches in the name-ta-
+ ble for a request with the given name and returns its
request code. Otherwise E_NO_MATCH is returned.
- <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
+ <STRONG><A HREF="form_requestname.3x.html">form_requestname(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG> <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+<STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG> <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
- <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
+ <STRONG><A HREF="form_userptr.3x.html">form_userptr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG> <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+<STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG> <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
- <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
+ <STRONG><A HREF="form_win.3x.html">form_win(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
+<!--
+ $Id: index.html,v 1.1 2001/09/02 00:53:24 tom Exp $
+ -->
+<HTML>
+<HEAD>
+<TITLE>NCURSES - Manual Pages</TITLE>
+<LINK REV=MADE HREF="mailto:dickey@invisible-island.net">
+<BASE HREF="http://invisible-island.net/ncurses/man/">
+</HEAD>
+<BODY>
+<HR>
+<ul>
+<li>Programs:
+<ul>
+<li><a href = "captoinfo.1m.html">captoinfo - convert a termcap description into a terminfo description</a>
+<li><a href = "clear.1.html">clear - clear the terminal screen</a>
+<li><a href = "infocmp.1m.html">infocmp - compare or print out terminfo descriptions</a>
+<li><a href = "infotocap.1m.html">infotocap - convert a terminfo description into a termcap description</a>
+<li><a href = "tic.1m.html">tic - the terminfo entry-description compiler</a>
+<li><a href = "toe.1m.html">toe - table of (terminfo) entries</a>
+<li><a href = "tput.1.html">tput - initialize a terminal or query terminfo database</a>
+<li><a href = "tset.1.html">tset - terminal initialization</a>
+</ul>
+<li>Libraries:
+<ul>
+<li><a href = "ncurses.3x.html">ncurses - CRT screen handling and optimization package</a>
+<li><a href = "panel.3x.html">panel- panel stack extension for curses</a>
+<li><a href = "form.3x.html">form - curses extension for programming forms</a>
+<li><a href = "menu.3x.html">menu - curses extension for programming menus</a>
+</ul>
+<li>File formats:
+<ul>
+<li><a href = "terminfo.5.html">terminfo - terminal capability data base</a>
+<li><a href = "term.5.html">term - format of compiled term file.</a>
+<li><a href = "term.7.html">term - conventions for naming terminal types</a>
+</ul>
+</ul>
+</BODY>
+</HTML>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: infocmp.1m,v 1.34 2003/10/25 16:19:01 tom Exp @
+ * @Id: infocmp.1m,v 1.39 2004/08/28 22:43:49 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+<STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
</PRE>
<H2>SYNOPSIS</H2><PRE>
- <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTVcdegilnpqrtu</STRONG>]
+ <STRONG>infocmp</STRONG> [<STRONG>-1CEFGILTVcdegilnpqrtux</STRONG>]
[<STRONG>-v</STRONG> <EM>n</EM>] [<STRONG>-s</STRONG> <STRONG>d</STRONG>| <STRONG>i</STRONG>| <STRONG>l</STRONG>| <STRONG>c</STRONG>] [<STRONG>-R</STRONG> <STRONG>subset</STRONG>]
[<STRONG>-w</STRONG> <EM>width</EM>] [<STRONG>-A</STRONG> <EM>directory</EM>] [<STRONG>-B</STRONG> <EM>directory</EM>]
[<EM>termname</EM>...]
The <STRONG>-I</STRONG>, <STRONG>-L</STRONG>, and <STRONG>-C</STRONG> options will produce a source listing
for each terminal named.
+
<STRONG>-I</STRONG> use the <STRONG>terminfo</STRONG> names
<STRONG>-L</STRONG> use the long C variable name listed in <<STRONG>term.h</STRONG>>
<STRONG>-C</STRONG> use the <STRONG>termcap</STRONG> names
equivalents, and some terminal types which commonly have
such sequences, are:
+
<STRONG>terminfo</STRONG> <STRONG>termcap</STRONG> Representative Terminals
---------------------------------------------------------------
<STRONG>%p1%c</STRONG> <STRONG>%.</STRONG> adm
tions. Here is a list of the DEC/ANSI special
sequences recognized:
+
Action Meaning
-----------------------------------------
RIS full reset
LL home-down
RSR reset scroll region
+ DECSTR soft reset (VT320)
+ S7C1T 7-bit controls (VT220)
+
ISO DEC G0 enable DEC graphics for G0
ISO UK G0 enable UK chars for G0
ISO US G0 enable US chars for G0
DECPNM normal keypad mode
DECANSI enter ANSI mode
+ ECMA[+-]AM keyboard action mode
+ ECMA[+-]IRM insert replace mode
+ ECMA[+-]SRM send receive mode
+ ECMA[+-]LNM linefeed mode
+
DEC[+-]CKM application cursor keys
DEC[+-]ANM set VT52 mode
+
DEC[+-]COLM 132-column mode
DEC[+-]SCLM smooth scroll
DEC[+-]SCNM reverse video mode
<STRONG>-w</STRONG> <EM>width</EM>
changes the output to <EM>width</EM> characters.
+ <STRONG>-x</STRONG> print information for user-defined capabilities.
+ These are extensions to the terminfo repertoire which
+ can be loaded using the <STRONG>-x</STRONG> option of <STRONG>tic</STRONG>.
+
</PRE>
<H2>FILES</H2><PRE>
- <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
+ <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1999-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: infotocap.1m,v 1.4 2003/05/11 00:32:53 tom Exp @
+ * @Id: infotocap.1m,v 1.5 2004/07/05 13:16:08 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG> <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
+<STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG> <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
- <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
+ <STRONG><A HREF="infotocap.1m.html">infotocap(1m)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************
* Author: Thomas E. Dickey 2003
- * @Id: key_defined.3x,v 1.2 2003/05/17 23:24:45 tom Exp @
+ * @Id: key_defined.3x,v 1.3 2004/06/05 19:19:09 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
+<STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG> <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
</PRE>
<H2>NAME</H2><PRE>
- <STRONG>define_key</STRONG> - define a keycode
+ <STRONG>key_defined</STRONG> - check if a keycode is defined
</PRE>
- <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
+ <STRONG><A HREF="key_defined.3x.html">key_defined(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
- <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+ <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+<STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG> <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
- <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
+ <STRONG><A HREF="keyok.3x.html">keyok(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+<STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG> <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
The following table lists each <STRONG>menu</STRONG> routine and the name
of the manual page on which it is described.
+
<STRONG>curses</STRONG> Routine Name Manual Page Name
--------------------------------------------
current_item <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
menu_mark <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
menu_opts <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
menu_opts_off <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
- menu_opts_on <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
+ menu_opts_on <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
menu_pad <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
menu_pattern <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
menu_request_by_name <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
- <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
+ <STRONG><A HREF="menu.3x.html">menu(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG> <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+<STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG> <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
- <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
+ <STRONG><A HREF="menu_attributes.3x.html">menu_attributes(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG> <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
+<STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG> <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
- <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
+ <STRONG><A HREF="menu_cursor.3x.html">menu_cursor(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG> <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+<STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG> <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
- <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
+ <STRONG><A HREF="menu_driver.3x.html">menu_driver(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG> <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+<STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG> <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
- <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
+ <STRONG><A HREF="menu_format.3x.html">menu_format(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG> <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+<STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG> <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
- <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
+ <STRONG><A HREF="menu_hook.3x.html">menu_hook(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG> <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
+<STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG> <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
+ <STRONG><A HREF="menu_items.3x.html">menu_items(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG> <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
+<STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG> <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
- <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
+ <STRONG><A HREF="menu_mark.3x.html">menu_mark(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG> <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+<STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG> <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
- <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
+ <STRONG><A HREF="menu_new.3x.html">menu_new(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG> <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
+<STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG> <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
- <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
+ <STRONG><A HREF="menu_opts.3x.html">menu_opts(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG> <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
+<STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG> <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
- <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
+ <STRONG><A HREF="menu_pattern.3x.html">menu_pattern(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG> <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
+<STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG> <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
- <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
+ <STRONG><A HREF="menu_post.3x.html">menu_post(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG> <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
+<STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG> <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
<H2>DESCRIPTION</H2><PRE>
The function <STRONG>menu_request_name</STRONG> returns the printable name
of a menu request code.
- The function <STRONG>menu_request_by_name</STRONG> searches in the name-
- table for a request with the given name and returns its
+ The function <STRONG>menu_request_by_name</STRONG> searches in the name-ta-
+ ble for a request with the given name and returns its
request code. Otherwise E_NO_MATCH is returned.
- <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
+ <STRONG><A HREF="menu_requestname.3x.html">menu_requestname(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: menu_spacing.3x,v 1.6 2001/08/04 20:36:16 William.Setzer Exp @
+ * @Id: menu_spacing.3x,v 1.8 2004/12/11 23:39:07 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG> <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+<STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG> <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
the middle of this spacing area the pad character. The
remaining parts are filled with spaces. <STRONG>spc_rows</STRONG> controls
the number of rows that are used for an item. It must not
- be larger than 3. The menu system inserts then blank lines
+ be larger than 3. The menu system inserts the blank lines
between item rows, these lines will contain the pad char-
acter in the appropriate positions. <STRONG>spc_columns</STRONG> controls
the number of blanks between columns of items. It must not
- <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
+ <STRONG><A HREF="menu_spacing.3x.html">menu_spacing(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG> <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+<STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG> <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
- <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
+ <STRONG><A HREF="menu_userptr.3x.html">menu_userptr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG> <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+<STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG> <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
- <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
+ <STRONG><A HREF="menu_win.3x.html">menu_win(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG> <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+<STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG> <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
- <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
+ <STRONG><A HREF="mitem_current.3x.html">mitem_current(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG> <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+<STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG> <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
- <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
+ <STRONG><A HREF="mitem_name.3x.html">mitem_name(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG> <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+<STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG> <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
- <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
+ <STRONG><A HREF="mitem_new.3x.html">mitem_new(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG> <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+<STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG> <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
- <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
+ <STRONG><A HREF="mitem_opts.3x.html">mitem_opts(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG> <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+<STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG> <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
- <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
+ <STRONG><A HREF="mitem_userptr.3x.html">mitem_userptr(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG> <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+<STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG> <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
- <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
+ <STRONG><A HREF="mitem_value.3x.html">mitem_value(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG> <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
+<STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG> <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
- <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
+ <STRONG><A HREF="mitem_visible.3x.html">mitem_visible(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: ncurses.3x,v 1.70 2004/01/11 01:45:54 tom Exp @
+ * @Id: ncurses.3x,v 1.76 2005/09/03 17:42:29 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+<STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
System V Release 4 UNIX, and the XPG4 curses standard (XSI
curses) but the <STRONG>ncurses</STRONG> library is freely redistributable
in source form. Differences from the SVr4 curses are sum-
- marized under the EXTENSIONS and BUGS sections below and
- described in detail in the EXTENSIONS and BUGS sections of
- individual man pages.
-
- A program using these routines must be linked with the
- <STRONG>-lncurses</STRONG> option, or (if it has been generated) with the
- debugging library <STRONG>-lncurses_g</STRONG>. (Your system integrator
- may also have installed these libraries under the names
+ marized under the EXTENSIONS and PORTABILITY sections
+ below and described in detail in the respective EXTEN-
+ SIONS, PORTABILITY and BUGS sections of individual man
+ pages.
+
+ A program using these routines must be linked with the
+ <STRONG>-lncurses</STRONG> option, or (if it has been generated) with the
+ debugging library <STRONG>-lncurses_g</STRONG>. (Your system integrator
+ may also have installed these libraries under the names
<STRONG>-lcurses</STRONG> and <STRONG>-lcurses_g</STRONG>.) The ncurses_g library generates
trace logs (in a file called 'trace' in the current direc-
tory) that describe curses actions.
- The <STRONG>ncurses</STRONG> package supports: overall screen, window and
+ The <STRONG>ncurses</STRONG> package supports: overall screen, window and
pad manipulation; output to windows and pads; reading ter-
- minal input; control over terminal and <STRONG>curses</STRONG> input and
- output options; environment query routines; color manipu-
+ minal input; control over terminal and <STRONG>curses</STRONG> input and
+ output options; environment query routines; color manipu-
lation; use of soft label keys; terminfo capabilities; and
access to low-level terminal-manipulation routines.
To initialize the routines, the routine <STRONG>initscr</STRONG> or <STRONG>newterm</STRONG>
- must be called before any of the other routines that deal
- with windows and screens are used. The routine <STRONG>endwin</STRONG>
+ must be called before any of the other routines that deal
+ with windows and screens are used. The routine <STRONG>endwin</STRONG>
must be called before exiting. To get character-at-a-time
- input without echoing (most interactive, screen oriented
- programs want this), the following sequence should be
+ input without echoing (most interactive, screen oriented
+ programs want this), the following sequence should be
used:
<STRONG>initscr();</STRONG> <STRONG>cbreak();</STRONG> <STRONG>noecho();</STRONG>
<STRONG>intrflush(stdscr,</STRONG> <STRONG>FALSE);</STRONG>
<STRONG>keypad(stdscr,</STRONG> <STRONG>TRUE);</STRONG>
- Before a <STRONG>curses</STRONG> program is run, the tab stops of the ter-
- minal should be set and its initialization strings, if
- defined, must be output. This can be done by executing
+ Before a <STRONG>curses</STRONG> program is run, the tab stops of the ter-
+ minal should be set and its initialization strings, if
+ defined, must be output. This can be done by executing
the <STRONG>tput</STRONG> <STRONG>init</STRONG> command after the shell environment variable
- <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually responsible
+ <STRONG>TERM</STRONG> has been exported. <STRONG>tset(1)</STRONG> is usually responsible
for doing this. [See <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> for further details.]
- The <STRONG>ncurses</STRONG> library permits manipulation of data struc-
- tures, called <EM>windows</EM>, which can be thought of as two-
- dimensional arrays of characters representing all or part
+ The <STRONG>ncurses</STRONG> library permits manipulation of data struc-
+ tures, called <EM>windows</EM>, which can be thought of as two-
+ dimensional arrays of characters representing all or part
of a CRT screen. A default window called <STRONG>stdscr</STRONG>, which is
- the size of the terminal screen, is supplied. Others may
+ the size of the terminal screen, is supplied. Others may
be created with <STRONG>newwin</STRONG>.
- Note that <STRONG>curses</STRONG> does not handle overlapping windows,
- that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you
+ Note that <STRONG>curses</STRONG> does not handle overlapping windows,
+ that's done by the <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> library. This means that you
can either use <STRONG>stdscr</STRONG> or divide the screen into tiled win-
- dows and not using <STRONG>stdscr</STRONG> at all. Mixing the two will
+ dows and not using <STRONG>stdscr</STRONG> at all. Mixing the two will
result in unpredictable, and undesired, effects.
Windows are referred to by variables declared as <STRONG>WINDOW</STRONG> <STRONG>*</STRONG>.
- These data structures are manipulated with routines
- described here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
- Among which the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
- More general versions of these routines are included with
- names beginning with <STRONG>w</STRONG>, allowing the user to specify a
+ These data structures are manipulated with routines
+ described here and elsewhere in the <STRONG>ncurses</STRONG> manual pages.
+ Among which the most basic routines are <STRONG>move</STRONG> and <STRONG>addch</STRONG>.
+ More general versions of these routines are included with
+ names beginning with <STRONG>w</STRONG>, allowing the user to specify a
window. The routines not beginning with <STRONG>w</STRONG> affect <STRONG>stdscr</STRONG>.)
- After using routines to manipulate a window, <STRONG>refresh</STRONG> is
- called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
- like <STRONG>stdscr</STRONG>. The characters in a window are actually of
- type <STRONG>chtype</STRONG>, (character and attribute data) so that other
- information about the character may also be stored with
+ After using routines to manipulate a window, <STRONG>refresh</STRONG> is
+ called, telling <STRONG>curses</STRONG> to make the user's CRT screen look
+ like <STRONG>stdscr</STRONG>. The characters in a window are actually of
+ type <STRONG>chtype</STRONG>, (character and attribute data) so that other
+ information about the character may also be stored with
each character.
- Special windows called <EM>pads</EM> may also be manipulated.
+ Special windows called <EM>pads</EM> may also be manipulated.
These are windows which are not constrained to the size of
- the screen and whose contents need not be completely dis-
+ the screen and whose contents need not be completely dis-
played. See <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG> for more information.
- In addition to drawing characters on the screen, video
- attributes and colors may be supported, causing the char-
- acters to show up in such modes as underlined, in reverse
- video, or in color on terminals that support such display
+ In addition to drawing characters on the screen, video
+ attributes and colors may be supported, causing the char-
+ acters to show up in such modes as underlined, in reverse
+ video, or in color on terminals that support such display
enhancements. Line drawing characters may be specified to
- be output. On input, <STRONG>curses</STRONG> is also able to translate
- arrow and function keys that transmit escape sequences
- into single values. The video attributes, line drawing
- characters, and input values use names, defined in
+ be output. On input, <STRONG>curses</STRONG> is also able to translate
+ arrow and function keys that transmit escape sequences
+ into single values. The video attributes, line drawing
+ characters, and input values use names, defined in
<STRONG><curses.h></STRONG>, such as <STRONG>A_REVERSE</STRONG>, <STRONG>ACS_HLINE</STRONG>, and <STRONG>KEY_LEFT</STRONG>.
If the environment variables <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> are set, or
- if the program is executing in a window environment, line
- and column information in the environment will override
+ if the program is executing in a window environment, line
+ and column information in the environment will override
information read by <EM>terminfo</EM>. This would effect a program
- running in an AT&T 630 layer, for example, where the size
+ running in an AT&T 630 layer, for example, where the size
of a screen is changeable (see <STRONG>ENVIRONMENT</STRONG>).
- If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
- gram using <STRONG>curses</STRONG> checks for a local terminal definition
- before checking in the standard place. For example, if
+ If the environment variable <STRONG>TERMINFO</STRONG> is defined, any pro-
+ gram using <STRONG>curses</STRONG> checks for a local terminal definition
+ before checking in the standard place. For example, if
<STRONG>TERM</STRONG> is set to <STRONG>att4424</STRONG>, then the compiled terminal defini-
tion is found in
<STRONG>/usr/share/terminfo/a/att4424</STRONG>.
(The <STRONG>a</STRONG> is copied from the first letter of <STRONG>att4424</STRONG> to avoid
- creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
+ creation of huge directories.) However, if <STRONG>TERMINFO</STRONG> is
set to <STRONG>$HOME/myterms</STRONG>, <STRONG>curses</STRONG> first checks
<STRONG>$HOME/myterms/a/att4424</STRONG>,
<STRONG>/usr/share/terminfo/a/att4424</STRONG>.
- This is useful for developing experimental definitions or
+ This is useful for developing experimental definitions or
when write permission in <STRONG>/usr/share/terminfo</STRONG> is not avail-
able.
- The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
- <STRONG><curses.h></STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
+ The integer variables <STRONG>LINES</STRONG> and <STRONG>COLS</STRONG> are defined in
+ <STRONG><curses.h></STRONG> and will be filled in by <STRONG>initscr</STRONG> with the size
of the screen. The constants <STRONG>TRUE</STRONG> and <STRONG>FALSE</STRONG> have the val-
ues <STRONG>1</STRONG> and <STRONG>0</STRONG>, respectively.
- The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
+ The <STRONG>curses</STRONG> routines also define the <STRONG>WINDOW</STRONG> <STRONG>*</STRONG> variable
<STRONG>curscr</STRONG> which is used for certain low-level operations like
- clearing and redrawing a screen containing garbage. The
+ clearing and redrawing a screen containing garbage. The
<STRONG>curscr</STRONG> can be used in only a few routines.
<STRONG>Routine</STRONG> <STRONG>and</STRONG> <STRONG>Argument</STRONG> <STRONG>Names</STRONG>
- Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
+ Many <STRONG>curses</STRONG> routines have two or more versions. The rou-
tines prefixed with <STRONG>w</STRONG> require a window argument. The rou-
tines prefixed with <STRONG>p</STRONG> require a pad argument. Those with-
out a prefix generally use <STRONG>stdscr</STRONG>.
The routines prefixed with <STRONG>mv</STRONG> require a <EM>y</EM> and <EM>x</EM> coordinate
- to move to before performing the appropriate action. The
- <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
- other routine. The coordinate <EM>y</EM> always refers to the row
- (of the window), and <EM>x</EM> always refers to the column. The
+ to move to before performing the appropriate action. The
+ <STRONG>mv</STRONG> routines imply a call to <STRONG>move</STRONG> before the call to the
+ other routine. The coordinate <EM>y</EM> always refers to the row
+ (of the window), and <EM>x</EM> always refers to the column. The
upper left-hand corner is always (0,0), not (1,1).
The routines prefixed with <STRONG>mvw</STRONG> take both a window argument
- and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
+ and <EM>x</EM> and <EM>y</EM> coordinates. The window argument is always
specified before the coordinates.
- In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
+ In each case, <EM>win</EM> is the window affected, and <EM>pad</EM> is the
pad affected; <EM>win</EM> and <EM>pad</EM> are always pointers to type <STRONG>WIN-</STRONG>
<STRONG>DOW</STRONG>.
Option setting routines require a Boolean flag <EM>bf</EM> with the
value <STRONG>TRUE</STRONG> or <STRONG>FALSE</STRONG>; <EM>bf</EM> is always of type <STRONG>bool</STRONG>. The vari-
- ables <EM>ch</EM> and <EM>attrs</EM> below are always of type <STRONG>chtype</STRONG>. The
- types <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in
- <STRONG><curses.h></STRONG>. The type <STRONG>TERMINAL</STRONG> is defined in <STRONG><term.h></STRONG>.
+ ables <EM>ch</EM> and <EM>attrs</EM> below are always of type <STRONG>chtype</STRONG>. The
+ types <STRONG>WINDOW</STRONG>, <STRONG>SCREEN</STRONG>, <STRONG>bool</STRONG>, and <STRONG>chtype</STRONG> are defined in
+ <STRONG><curses.h></STRONG>. The type <STRONG>TERMINAL</STRONG> is defined in <STRONG><term.h></STRONG>.
All other arguments are integers.
<STRONG>Routine</STRONG> <STRONG>Name</STRONG> <STRONG>Index</STRONG>
The following table lists each <STRONG>curses</STRONG> routine and the name
- of the manual page on which it is described. Routines
- flagged with `*' are ncurses-specific, not described by
+ of the manual page on which it is described. Routines
+ flagged with `*' are ncurses-specific, not described by
XPG4 or present in SVr4.
+
<STRONG>curses</STRONG> Routine Name Manual Page Name
--------------------------------------------
COLOR_PAIR <STRONG><A HREF="curs_color.3x.html">curs_color(3x)</A></STRONG>
_tracemouse <STRONG><A HREF="curs_trace.3x.html">curs_trace(3x)</A></STRONG>*
add_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
add_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+
add_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
addch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
-
addchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
addchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
addnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
getbegyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
getbkgd <STRONG><A HREF="curs_bkgd.3x.html">curs_bkgd(3x)</A></STRONG>
getbkgrnd <STRONG><A HREF="curs_bkgrnd.3x.html">curs_bkgrnd(3x)</A></STRONG>
+
getcchar <STRONG><A HREF="curs_getcchar.3x.html">curs_getcchar(3x)</A></STRONG>
getch <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG>
-
getmaxyx <STRONG><A HREF="curs_getyx.3x.html">curs_getyx(3x)</A></STRONG>
getmouse <STRONG><A HREF="curs_mouse.3x.html">curs_mouse(3x)</A></STRONG>*
getn_wstr <STRONG><A HREF="curs_get_wstr.3x.html">curs_get_wstr(3x)</A></STRONG>
mvadd_wch <STRONG><A HREF="curs_add_wch.3x.html">curs_add_wch(3x)</A></STRONG>
mvadd_wchnstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
mvadd_wchstr <STRONG><A HREF="curs_add_wchstr.3x.html">curs_add_wchstr(3x)</A></STRONG>
+
mvaddch <STRONG><A HREF="curs_addch.3x.html">curs_addch(3x)</A></STRONG>
mvaddchnstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
-
mvaddchstr <STRONG><A HREF="curs_addchstr.3x.html">curs_addchstr(3x)</A></STRONG>
mvaddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
mvaddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
mvwin_wchstr <STRONG><A HREF="curs_in_wchstr.3x.html">curs_in_wchstr(3x)</A></STRONG>
mvwinch <STRONG><A HREF="curs_inch.3x.html">curs_inch(3x)</A></STRONG>
mvwinchnstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
+
mvwinchstr <STRONG><A HREF="curs_inchstr.3x.html">curs_inchstr(3x)</A></STRONG>
mvwinnstr <STRONG><A HREF="curs_instr.3x.html">curs_instr(3x)</A></STRONG>
-
mvwinnwstr <STRONG><A HREF="curs_inwstr.3x.html">curs_inwstr(3x)</A></STRONG>
mvwins_nwstr <STRONG><A HREF="curs_ins_wstr.3x.html">curs_ins_wstr(3x)</A></STRONG>
mvwins_wch <STRONG><A HREF="curs_ins_wch.3x.html">curs_ins_wch(3x)</A></STRONG>
slk_attr <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>*
slk_attr_off <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_attr_on <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
+
slk_attr_set <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_attroff <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
-
slk_attron <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_attrset <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
slk_clear <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG>
waddnstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
waddnwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
waddstr <STRONG><A HREF="curs_addstr.3x.html">curs_addstr(3x)</A></STRONG>
+
waddwstr <STRONG><A HREF="curs_addwstr.3x.html">curs_addwstr(3x)</A></STRONG>
wattr_get <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
-
wattr_off <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattr_on <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wattr_set <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wsetscrreg <STRONG><A HREF="curs_outopts.3x.html">curs_outopts(3x)</A></STRONG>
wstandend <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
wstandout <STRONG><A HREF="curs_attr.3x.html">curs_attr(3x)</A></STRONG>
+
wsyncdown <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
wsyncup <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
-
wtimeout <STRONG><A HREF="curs_inopts.3x.html">curs_inopts(3x)</A></STRONG>
wtouchln <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>
wunctrl <STRONG><A HREF="curs_util.3x.html">curs_util(3x)</A></STRONG>
</PRE>
<H2>RETURN VALUE</H2><PRE>
- Routines that return an integer return <STRONG>ERR</STRONG> upon failure
- and an integer value other than <STRONG>ERR</STRONG> upon successful com-
- pletion, unless otherwise noted in the routine descrip-
+ Routines that return an integer return <STRONG>ERR</STRONG> upon failure
+ and an integer value other than <STRONG>ERR</STRONG> upon successful com-
+ pletion, unless otherwise noted in the routine descrip-
tions.
- All macros return the value of the <STRONG>w</STRONG> version, except
+ All macros return the value of the <STRONG>w</STRONG> version, except
<STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>, and <STRONG>getmaxyx</STRONG>. The
- return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
+ return values of <STRONG>setscrreg</STRONG>, <STRONG>wsetscrreg</STRONG>, <STRONG>getyx</STRONG>, <STRONG>getbegyx</STRONG>,
and <STRONG>getmaxyx</STRONG> are undefined (i.e., these should not be used
as the right-hand side of assignment statements).
important ones have been already discussed in detail.
BAUDRATE
- The debugging library checks this environment symbol
+ The debugging library checks this environment symbol
when the application has redirected output to a file.
- The symbol's numeric value is used for the baudrate.
+ The symbol's numeric value is used for the baudrate.
If no value is found, <STRONG>ncurses</STRONG> uses 9600. This allows
- testers to construct repeatable test-cases that take
+ testers to construct repeatable test-cases that take
into account costs that depend on baudrate.
CC When set, change occurrences of the command_character
- (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
- entries to the value of this symbol. Very few ter-
+ (i.e., the <STRONG>cmdch</STRONG> capability) of the loaded terminfo
+ entries to the value of this symbol. Very few ter-
minfo entries provide this feature.
COLUMNS
Specify the width of the screen in characters.
- Applications running in a windowing environment usu-
- ally are able to obtain the width of the window in
- which they are executing. If neither the $COLUMNS
- value nor the terminal's screen size is available,
- <STRONG>ncurses</STRONG> uses the size which may be specified in the
+ Applications running in a windowing environment usu-
+ ally are able to obtain the width of the window in
+ which they are executing. If neither the <STRONG>COLUMNS</STRONG>
+ value nor the terminal's screen size is available,
+ <STRONG>ncurses</STRONG> uses the size which may be specified in the
terminfo database (i.e., the <STRONG>cols</STRONG> capability).
- It is important that your application use a correct
- size for the screen. However, this is not always
- possible because your application may be running on a
- host which does not honor NAWS (Negotiations About
- Window Size), or because you are temporarily running
- as another user.
-
- Either COLUMNS or LINES symbols may be specified
- independently. This is mainly useful to circumvent
- legacy misfeatures of terminal descriptions, e.g.,
+ It is important that your application use a correct
+ size for the screen. This is not always possible
+ because your application may be running on a host
+ which does not honor NAWS (Negotiations About Window
+ Size), or because you are temporarily running as
+ another user. However, setting <STRONG>COLUMNS</STRONG> and/or <STRONG>LINES</STRONG>
+ overrides the library's use of the screen size
+ obtained from the operating system.
+
+ Either <STRONG>COLUMNS</STRONG> or <STRONG>LINES</STRONG> symbols may be specified
+ independently. This is mainly useful to circumvent
+ legacy misfeatures of terminal descriptions, e.g.,
xterm which commonly specifies a 65 line screen. For
- best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
+ best results, <STRONG>lines</STRONG> and <STRONG>cols</STRONG> should not be specified
in a terminal description for terminals which are run
as emulations.
- Use the <STRONG>use_env</STRONG> function to disable this feature.
+ Use the <STRONG>use_env</STRONG> function to disable all use of exter-
+ nal environment (including system calls) to determine
+ the screen size.
ESCDELAY
- Specifies the total time, in milliseconds, for which
- ncurses will await a character sequence, e.g., a
- function key. The default value, 1000 milliseconds,
+ Specifies the total time, in milliseconds, for which
+ ncurses will await a character sequence, e.g., a
+ function key. The default value, 1000 milliseconds,
is enough for most uses. However, it is made a vari-
able to accommodate unusual applications.
The most common instance where you may wish to change
- this value is to work with slow hosts, e.g., running
- on a network. If the host cannot read characters
- rapidly enough, it will have the same effect as if
- the terminal did not send characters rapidly enough.
+ this value is to work with slow hosts, e.g., running
+ on a network. If the host cannot read characters
+ rapidly enough, it will have the same effect as if
+ the terminal did not send characters rapidly enough.
The library will still see a timeout.
- Note that xterm mouse events are built up from char-
- acter sequences received from the xterm. If your
+ Note that xterm mouse events are built up from char-
+ acter sequences received from the xterm. If your
application makes heavy use of multiple-clicking, you
- may wish to lengthen this default value because the
- timeout applies to the composed multi-click event as
+ may wish to lengthen this default value because the
+ timeout applies to the composed multi-click event as
well as the individual clicks.
- HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
+ In addition to the environment variable, this imple-
+ mentation provides a global variable with the same
+ name. Portable applications should not rely upon the
+ presence of ESCDELAY in either form, but setting the
+ environment variable rather than the global variable
+ does not create problems when compiling an applica-
+ tion.
+
+ HOME Tells <STRONG>ncurses</STRONG> where your home directory is. That is
where it may read and write auxiliary terminal
descriptions:
$HOME/.terminfo
LINES
- Like COLUMNS, specify the height of the screen in
- characters. See COLUMNS for a detailed description.
+ Like COLUMNS, specify the height of the screen in
+ characters. See COLUMNS for a detailed description.
MOUSE_BUTTONS_123
This applies only to the OS/2 EMX port. It specifies
- the order of buttons on the mouse. OS/2 numbers a
+ the order of buttons on the mouse. OS/2 numbers a
3-button mouse inconsistently from other platforms:
1 = left
3 = middle.
This symbol lets you customize the mouse. The symbol
- must be three numeric digits 1-3 in any order, e.g.,
- 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
+ must be three numeric digits 1-3 in any order, e.g.,
+ 123 or 321. If it is not specified, <STRONG>ncurses</STRONG> uses
132.
NCURSES_ASSUMED_COLORS
- Override the compiled-in assumption that the termi-
- nal's default colors are white-on-black (see
- <STRONG><A HREF="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>). You may set the fore-
+ Override the compiled-in assumption that the termi-
+ nal's default colors are white-on-black (see
+ <STRONG><A HREF="assume_default_colors.3x.html">assume_default_colors(3x)</A></STRONG>). You may set the fore-
ground and background color values with this environ-
- ment variable by proving a 2-element list: fore-
- ground,background. For example, to tell ncurses to
- not assume anything about the colors, set this to
+ ment variable by proving a 2-element list: fore-
+ ground,background. For example, to tell ncurses to
+ not assume anything about the colors, set this to
"-1,-1". To make it green-on-black, set it to "2,0".
Any positive value from zero to the terminfo <STRONG>max_col-</STRONG>
<STRONG>ors</STRONG> value is allowed.
NCURSES_NO_PADDING
- Most of the terminal descriptions in the terminfo
- database are written for real "hardware" terminals.
- Many people use terminal emulators which run in a
- windowing environment and use curses-based applica-
- tions. Terminal emulators can duplicate all of the
+ Most of the terminal descriptions in the terminfo
+ database are written for real "hardware" terminals.
+ Many people use terminal emulators which run in a
+ windowing environment and use curses-based applica-
+ tions. Terminal emulators can duplicate all of the
important aspects of a hardware terminal, but they do
- not have the same limitations. The chief limitation
- of a hardware terminal from the standpoint of your
- application is the management of dataflow, i.e.,
- timing. Unless a hardware terminal is interfaced
- into a terminal concentrator (which does flow con-
- trol), it (or your application) must manage dataflow,
- preventing overruns. The cheapest solution (no hard-
- ware cost) is for your program to do this by pausing
- after operations that the terminal does slowly, such
- as clearing the display.
-
- As a result, many terminal descriptions (including
- the vt100) have delay times embedded. You may wish
- to use these descriptions, but not want to pay the
+ not have the same limitations. The chief limitation
+ of a hardware terminal from the standpoint of your
+ application is the management of dataflow, i.e., tim-
+ ing. Unless a hardware terminal is interfaced into a
+ terminal concentrator (which does flow control), it
+ (or your application) must manage dataflow, prevent-
+ ing overruns. The cheapest solution (no hardware
+ cost) is for your program to do this by pausing after
+ operations that the terminal does slowly, such as
+ clearing the display.
+
+ As a result, many terminal descriptions (including
+ the vt100) have delay times embedded. You may wish
+ to use these descriptions, but not want to pay the
performance penalty.
- Set the NCURSES_NO_PADDING symbol to disable all but
- mandatory padding. Mandatory padding is used as a
+ Set the NCURSES_NO_PADDING symbol to disable all but
+ mandatory padding. Mandatory padding is used as a
part of special control sequences such as <EM>flash</EM>.
NCURSES_NO_SETBUF
- Normally <STRONG>ncurses</STRONG> enables buffered output during ter-
- minal initialization. This is done (as in SVr4
- curses) for performance reasons. For testing pur-
+ Normally <STRONG>ncurses</STRONG> enables buffered output during ter-
+ minal initialization. This is done (as in SVr4
+ curses) for performance reasons. For testing pur-
poses, both of <STRONG>ncurses</STRONG> and certain applications, this
feature is made optional. Setting the
NCURSES_NO_SETBUF variable disables output buffering,
- leaving the output in the original (usually line
+ leaving the output in the original (usually line
buffered) mode.
+ NCURSES_NO_UTF8_ACS
+ During initialization, the <STRONG>ncurses</STRONG> library checks for
+ special cases where VT100 line-drawing (and the cor-
+ responding alternate character set capabilities)
+ described in the terminfo are known to be missing.
+ Specifically, when running in a UTF-8 locale, the
+ Linux console emulator and the GNU screen program
+ ignore these. Ncurses checks the TERM environment
+ variable for these. For other special cases, you
+ should set this environment variable. Doing this
+ tells ncurses to use Unicode values which correspond
+ to the VT100 line-drawing glyphs. That works for the
+ special cases cited, and is likely to work for termi-
+ nal emulators.
+
+ When setting this variable, you should set it to a
+ nonzero value. Setting it to zero (or to a nonnum-
+ ber) disables the special check for Linux and screen.
+
NCURSES_TRACE
During initialization, the <STRONG>ncurses</STRONG> debugging library
checks the NCURSES_TRACE symbol. If it is defined,
<H2>FILES</H2><PRE>
/usr/share/tabset
directory containing initialization files for the
- terminal capability database /usr/share/terminfo ter-
- minal capability database
+ terminal capability database /usr/share/terminfo
+ terminal capability database
</PRE>
ual pages for details.
The <STRONG>ncurses</STRONG> library can exploit the capabilities of termi-
- nals which implement the ISO-6429 SGR 39 and SGR 49
- controls, which allow an application to reset the terminal
- to its original foreground and background colors. From
- the users' perspective, the application is able to draw
- colored text on a background whose color is set indepen-
+ nals which implement the ISO-6429 SGR 39 and SGR 49 con-
+ trols, which allow an application to reset the terminal to
+ its original foreground and background colors. From the
+ users' perspective, the application is able to draw col-
+ ored text on a background whose color is set indepen-
dently, providing better control over color contrasts.
See the <STRONG><A HREF="default_colors.3x.html">default_colors(3x)</A></STRONG> manual page for details.
The routine <STRONG>has_key</STRONG> is not part of XPG4, nor is it present
in SVr4. See the <STRONG><A HREF="curs_getch.3x.html">curs_getch(3x)</A></STRONG> manual page for details.
- The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it pre-
- sent in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for
+ The routine <STRONG>slk_attr</STRONG> is not part of XPG4, nor is it
+ present in SVr4. See the <STRONG><A HREF="curs_slk.3x.html">curs_slk(3x)</A></STRONG> manual page for
details.
The routines <STRONG>getmouse</STRONG>, <STRONG>mousemask</STRONG>, <STRONG>ungetmouse</STRONG>, <STRONG>mouseinter-</STRONG>
- <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
+ <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
+<STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG> <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
- <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
+ <STRONG><A HREF="panel.3x.html">panel(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * Author: Thomas E. Dickey 1996,1997,2002
- * @Id: resizeterm.3x,v 1.10 2003/10/25 20:41:08 tom Exp @
+ * Author: Thomas E. Dickey 1996-2005
+ * @Id: resizeterm.3x,v 1.11 2005/06/25 22:19:42 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
+<STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG> <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
that it should repaint special features such as pads that
cannot be done automatically.
+ If the environment variables <STRONG>LINES</STRONG> or <STRONG>COLUMNS</STRONG> are set,
+ this overrides the library's use of the window size
+ obtained from the operating system. Thus, even if a SIG-
+ WINCH is received, no screen size change may be recorded.
+ In that case, no <STRONG>KEY_RESIZE</STRONG> is queued for the next call to
+ <STRONG>getch</STRONG>; an <STRONG>ERR</STRONG> will be returned instead.
+
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
+ <STRONG><A HREF="resizeterm.3x.html">resizeterm(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: term.5,v 1.15 2003/05/10 20:33:49 jmc Exp @
+ * @Id: term.5,v 1.16 2004/07/05 13:16:08 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG> <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
+<STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG> <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
- <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
+ <STRONG><A HREF="TERM.5.html">TERM(5)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG> <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
+<STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG> <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
- <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
+ <STRONG><A HREF="TERM.7.html">TERM(7)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
* Note: this must be run through tbl before nroff.
* The magic cookie on the first line triggers this under some man programs.
****************************************************************************
- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp @
+ * @Id: terminfo.head,v 1.12 2004/09/25 19:07:11 tom Exp @
* Head of terminfo man page ends here
- * @Id: terminfo.tail,v 1.38 2003/01/05 22:47:05 tom Exp @
+ * @Id: terminfo.tail,v 1.42 2005/06/25 22:46:03 tom Exp @
* Beginning of terminfo.tail file
+ * See "terminfo.head" for copyright.
+ *.in -2
+ *.in +2
+ *.in -2
+ *.in +2
*.TH
-->
<HTML>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG> File Formats <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
+<STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG> File Formats <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
no blanks; the last name may well contain upper case and
blanks for readability.
+ Lines beginning with a `#' in the first column are treated
+ as comments. While comment lines are legal at any point,
+ the output of <EM>captoinfo</EM> and <EM>infotocap</EM> (aliases for <EM>tic</EM>)
+ will move comments so they occur only between entries.
+
+ Newlines and leading tabs may be used for formatting
+ entries for readability. These are removed from parsed
+ entries. The <EM>infocmp</EM> <EM>-f</EM> option relies on this to format
+ if-then-else expressions: the result can be read by <EM>tic</EM>.
+
Terminal names (except for the last, verbose entry) should
be chosen using the following conventions. The particular
piece of hardware making up the terminal should have a
vt100-w. The following suffixes should be used where pos-
sible:
+
<STRONG>Suffix</STRONG> <STRONG>Meaning</STRONG> <STRONG>Example</STRONG>
-<EM>nn</EM> Number of lines on the screen aaa-60
-<EM>n</EM>p Number of pages of memory c100-4p
-rv Reverse video c100-rv
-s Enable status line vt100-s
-vb Use visible bell instead of beep wy370-vb
+
-w Wide mode (> 80 columns, usually 132) vt100-w
For more on terminal naming conventions, see the <STRONG>term(7)</STRONG>
These are the boolean capabilities:
+
<STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
<STRONG>Booleans</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
auto_left_margin bw bw cub1 wraps from col-
by overwriting (hp)
col_addr_glitch xhpa YA only positive motion
for hpa/mhpa caps
+
+
+
cpi_changes_res cpix YF changing character
pitch changes reso-
lution
strikes with a blank
generic_type gn gn generic line type
hard_copy hc hc hardcopy terminal
-
hard_cursor chts HC cursor is hard to
see
has_meta_key km km Has a meta key
on the status line
tilde_glitch hz hz cannot print ~'s
(hazeltine)
+
+
transparent_underline ul ul underline character
overstrikes
xon_xoff xon xo terminal uses
These are the numeric capabilities:
+
<STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
<STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
columns cols co number of columns in
label_height lh lh rows in each label
label_width lw lw columns in each
label
-
lines lines li number of lines on
screen or page
lines_of_memory lm lm lines of memory if >
SVr4.0 term structure, but are not yet documented in the
man page. They came in with SVr4's printer support.
+
<STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
<STRONG>Numeric</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
bit_image_entwining bitwin Yo number of passes for
dot_horz_spacing spinh Yc spacing of dots hor-
izontally in dots
per inch
+
dot_vert_spacing spinv Yb spacing of pins ver-
tically in pins per
inch
output_res_char orc Yi horizontal resolu-
tion in units per
line
-
-
-
output_res_horz_inch orhi Yk horizontal resolu-
tion in units per
inch
These are the string capabilities:
+
<STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
<STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
acs_chars acsc ac graphics charset
home cursor (P*)
clr_bol el1 cb Clear to beginning
of line
+
+
clr_eol el ce clear to end of line
(P)
clr_eos ed cd clear to end of
cup)
cursor_invisible civis vi make cursor invisi-
ble
-
cursor_left cub1 le move left one space
cursor_mem_address mrcup CM memory relative cur-
sor addressing, move
enter_italics_mode sitm ZH Enter italic mode
enter_leftward_mode slm ZI Start leftward car-
riage motion
+
enter_micro_mode smicm ZJ Start micro-motion
mode
enter_near_letter_quality snlq ZK Enter NLQ mode
enter_subscript_mode ssubm ZN Enter subscript mode
enter_superscript_mode ssupm ZO Enter superscript
mode
-
enter_underline_mode smul us begin underline mode
enter_upward_mode sum ZP Start upward car-
riage motion
string
init_2string is2 is initialization
string
+
init_3string is3 i3 initialization
string
init_file if if name of initializa-
insert_padding ip ip insert padding after
inserted character
key_a1 ka1 K1 upper left of keypad
-
-
key_a3 ka3 K3 upper right of key-
pad
key_b2 kb2 K2 center of keypad
key_f22 kf22 FC F22 function key
key_f23 kf23 FD F23 function key
key_f24 kf24 FE F24 function key
+
key_f25 kf25 FF F25 function key
key_f26 kf26 FG F26 function key
key_f27 kf27 FH F27 function key
key_f38 kf38 FS F38 function key
key_f39 kf39 FT F39 function key
key_f4 kf4 k4 F4 function key
-
key_f40 kf40 FU F40 function key
key_f41 kf41 FV F41 function key
key_f42 kf42 FW F42 function key
key_previous kprv %8 previous key
key_print kprt %9 print key
key_redo krdo %0 redo key
+
key_reference kref &1 reference key
key_refresh krfr &2 refresh key
key_replace krpl &3 replace key
key_sdl kDL *5 shifted delete-line
key
key_select kslt *6 select key
-
key_send kEND *7 shifted end key
key_seol kEOL *8 shifted clear-to-
end-of-line key
key f3 if not f3
lab_f4 lf4 l4 label on function
key f4 if not f4
+
+
lab_f5 lf5 l5 label on function
key f5 if not f5
lab_f6 lf6 l6 label on function
(8th-bit on)
micro_column_address mhpa ZY Like column_address
in micro mode
-
micro_down mcud1 ZZ Like cursor_down in
micro mode
micro_left mcub1 Za Like cursor_left in
in micro mode
pkey_key pfkey pk program function key
#1 to type string #2
+
+
pkey_local pfloc pl program function key
#1 to execute string
#2
quick_dial qdial QD dial number #1 with-
out checking
remove_clock rmclk RC remove clock
-
-
repeat_char rep rp repeat char #1 #2
times (P*)
req_for_input rfi RF send next input char
umn
set_right_margin_parm smgrp Zn Set right margin at
column #1
+
set_tab hts st set a tab in every
row, current columns
set_top_margin smgt Zo Set top margin at
set
stop_bit_image rbim Zs Stop printing bit
image graphics
-
-
stop_char_set_def rcsd Zt End definition of
character set #1
subscript_characters subcs Zu List of subscript-
SVr4.0 term structure, but were originally not documented
in the man page.
+
<STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
<STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
alt_scancode_esc scesa S8 Alternate escape
of same row
bit_image_newline binel Zz Move to next row
of the bit image
+
bit_image_repeat birep Xy Repeat bit image
cell #1 #2 times
char_set_names csnm Zy Produce #1'th item
port
display_pc_char dispc S1 Display PC charac-
ter #1
-
-
end_bit_image_region endbi Yy End a bit-image
region
enter_pc_charset_mode smpch S2 Enter PC character
cap).
set_page_length slines YZ Set page length to
#1 lines
+
set_tb_margin smgtb MT Sets both top and
bottom margins to
#1, #2
these, they may not be binary-compatible with System V
terminfo entries after SVr4.1; beware!
+
<STRONG>Variable</STRONG> <STRONG>Cap-</STRONG> <STRONG>TCap</STRONG> <STRONG>Description</STRONG>
<STRONG>String</STRONG> <STRONG>name</STRONG> <STRONG>Code</STRONG>
enter_horizontal_hl_mode ehhlm Xh Enter horizontal
highlight mode
-
-
enter_left_hl_mode elhlm Xl Enter left highlight
mode
enter_low_hl_mode elohlm Xo Enter low highlight
space at the beginning of each line except the first.
Comments may be included on lines beginning with ``#''.
Capabilities in <EM>terminfo</EM> are of three types: Boolean capa-
- bilities which indicate that the terminal has some partic-
- ular feature, numeric capabilities giving the size of the
- terminal or the size of particular delays, and string
- capabilities, which give a sequence which can be used to
- perform particular terminal operations.
+ bilities which indicate that the terminal has some
+ particular feature, numeric capabilities giving the size
+ of the terminal or the size of particular delays, and
+ string capabilities, which give a sequence which can be
+ used to perform particular terminal operations.
<STRONG>Types</STRONG> <STRONG>of</STRONG> <STRONG>Capabilities</STRONG>
"glass-tty" terminals. Thus the model 33 teletype is
described as
- 33|tty33|tty|model 33 teletype,
- bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
+ 33|tty33|tty|model 33 teletype,
+ bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,
while the Lear Siegler ADM-3 is described as
- adm3|3|lsi adm3,
- am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
- ind=^J, lines#24,
+ adm3|3|lsi adm3,
+ am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+ ind=^J, lines#24,
<STRONG>Parameterized</STRONG> <STRONG>Strings</STRONG>
arithmetic (%m is mod): push(pop() op pop())
%& %| %^
- bit operations: push(pop() op pop())
+ bit operations (AND, OR and exclusive-OR): push(pop()
+ op pop())
%= %> %<
logical operations: push(pop() op pop())
%A, %O
- logical and & or operations (for conditionals)
+ logical AND and OR operations (for conditionals)
%! %~
- unary operations push(op pop())
+ unary operations (logical and bit complement):
+ push(op pop())
%i add 1 to first two parameters (for ANSI terminals)
%? <EM>expr</EM> %t <EM>thenpart</EM> %e <EM>elsepart</EM> %;
- if-then-else, %e <EM>elsepart</EM> is optional. else-if's are
- possible a la Algol 68:
+ This forms an if-then-else. The %e <EM>elsepart</EM> is
+ optional. Usually the %? <EM>expr</EM> part pushes a value
+ onto the stack, and %t pops it from the stack,
+ testing if it is nonzero (true). If it is zero
+ (false), control passes to the %e (else) part.
+
+ It is possible to form else-if's a la Algol 68:
%? c1 %t b1 %e c2 %t b2 %e c3 %t b3 %e c4 %t b4 %e %;
- ci are conditions, bi are bodies.
+
+ where ci are conditions, bi are bodies.
+
+ Use the <STRONG>-f</STRONG> option of <STRONG>tic</STRONG> or <STRONG>infocmp</STRONG> to see the struc-
+ ture of if-the-else's. Some strings, e.g., <STRONG>sgr</STRONG> can
+ be very complicated when written on one line. The <STRONG>-f</STRONG>
+ option splits the string into lines with the parts
+ indented.
Binary operations are in postfix form with the operands in
- the usual order. That is, to get x-5 one would use
- "%gx%{5}%-". %P and %g variables are persistent across
+ the usual order. That is, to get x-5 one would use
+ "%gx%{5}%-". %P and %g variables are persistent across
escape-string evaluations.
Consider the HP2645, which, to get to row 3 and column 12,
- needs to be sent \E&a12c03Y padded for 6 milliseconds.
- Note that the order of the rows and columns is inverted
- here, and that the row and column are printed as two dig-
+ needs to be sent \E&a12c03Y padded for 6 milliseconds.
+ Note that the order of the rows and columns is inverted
+ here, and that the row and column are printed as two dig-
its. Thus its <STRONG>cup</STRONG> capability is "cup=6\E&%p2%2dc%p1%2dY".
The Microterm ACT-IV needs the current row and column sent
- preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
- in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
- need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
+ preceded by a <STRONG>^T</STRONG>, with the row and column simply encoded
+ in binary, "cup=^T%p1%c%p2%c". Terminals which use "%c"
+ need to be able to backspace the cursor (<STRONG>cub1</STRONG>), and to
move the cursor up one line on the screen (<STRONG>cuu1</STRONG>). This is
- necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
- and <STRONG>\r</STRONG>, as the system may change or discard them. (The
- library routines dealing with terminfo set tty modes so
+ necessary because it is not always safe to transmit <STRONG>\n</STRONG> <STRONG>^D</STRONG>
+ and <STRONG>\r</STRONG>, as the system may change or discard them. (The
+ library routines dealing with terminfo set tty modes so
that tabs are never expanded, so \t is safe to send. This
turns out to be essential for the Ann Arbor 4080.)
A final example is the LSI ADM-3a, which uses row and col-
umn offset by a blank character, thus "cup=\E=%p1%'
- '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
- first parameter, pushes the ASCII value for a space (32),
- adds them (pushing the sum on the stack in place of the
- two previous values) and outputs that value as a charac-
- ter. Then the same is done for the second parameter.
+ '%+%c%p2%' '%+%c". After sending `\E=', this pushes the
+ first parameter, pushes the ASCII value for a space (32),
+ adds them (pushing the sum on the stack in place of the
+ two previous values) and outputs that value as a charac-
+ ter. Then the same is done for the second parameter.
More complex arithmetic is possible using the stack.
<STRONG>Cursor</STRONG> <STRONG>Motions</STRONG>
If the terminal has a fast way to home the cursor (to very
- upper left corner of screen) then this can be given as
- <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
- hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
- with <STRONG>cuu1</STRONG> from the home position, but a program should
- never do this itself (unless <STRONG>ll</STRONG> does) because it can make
- no assumption about the effect of moving up from the home
- position. Note that the home position is the same as
+ upper left corner of screen) then this can be given as
+ <STRONG>home</STRONG>; similarly a fast way of getting to the lower left-
+ hand corner can be given as <STRONG>ll</STRONG>; this may involve going up
+ with <STRONG>cuu1</STRONG> from the home position, but a program should
+ never do this itself (unless <STRONG>ll</STRONG> does) because it can make
+ no assumption about the effect of moving up from the home
+ position. Note that the home position is the same as
addressing to (0,0): to the top left corner of the screen,
- not of memory. (Thus, the \EH sequence on HP terminals
+ not of memory. (Thus, the \EH sequence on HP terminals
cannot be used for <STRONG>home</STRONG>.)
If the terminal has row or column absolute cursor address-
- ing, these can be given as single parameter capabilities
+ ing, these can be given as single parameter capabilities
<STRONG>hpa</STRONG> (horizontal position absolute) and <STRONG>vpa</STRONG> (vertical posi-
tion absolute). Sometimes these are shorter than the more
- general two parameter sequence (as with the hp2645) and
+ general two parameter sequence (as with the hp2645) and
can be used in preference to <STRONG>cup</STRONG>. If there are parameter-
- ized local motions (e.g., move <EM>n</EM> spaces to the right)
+ ized local motions (e.g., move <EM>n</EM> spaces to the right)
these can be given as <STRONG>cud</STRONG>, <STRONG>cub</STRONG>, <STRONG>cuf</STRONG>, and <STRONG>cuu</STRONG> with a single
- parameter indicating how many spaces to move. These are
- primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
+ parameter indicating how many spaces to move. These are
+ primarily useful if the terminal does not have <STRONG>cup</STRONG>, such
as the TEKTRONIX 4025.
If the terminal needs to be in a special mode when running
a program that uses these capabilities, the codes to enter
- and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
- arises, for example, from terminals like the Concept with
- more than one page of memory. If the terminal has only
- memory relative cursor addressing and not screen relative
+ and exit this mode can be given as <STRONG>smcup</STRONG> and <STRONG>rmcup</STRONG>. This
+ arises, for example, from terminals like the Concept with
+ more than one page of memory. If the terminal has only
+ memory relative cursor addressing and not screen relative
cursor addressing, a one screen-sized window must be fixed
- into the terminal for cursor addressing to work properly.
+ into the terminal for cursor addressing to work properly.
This is also used for the TEKTRONIX 4025, where <STRONG>smcup</STRONG> sets
- the command character to be the one used by terminfo. If
- the <STRONG>smcup</STRONG> sequence will not restore the screen after an
+ the command character to be the one used by terminfo. If
+ the <STRONG>smcup</STRONG> sequence will not restore the screen after an
<STRONG>rmcup</STRONG> sequence is output (to the state prior to outputting
<STRONG>rmcup</STRONG>), specify <STRONG>nrrmc</STRONG>.
<STRONG>Area</STRONG> <STRONG>Clears</STRONG>
If the terminal can clear from the current position to the
- end of the line, leaving the cursor where it is, this
+ end of the line, leaving the cursor where it is, this
should be given as <STRONG>el</STRONG>. If the terminal can clear from the
- beginning of the line to the current position inclusive,
- leaving the cursor where it is, this should be given as
- <STRONG>el1</STRONG>. If the terminal can clear from the current position
- to the end of the display, then this should be given as
- <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
- (Thus, it can be simulated by a request to delete a large
+ beginning of the line to the current position inclusive,
+ leaving the cursor where it is, this should be given as
+ <STRONG>el1</STRONG>. If the terminal can clear from the current position
+ to the end of the display, then this should be given as
+ <STRONG>ed</STRONG>. <STRONG>Ed</STRONG> is only defined from the first column of a line.
+ (Thus, it can be simulated by a request to delete a large
number of lines, if a true <STRONG>ed</STRONG> is not available.)
<STRONG>Insert/delete</STRONG> <STRONG>line</STRONG> <STRONG>and</STRONG> <STRONG>vertical</STRONG> <STRONG>motions</STRONG>
- If the terminal can open a new blank line before the line
- where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
- done only from the first position of a line. The cursor
+ If the terminal can open a new blank line before the line
+ where the cursor is, this should be given as <STRONG>il1</STRONG>; this is
+ done only from the first position of a line. The cursor
must then appear on the newly blank line. If the terminal
- can delete the line which the cursor is on, then this
- should be given as <STRONG>dl1</STRONG>; this is done only from the first
- position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
- <STRONG>dl1</STRONG> which take a single parameter and insert or delete
+ can delete the line which the cursor is on, then this
+ should be given as <STRONG>dl1</STRONG>; this is done only from the first
+ position on the line to be deleted. Versions of <STRONG>il1</STRONG> and
+ <STRONG>dl1</STRONG> which take a single parameter and insert or delete
that many lines can be given as <STRONG>il</STRONG> and <STRONG>dl</STRONG>.
- If the terminal has a settable scrolling region (like the
- vt100) the command to set this can be described with the
- <STRONG>csr</STRONG> capability, which takes two parameters: the top and
+ If the terminal has a settable scrolling region (like the
+ vt100) the command to set this can be described with the
+ <STRONG>csr</STRONG> capability, which takes two parameters: the top and
bottom lines of the scrolling region. The cursor position
is, alas, undefined after using this command.
- It is possible to get the effect of insert or delete line
+ It is possible to get the effect of insert or delete line
using <STRONG>csr</STRONG> on a properly chosen region; the <STRONG>sc</STRONG> and <STRONG>rc</STRONG> (save
- and restore cursor) commands may be useful for ensuring
- that your synthesized insert/delete string does not move
- the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
- synthesis automatically, so you need not compose
+ and restore cursor) commands may be useful for ensuring
+ that your synthesized insert/delete string does not move
+ the cursor. (Note that the <STRONG><A HREF="ncurses.3x.html">ncurses(3x)</A></STRONG> library does this
+ synthesis automatically, so you need not compose
insert/delete strings for an entry with <STRONG>csr</STRONG>).
Yet another way to construct insert and delete might be to
- use a combination of index with the memory-lock feature
- found on some terminals (like the HP-700/90 series, which
+ use a combination of index with the memory-lock feature
+ found on some terminals (like the HP-700/90 series, which
however also has insert/delete).
- Inserting lines at the top or bottom of the screen can
- also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
- true insert/delete line, and is often faster even on ter-
- minals with those features.
+ Inserting lines at the top or bottom of the screen can
+ also be done using <STRONG>ri</STRONG> or <STRONG>ind</STRONG> on many terminals without a
+ true insert/delete line, and is often faster even on
+ terminals with those features.
- The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
- scrolling window is effectively a view port on a screen-
- sized canvas. To test for this capability, create a
- scrolling region in the middle of the screen, write some-
- thing to the bottom line, move the cursor to the top of
+ The boolean <STRONG>non_dest_scroll_region</STRONG> should be set if each
+ scrolling window is effectively a view port on a screen-
+ sized canvas. To test for this capability, create a
+ scrolling region in the middle of the screen, write some-
+ thing to the bottom line, move the cursor to the top of
the region, and do <STRONG>ri</STRONG> followed by <STRONG>dl1</STRONG> or <STRONG>ind</STRONG>. If the data
- scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
- appears, then scrolling is non-destructive. System V and
- XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
- late destructive scrolling; their documentation cautions
- you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
+ scrolled off the bottom of the region by the <STRONG>ri</STRONG> re-
+ appears, then scrolling is non-destructive. System V and
+ XSI Curses expect that <STRONG>ind</STRONG>, <STRONG>ri</STRONG>, <STRONG>indn</STRONG>, and <STRONG>rin</STRONG> will simu-
+ late destructive scrolling; their documentation cautions
+ you not to define <STRONG>csr</STRONG> unless this is true. This <STRONG>curses</STRONG>
implementation is more liberal and will do explicit erases
after scrolling if <STRONG>ndstr</STRONG> is defined.
If the terminal has the ability to define a window as part
- of memory, which all commands affect, it should be given
+ of memory, which all commands affect, it should be given
as the parameterized string <STRONG>wind</STRONG>. The four parameters are
- the starting and ending lines in memory and the starting
+ the starting and ending lines in memory and the starting
and ending columns in memory, in that order.
- If the terminal can retain display memory above, then the
- <STRONG>da</STRONG> capability should be given; if display memory can be
- retained below, then <STRONG>db</STRONG> should be given. These indicate
- that deleting a line or scrolling may bring non-blank
- lines up from below or that scrolling back with <STRONG>ri</STRONG> may
+ If the terminal can retain display memory above, then the
+ <STRONG>da</STRONG> capability should be given; if display memory can be
+ retained below, then <STRONG>db</STRONG> should be given. These indicate
+ that deleting a line or scrolling may bring non-blank
+ lines up from below or that scrolling back with <STRONG>ri</STRONG> may
bring down non-blank lines.
<STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
- There are two basic kinds of intelligent terminals with
- respect to insert/delete character which can be described
- using <EM>terminfo.</EM> The most common insert/delete character
- operations affect only the characters on the current line
- and shift characters off the end of the line rigidly.
- Other terminals, such as the Concept 100 and the Perkin
- Elmer Owl, make a distinction between typed and untyped
- blanks on the screen, shifting upon an insert or delete
- only to an untyped blank on the screen which is either
- eliminated, or expanded to two untyped blanks. You can
- determine the kind of terminal you have by clearing the
- screen and then typing text separated by cursor motions.
- Type "abc def" using local cursor motions (not spaces)
+ There are two basic kinds of intelligent terminals with
+ respect to insert/delete character which can be described
+ using <EM>terminfo.</EM> The most common insert/delete character
+ operations affect only the characters on the current line
+ and shift characters off the end of the line rigidly.
+ Other terminals, such as the Concept 100 and the Perkin
+ Elmer Owl, make a distinction between typed and untyped
+ blanks on the screen, shifting upon an insert or delete
+ only to an untyped blank on the screen which is either
+ eliminated, or expanded to two untyped blanks. You can
+ determine the kind of terminal you have by clearing the
+ screen and then typing text separated by cursor motions.
+ Type "abc def" using local cursor motions (not spaces)
between the "abc" and the "def". Then position the cursor
- before the "abc" and put the terminal in insert mode. If
- typing characters causes the rest of the line to shift
+ before the "abc" and put the terminal in insert mode. If
+ typing characters causes the rest of the line to shift
rigidly and characters to fall off the end, then your ter-
- minal does not distinguish between blanks and untyped
- positions. If the "abc" shifts over to the "def" which
- then move together around the end of the current line and
- onto the next as you insert, you have the second type of
- terminal, and should give the capability <STRONG>in</STRONG>, which stands
+ minal does not distinguish between blanks and untyped
+ positions. If the "abc" shifts over to the "def" which
+ then move together around the end of the current line and
+ onto the next as you insert, you have the second type of
+ terminal, and should give the capability <STRONG>in</STRONG>, which stands
for "insert null". While these are two logically separate
- attributes (one line versus multi-line insert mode, and
- special treatment of untyped spaces) we have seen no ter-
+ attributes (one line versus multi-line insert mode, and
+ special treatment of untyped spaces) we have seen no ter-
minals whose insert mode cannot be described with the sin-
gle attribute.
- Terminfo can describe both terminals which have an insert
+ Terminfo can describe both terminals which have an insert
mode, and terminals which send a simple sequence to open a
- blank position on the current line. Give as <STRONG>smir</STRONG> the
- sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
- sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
+ blank position on the current line. Give as <STRONG>smir</STRONG> the
+ sequence to get into insert mode. Give as <STRONG>rmir</STRONG> the
+ sequence to leave insert mode. Now give as <STRONG>ich1</STRONG> any
sequence needed to be sent just before sending the charac-
- ter to be inserted. Most terminals with a true insert
- mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
+ ter to be inserted. Most terminals with a true insert
+ mode will not give <STRONG>ich1</STRONG>; terminals which send a sequence
to open a screen position should give it here.
- If your terminal has both, insert mode is usually prefer-
- able to <STRONG>ich1</STRONG>. Technically, you should not give both
- unless the terminal actually requires both to be used in
- combination. Accordingly, some non-curses applications
- get confused if both are present; the symptom is doubled
+ If your terminal has both, insert mode is usually prefer-
+ able to <STRONG>ich1</STRONG>. Technically, you should not give both
+ unless the terminal actually requires both to be used in
+ combination. Accordingly, some non-curses applications
+ get confused if both are present; the symptom is doubled
characters in an update using insert. This requirement is
now rare; most <STRONG>ich</STRONG> sequences do not require previous smir,
and most smir insert modes do not require <STRONG>ich1</STRONG> before each
- character. Therefore, the new <STRONG>curses</STRONG> actually assumes
- this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
+ character. Therefore, the new <STRONG>curses</STRONG> actually assumes
+ this is the case and uses either <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> or <STRONG>ich</STRONG>/<STRONG>ich1</STRONG> as
appropriate (but not both). If you have to write an entry
- to be used under new curses for a terminal old enough to
+ to be used under new curses for a terminal old enough to
need both, include the <STRONG>rmir</STRONG>/<STRONG>smir</STRONG> sequences in <STRONG>ich1</STRONG>.
If post insert padding is needed, give this as a number of
- milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
- which may need to be sent after an insert of a single
+ milliseconds in <STRONG>ip</STRONG> (a string option). Any other sequence
+ which may need to be sent after an insert of a single
character may also be given in <STRONG>ip</STRONG>. If your terminal needs
both to be placed into an `insert mode' and a special code
- to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
- and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
+ to precede each inserted character, then both <STRONG>smir</STRONG>/<STRONG>rmir</STRONG>
+ and <STRONG>ich1</STRONG> can be given, and both will be used. The <STRONG>ich</STRONG>
capability, with one parameter, <EM>n</EM>, will repeat the effects
of <STRONG>ich1</STRONG> <EM>n</EM> times.
If padding is necessary between characters typed while not
- in insert mode, give this as a number of milliseconds
+ in insert mode, give this as a number of milliseconds
padding in <STRONG>rmp</STRONG>.
- It is occasionally necessary to move around while in
- insert mode to delete characters on the same line (e.g.,
- if there is a tab after the insertion position). If your
- terminal allows motion while in insert mode you can give
- the capability <STRONG>mir</STRONG> to speed up inserting in this case.
- Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
+ It is occasionally necessary to move around while in
+ insert mode to delete characters on the same line (e.g.,
+ if there is a tab after the insertion position). If your
+ terminal allows motion while in insert mode you can give
+ the capability <STRONG>mir</STRONG> to speed up inserting in this case.
+ Omitting <STRONG>mir</STRONG> will affect only speed. Some terminals
(notably Datamedia's) must not have <STRONG>mir</STRONG> because of the way
their insert mode works.
- Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
- ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
- and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
- delete mode (any mode the terminal needs to be placed in
+ Finally, you can specify <STRONG>dch1</STRONG> to delete a single charac-
+ ter, <STRONG>dch</STRONG> with one parameter, <EM>n</EM>, to delete <EM>n</EM> <EM>characters,</EM>
+ and delete mode by giving <STRONG>smdc</STRONG> and <STRONG>rmdc</STRONG> to enter and exit
+ delete mode (any mode the terminal needs to be placed in
for <STRONG>dch1</STRONG> to work).
- A command to erase <EM>n</EM> characters (equivalent to outputting
- <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
+ A command to erase <EM>n</EM> characters (equivalent to outputting
+ <EM>n</EM> blanks without moving the cursor) can be given as <STRONG>ech</STRONG>
with one parameter.
<STRONG>Highlighting,</STRONG> <STRONG>Underlining,</STRONG> <STRONG>and</STRONG> <STRONG>Visible</STRONG> <STRONG>Bells</STRONG>
If your terminal has one or more kinds of display
- attributes, these can be represented in a number of dif-
+ attributes, these can be represented in a number of dif-
ferent ways. You should choose one display form as <EM>stand-</EM>
<EM>out</EM> <EM>mode</EM>, representing a good, high contrast, easy-on-the-
- eyes, format for highlighting error messages and other
- attention getters. (If you have a choice, reverse video
- plus half-bright is good, or reverse video alone.) The
- sequences to enter and exit standout mode are given as
- <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
- or out of standout mode leaves one or even two blank
- spaces on the screen, as the TVI 912 and Teleray 1061 do,
+ eyes, format for highlighting error messages and other
+ attention getters. (If you have a choice, reverse video
+ plus half-bright is good, or reverse video alone.) The
+ sequences to enter and exit standout mode are given as
+ <STRONG>smso</STRONG> and <STRONG>rmso</STRONG>, respectively. If the code to change into
+ or out of standout mode leaves one or even two blank
+ spaces on the screen, as the TVI 912 and Teleray 1061 do,
then <STRONG>xmc</STRONG> should be given to tell how many spaces are left.
- Codes to begin underlining and end underlining can be
- given as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively. If the terminal has
- a code to underline the current character and move the
+ Codes to begin underlining and end underlining can be
+ given as <STRONG>smul</STRONG> and <STRONG>rmul</STRONG> respectively. If the terminal has
+ a code to underline the current character and move the
cursor one space to the right, such as the Microterm Mime,
this can be given as <STRONG>uc</STRONG>.
- Other capabilities to enter various highlighting modes
- include <STRONG>blink</STRONG> (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
- (dim or half-bright) <STRONG>invis</STRONG> (blanking or invisible text)
- <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
- attribute modes) <STRONG>smacs</STRONG> (enter alternate character set
- mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).
- Turning on any of these modes singly may or may not turn
+ Other capabilities to enter various highlighting modes
+ include <STRONG>blink</STRONG> (blinking) <STRONG>bold</STRONG> (bold or extra bright) <STRONG>dim</STRONG>
+ (dim or half-bright) <STRONG>invis</STRONG> (blanking or invisible text)
+ <STRONG>prot</STRONG> (protected) <STRONG>rev</STRONG> (reverse video) <STRONG>sgr0</STRONG> (turn off <EM>all</EM>
+ attribute modes) <STRONG>smacs</STRONG> (enter alternate character set
+ mode) and <STRONG>rmacs</STRONG> (exit alternate character set mode).
+ Turning on any of these modes singly may or may not turn
off other modes.
- If there is a sequence to set arbitrary combinations of
- modes, this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
- ing 9 parameters. Each parameter is either 0 or nonzero,
+ If there is a sequence to set arbitrary combinations of
+ modes, this should be given as <STRONG>sgr</STRONG> (set attributes), tak-
+ ing 9 parameters. Each parameter is either 0 or nonzero,
as the corresponding attribute is on or off. The 9 param-
- eters are, in order: standout, underline, reverse, blink,
- dim, bold, blank, protect, alternate character set. Not
- all modes need be supported by <STRONG>sgr</STRONG>, only those for which
+ eters are, in order: standout, underline, reverse, blink,
+ dim, bold, blank, protect, alternate character set. Not
+ all modes need be supported by <STRONG>sgr</STRONG>, only those for which
corresponding separate attribute commands exist.
For example, the DEC vt220 supports most of the modes:
+
<STRONG>tparm</STRONG> <STRONG>parameter</STRONG> <STRONG>attribute</STRONG> <STRONG>escape</STRONG> <STRONG>sequence</STRONG>
none none \E[0m
p1 standout \E[0;1;7m
p2 underline \E[0;4m
-
p3 reverse \E[0;7m
p4 blink \E[0;5m
p5 dim not available
p8 protect not used
p9 altcharset ^O (off) ^N (on)
- We begin each escape sequence by turning off any existing
- modes, since there is no quick way to determine whether
+ We begin each escape sequence by turning off any existing
+ modes, since there is no quick way to determine whether
they are active. Standout is set up to be the combination
- of reverse and bold. The vt220 terminal has a protect
- mode, though it is not commonly used in sgr because it
- protects characters on the screen from the host's era-
- sures. The altcharset mode also is different in that it
- is either ^O or ^N, depending on whether it is off or on.
- If all modes are turned on, the resulting sequence is
+ of reverse and bold. The vt220 terminal has a protect
+ mode, though it is not commonly used in sgr because it
+ protects characters on the screen from the host's era-
+ sures. The altcharset mode also is different in that it
+ is either ^O or ^N, depending on whether it is off or on.
+ If all modes are turned on, the resulting sequence is
\E[0;1;4;5;7;8m^N.
- Some sequences are common to different modes. For exam-
- ple, ;7 is output when either p1 or p3 is true, that is,
+ Some sequences are common to different modes. For exam-
+ ple, ;7 is output when either p1 or p3 is true, that is,
if either standout or reverse modes are turned on.
- Writing out the above sequences, along with their depen-
+ Writing out the above sequences, along with their depen-
dencies yields
+
<STRONG>sequence</STRONG> <STRONG>when</STRONG> <STRONG>to</STRONG> <STRONG>output</STRONG> <STRONG>terminfo</STRONG> <STRONG>translation</STRONG>
\E[0 always \E[0
;4 if p2 %?%p2%|%t;4%;
;5 if p4 %?%p4%|%t;5%;
;7 if p1 or p3 %?%p1%p3%|%t;7%;
+
;8 if p7 %?%p7%|%t;8%;
m always m
^N or ^O if p9 ^N, else ^O %?%p9%t^N%e^O%;
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- Remember that if you specify sgr, you must also specify
- sgr0.
-
- Terminals with the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit
- special ``cookies'' when they receive mode-setting
- sequences, which affect the display algorithm rather than
- having extra bits for each character. Some terminals,
- such as the HP 2621, automatically leave standout mode
- when they move to a new line or the cursor is addressed.
- Programs using standout mode should exit standout mode
- before moving the cursor or sending a newline, unless the
- <STRONG>msgr</STRONG> capability, asserting that it is safe to move in
+ Remember that if you specify sgr, you must also specify
+ sgr0. Also, some implementations rely on sgr being given
+ if sgr0 is, Not all terminfo entries necessarily have an
+ sgr string, however. Many terminfo entries are derived
+ from termcap entries which have no sgr string. The only
+ drawback to adding an sgr string is that termcap also
+ assumes that sgr0 does not exit alternate character set
+ mode.
+
+ Terminals with the ``magic cookie'' glitch (<STRONG>xmc</STRONG>) deposit
+ special ``cookies'' when they receive mode-setting
+ sequences, which affect the display algorithm rather than
+ having extra bits for each character. Some terminals,
+ such as the HP 2621, automatically leave standout mode
+ when they move to a new line or the cursor is addressed.
+ Programs using standout mode should exit standout mode
+ before moving the cursor or sending a newline, unless the
+ <STRONG>msgr</STRONG> capability, asserting that it is safe to move in
standout mode, is present.
- If the terminal has a way of flashing the screen to indi-
- cate an error quietly (a bell replacement) then this can
+ If the terminal has a way of flashing the screen to indi-
+ cate an error quietly (a bell replacement) then this can
be given as <STRONG>flash</STRONG>; it must not move the cursor.
- If the cursor needs to be made more visible than normal
+ If the cursor needs to be made more visible than normal
when it is not on the bottom line (to make, for example, a
- non-blinking underline into an easier to find block or
+ non-blinking underline into an easier to find block or
blinking underline) give this sequence as <STRONG>cvvis</STRONG>. If there
- is a way to make the cursor completely invisible, give
+ is a way to make the cursor completely invisible, give
that as <STRONG>civis</STRONG>. The capability <STRONG>cnorm</STRONG> should be given which
undoes the effects of both of these modes.
If your terminal correctly generates underlined characters
- (with no special codes needed) even though it does not
- overstrike, then you should give the capability <STRONG>ul</STRONG>. If a
- character overstriking another leaves both characters on
+ (with no special codes needed) even though it does not
+ overstrike, then you should give the capability <STRONG>ul</STRONG>. If a
+ character overstriking another leaves both characters on
the screen, specify the capability <STRONG>os</STRONG>. If overstrikes are
- erasable with a blank, then this should be indicated by
+ erasable with a blank, then this should be indicated by
giving <STRONG>eo</STRONG>.
<STRONG>Keypad</STRONG> <STRONG>and</STRONG> <STRONG>Function</STRONG> <STRONG>Keys</STRONG>
If the terminal has a keypad that transmits codes when the
- keys are pressed, this information can be given. Note
+ keys are pressed, this information can be given. Note
that it is not possible to handle terminals where the key-
pad only works in local (this applies, for example, to the
- unshifted HP 2621 keys). If the keypad can be set to
- transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and
+ unshifted HP 2621 keys). If the keypad can be set to
+ transmit or not transmit, give these codes as <STRONG>smkx</STRONG> and
<STRONG>rmkx</STRONG>. Otherwise the keypad is assumed to always transmit.
- The codes sent by the left arrow, right arrow, up arrow,
- down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
- <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
- tion keys such as f0, f1, ..., f10, the codes they send
- can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
- labels other than the default f0 through f10, the labels
- can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes transmit-
- ted by certain other special keys can be given: <STRONG>kll</STRONG> (home
- down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs), <STRONG>kctab</STRONG>
+ The codes sent by the left arrow, right arrow, up arrow,
+ down arrow, and home keys can be given as <STRONG>kcub1,</STRONG> <STRONG>kcuf1,</STRONG>
+ <STRONG>kcuu1,</STRONG> <STRONG>kcud1,</STRONG> and <STRONG>khome</STRONG> respectively. If there are func-
+ tion keys such as f0, f1, ..., f10, the codes they send
+ can be given as <STRONG>kf0,</STRONG> <STRONG>kf1,</STRONG> <STRONG>...,</STRONG> <STRONG>kf10</STRONG>. If these keys have
+ labels other than the default f0 through f10, the labels
+ can be given as <STRONG>lf0,</STRONG> <STRONG>lf1,</STRONG> <STRONG>...,</STRONG> <STRONG>lf10</STRONG>. The codes transmit-
+ ted by certain other special keys can be given: <STRONG>kll</STRONG> (home
+ down), <STRONG>kbs</STRONG> (backspace), <STRONG>ktbc</STRONG> (clear all tabs), <STRONG>kctab</STRONG>
(clear the tab stop in this column), <STRONG>kclr</STRONG> (clear screen or
- erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG> (delete line),
- <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end of line), <STRONG>ked</STRONG>
+ erase key), <STRONG>kdch1</STRONG> (delete character), <STRONG>kdl1</STRONG> (delete line),
+ <STRONG>krmir</STRONG> (exit insert mode), <STRONG>kel</STRONG> (clear to end of line), <STRONG>ked</STRONG>
(clear to end of screen), <STRONG>kich1</STRONG> (insert character or enter
- insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG> (next page), <STRONG>kpp</STRONG>
- (previous page), <STRONG>kind</STRONG> (scroll forward/down), <STRONG>kri</STRONG> (scroll
- backward/up), <STRONG>khts</STRONG> (set a tab stop in this column). In
+ insert mode), <STRONG>kil1</STRONG> (insert line), <STRONG>knp</STRONG> (next page), <STRONG>kpp</STRONG>
+ (previous page), <STRONG>kind</STRONG> (scroll forward/down), <STRONG>kri</STRONG> (scroll
+ backward/up), <STRONG>khts</STRONG> (set a tab stop in this column). In
addition, if the keypad has a 3 by 3 array of keys includ-
- ing the four arrow keys, the other five keys can be given
- as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are useful
+ ing the four arrow keys, the other five keys can be given
+ as <STRONG>ka1</STRONG>, <STRONG>ka3</STRONG>, <STRONG>kb2</STRONG>, <STRONG>kc1</STRONG>, and <STRONG>kc3</STRONG>. These keys are useful
when the effects of a 3 by 3 directional pad are needed.
- Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
- <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
- be specified as <STRONG>pln</STRONG>. Each of these strings takes two
- parameters: the function key number to program (from 0 to
- 10) and the string to program it with. Function key num-
- bers out of this range may program undefined keys in a
- terminal dependent manner. The difference between the
- capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
- to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
+ Strings to program function keys can be given as <STRONG>pfkey</STRONG>,
+ <STRONG>pfloc</STRONG>, and <STRONG>pfx</STRONG>. A string to program screen labels should
+ be specified as <STRONG>pln</STRONG>. Each of these strings takes two
+ parameters: the function key number to program (from 0 to
+ 10) and the string to program it with. Function key num-
+ bers out of this range may program undefined keys in a
+ terminal dependent manner. The difference between the
+ capabilities is that <STRONG>pfkey</STRONG> causes pressing the given key
+ to be the same as the user typing the given string; <STRONG>pfloc</STRONG>
causes the string to be executed by the terminal in local;
- and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
+ and <STRONG>pfx</STRONG> causes the string to be transmitted to the com-
puter.
The capabilities <STRONG>nlab</STRONG>, <STRONG>lw</STRONG> and <STRONG>lh</STRONG> define the number of pro-
- grammable screen labels and their width and height. If
- there are commands to turn the labels on and off, give
- them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
+ grammable screen labels and their width and height. If
+ there are commands to turn the labels on and off, give
+ them in <STRONG>smln</STRONG> and <STRONG>rmln</STRONG>. <STRONG>smln</STRONG> is normally output after one
or more pln sequences to make sure that the change becomes
visible.
<STRONG>Tabs</STRONG> <STRONG>and</STRONG> <STRONG>Initialization</STRONG>
- If the terminal has hardware tabs, the command to advance
- to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
- I). A ``back-tab'' command which moves leftward to the
+ If the terminal has hardware tabs, the command to advance
+ to the next tab stop can be given as <STRONG>ht</STRONG> (usually control
+ I). A ``back-tab'' command which moves leftward to the
preceding tab stop can be given as <STRONG>cbt</STRONG>. By convention, if
- the teletype modes indicate that tabs are being expanded
- by the computer rather than being sent to the terminal,
- programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are pre-
- sent, since the user may not have the tab stops properly
- set. If the terminal has hardware tabs which are ini-
- tially set every <EM>n</EM> spaces when the terminal is powered up,
- the numeric parameter <STRONG>it</STRONG> is given, showing the number of
- spaces the tabs are set to. This is normally used by the
- <EM>tset</EM> command to determine whether to set the mode for
- hardware tab expansion, and whether to set the tab stops.
- If the terminal has tab stops that can be saved in non-
- volatile memory, the terminfo description can assume that
+ the teletype modes indicate that tabs are being expanded
+ by the computer rather than being sent to the terminal,
+ programs should not use <STRONG>ht</STRONG> or <STRONG>cbt</STRONG> even if they are
+ present, since the user may not have the tab stops prop-
+ erly set. If the terminal has hardware tabs which are
+ initially set every <EM>n</EM> spaces when the terminal is powered
+ up, the numeric parameter <STRONG>it</STRONG> is given, showing the number
+ of spaces the tabs are set to. This is normally used by
+ the <EM>tset</EM> command to determine whether to set the mode for
+ hardware tab expansion, and whether to set the tab stops.
+ If the terminal has tab stops that can be saved in non-
+ volatile memory, the terminfo description can assume that
they are properly set.
- Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
- tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
- program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
- name of a file containing long initialization strings.
- These strings are expected to set the terminal into modes
- consistent with the rest of the terminfo description.
+ Other capabilities include <STRONG>is1</STRONG>, <STRONG>is2</STRONG>, and <STRONG>is3</STRONG>, initializa-
+ tion strings for the terminal, <STRONG>iprog</STRONG>, the path name of a
+ program to be run to initialize the terminal, and <STRONG>if</STRONG>, the
+ name of a file containing long initialization strings.
+ These strings are expected to set the terminal into modes
+ consistent with the rest of the terminfo description.
They are normally sent to the terminal, by the <EM>init</EM> option
- of the <EM>tput</EM> program, each time the user logs in. They
- will be printed in the following order: run the program
- <STRONG>iprog</STRONG>; output <STRONG>is1</STRONG>; <STRONG>is2</STRONG>; set the margins using <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG>
- and <STRONG>smgr</STRONG>; set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the file <STRONG>if</STRONG>;
+ of the <EM>tput</EM> program, each time the user logs in. They
+ will be printed in the following order: run the program
+ <STRONG>iprog</STRONG>; output <STRONG>is1</STRONG>; <STRONG>is2</STRONG>; set the margins using <STRONG>mgc</STRONG>, <STRONG>smgl</STRONG>
+ and <STRONG>smgr</STRONG>; set tabs using <STRONG>tbc</STRONG> and <STRONG>hts</STRONG>; print the file <STRONG>if</STRONG>;
and finally output <STRONG>is3</STRONG>.
- Most initialization is done with <STRONG>is2</STRONG>. Special terminal
+ Most initialization is done with <STRONG>is2</STRONG>. Special terminal
modes can be set up without duplicating strings by putting
- the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
- <STRONG>is3</STRONG>. A pair of sequences that does a harder reset from a
- totally unknown state can be analogously given as <STRONG>rs1</STRONG>,
- <STRONG>rs2</STRONG>, <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>. These strings
- are output by the <EM>reset</EM> program, which is used when the
- terminal gets into a wedged state. Commands are normally
- placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoy-
- ing effects on the screen and are not necessary when log-
- ging in. For example, the command to set the vt100 into
- 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
- causes an annoying glitch of the screen and is not nor-
- mally needed since the terminal is usually already in 80
+ the common sequences in <STRONG>is2</STRONG> and special cases in <STRONG>is1</STRONG> and
+ <STRONG>is3</STRONG>. A pair of sequences that does a harder reset from a
+ totally unknown state can be analogously given as <STRONG>rs1</STRONG>,
+ <STRONG>rs2</STRONG>, <STRONG>rf</STRONG>, and <STRONG>rs3</STRONG>, analogous to <STRONG>is2</STRONG> and <STRONG>if</STRONG>. These strings
+ are output by the <EM>reset</EM> program, which is used when the
+ terminal gets into a wedged state. Commands are normally
+ placed in <STRONG>rs1</STRONG>, <STRONG>rs2</STRONG> <STRONG>rs3</STRONG> and <STRONG>rf</STRONG> only if they produce annoy-
+ ing effects on the screen and are not necessary when log-
+ ging in. For example, the command to set the vt100 into
+ 80-column mode would normally be part of <STRONG>is2</STRONG>, but it
+ causes an annoying glitch of the screen and is not nor-
+ mally needed since the terminal is usually already in 80
column mode.
If there are commands to set and clear tab stops, they can
- be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
- stop in the current column of every row). If a more com-
- plex sequence is needed to set the tabs than can be
- described by this, the sequence can be placed in <STRONG>is2</STRONG> or
+ be given as <STRONG>tbc</STRONG> (clear all tab stops) and <STRONG>hts</STRONG> (set a tab
+ stop in the current column of every row). If a more com-
+ plex sequence is needed to set the tabs than can be
+ described by this, the sequence can be placed in <STRONG>is2</STRONG> or
<STRONG>if</STRONG>.
<STRONG>Delays</STRONG> <STRONG>and</STRONG> <STRONG>Padding</STRONG>
- Many older and slower terminals don't support either
+ Many older and slower terminals do not support either
XON/XOFF or DTR handshaking, including hard copy terminals
- and some very archaic CRTs (including, for example, DEC
- VT100s). These may require padding characters after cer-
+ and some very archaic CRTs (including, for example, DEC
+ VT100s). These may require padding characters after cer-
tain cursor motions and screen changes.
If the terminal uses xon/xoff handshaking for flow control
- (that is, it automatically emits ^S back to the host when
+ (that is, it automatically emits ^S back to the host when
its input buffers are close to full), set <STRONG>xon</STRONG>. This capa-
- bility suppresses the emission of padding. You can also
- set it for memory-mapped console devices effectively that
- don't have a speed limit. Padding information should
- still be included so that routines can make better deci-
+ bility suppresses the emission of padding. You can also
+ set it for memory-mapped console devices effectively that
+ do not have a speed limit. Padding information should
+ still be included so that routines can make better deci-
sions about relative costs, but actual pad characters will
not be transmitted.
- If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
- at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
- padding baud rate, then whether padding is emitted or not
+ If <STRONG>pb</STRONG> (padding baud rate) is given, padding is suppressed
+ at baud rates below the value of <STRONG>pb</STRONG>. If the entry has no
+ padding baud rate, then whether padding is emitted or not
is completely controlled by <STRONG>xon</STRONG>.
- If the terminal requires other than a null (zero) charac-
- ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
+ If the terminal requires other than a null (zero) charac-
+ ter as a pad, then this can be given as <STRONG>pad</STRONG>. Only the
first character of the <STRONG>pad</STRONG> string is used.
<STRONG>Status</STRONG> <STRONG>Lines</STRONG>
- Some terminals have an extra `status line' which is not
- normally used by software (and thus not counted in the
+ Some terminals have an extra `status line' which is not
+ normally used by software (and thus not counted in the
terminal's <STRONG>lines</STRONG> capability).
- The simplest case is a status line which is cursor-
- addressable but not part of the main scrolling region on
- the screen; the Heathkit H19 has a status line of this
- kind, as would a 24-line VT100 with a 23-line scrolling
- region set up on initialization. This situation is indi-
+ The simplest case is a status line which is cursor-
+ addressable but not part of the main scrolling region on
+ the screen; the Heathkit H19 has a status line of this
+ kind, as would a 24-line VT100 with a 23-line scrolling
+ region set up on initialization. This situation is indi-
cated by the <STRONG>hs</STRONG> capability.
Some terminals with status lines need special sequences to
- access the status line. These may be expressed as a
+ access the status line. These may be expressed as a
string with single parameter <STRONG>tsl</STRONG> which takes the cursor to
- a given zero-origin column on the status line. The capa-
- bility <STRONG>fsl</STRONG> must return to the main-screen cursor positions
- before the last <STRONG>tsl</STRONG>. You may need to embed the string
- values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor) in <STRONG>tsl</STRONG>
- and <STRONG>fsl</STRONG> to accomplish this.
-
- The status line is normally assumed to be the same width
- as the width of the terminal. If this is untrue, you can
+ a given zero-origin column on the status line. The
+ capability <STRONG>fsl</STRONG> must return to the main-screen cursor posi-
+ tions before the last <STRONG>tsl</STRONG>. You may need to embed the
+ string values of <STRONG>sc</STRONG> (save cursor) and <STRONG>rc</STRONG> (restore cursor)
+ in <STRONG>tsl</STRONG> and <STRONG>fsl</STRONG> to accomplish this.
+
+ The status line is normally assumed to be the same width
+ as the width of the terminal. If this is untrue, you can
specify it with the numeric capability <STRONG>wsl</STRONG>.
- A command to erase or blank the status line may be speci-
+ A command to erase or blank the status line may be speci-
fied as <STRONG>dsl</STRONG>.
- The boolean capability <STRONG>eslok</STRONG> specifies that escape
+ The boolean capability <STRONG>eslok</STRONG> specifies that escape
sequences, tabs, etc., work ordinarily in the status line.
- The <STRONG>ncurses</STRONG> implementation does not yet use any of these
- capabilities. They are documented here in case they ever
+ The <STRONG>ncurses</STRONG> implementation does not yet use any of these
+ capabilities. They are documented here in case they ever
become important.
<STRONG>Line</STRONG> <STRONG>Graphics</STRONG>
- Many terminals have alternate character sets useful for
- forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
- the drawing characters supported by the VT100, with some
- characters from the AT&T 4410v1 added. This alternate
+ Many terminals have alternate character sets useful for
+ forms-drawing. Terminfo and <STRONG>curses</STRONG> build in support for
+ the drawing characters supported by the VT100, with some
+ characters from the AT&T 4410v1 added. This alternate
character set may be specified by the <STRONG>acsc</STRONG> capability.
+
<STRONG>Glyph</STRONG> <STRONG>ACS</STRONG> <STRONG>Ascii</STRONG> <STRONG>VT100</STRONG>
<STRONG>Name</STRONG> <STRONG>Name</STRONG> <STRONG>Default</STRONG> <STRONG>Name</STRONG>
UK pound sign ACS_STERLING f }
bullet ACS_BULLET o ~
checker board (stipple) ACS_CKBOARD : a
degree symbol ACS_DEGREE \ f
-
diamond ACS_DIAMOND + `
greater-than-or-equal-to ACS_GEQUAL > z
greek pi ACS_PI * {
upper right corner ACS_URCORNER + k
vertical line ACS_VLINE | x
- The best way to define a new device's graphics set is to
- add a column to a copy of this table for your terminal,
- giving the character which (when emitted between
- <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
- ing graphic. Then read off the VT100/your terminal char-
- acter pairs right to left in sequence; these become the
+ The best way to define a new device's graphics set is to
+ add a column to a copy of this table for your terminal,
+ giving the character which (when emitted between
+ <STRONG>smacs</STRONG>/<STRONG>rmacs</STRONG> switches) will be rendered as the correspond-
+ ing graphic. Then read off the VT100/your terminal char-
+ acter pairs right to left in sequence; these become the
ACSC string.
<STRONG>Color</STRONG> <STRONG>Handling</STRONG>
- Most color terminals are either `Tektronix-like' or `HP-
- like'. Tektronix-like terminals have a predefined set of
- N colors (where N usually 8), and can set character-cell
+ Most color terminals are either `Tektronix-like' or `HP-
+ like'. Tektronix-like terminals have a predefined set of
+ N colors (where N usually 8), and can set character-cell
foreground and background characters independently, mixing
- them into N * N color-pairs. On HP-like terminals, the
+ them into N * N color-pairs. On HP-like terminals, the
use must set each color pair up separately (foreground and
- background are not independently settable). Up to M
- color-pairs may be set up from 2*M different colors.
+ background are not independently settable). Up to M
+ color-pairs may be set up from 2*M different colors.
ANSI-compatible terminals are Tektronix-like.
Some basic color capabilities are independent of the color
method. The numeric capabilities <STRONG>colors</STRONG> and <STRONG>pairs</STRONG> specify
- the maximum numbers of colors and color-pairs that can be
- displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
- resets foreground and background colors to their default
- values for the terminal. The <STRONG>oc</STRONG> string resets all colors
- or color-pairs to their default values for the terminal.
- Some terminals (including many PC terminal emulators)
- erase screen areas with the current background color
- rather than the power-up default background; these should
+ the maximum numbers of colors and color-pairs that can be
+ displayed simultaneously. The <STRONG>op</STRONG> (original pair) string
+ resets foreground and background colors to their default
+ values for the terminal. The <STRONG>oc</STRONG> string resets all colors
+ or color-pairs to their default values for the terminal.
+ Some terminals (including many PC terminal emulators)
+ erase screen areas with the current background color
+ rather than the power-up default background; these should
have the boolean capability <STRONG>bce</STRONG>.
- To change the current foreground or background color on a
- Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
- and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
- and <STRONG>setb</STRONG> (set background). These take one parameter, the
+ To change the current foreground or background color on a
+ Tektronix-type terminal, use <STRONG>setaf</STRONG> (set ANSI foreground)
+ and <STRONG>setab</STRONG> (set ANSI background) or <STRONG>setf</STRONG> (set foreground)
+ and <STRONG>setb</STRONG> (set background). These take one parameter, the
color number. The SVr4 documentation describes only
- <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
+ <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>; the XPG4 draft says that "If the terminal
supports ANSI escape sequences to set background and fore-
- ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
- tively. If the terminal supports other escape sequences
- to set background and foreground, they should be coded as
- <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
- the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
+ ground, they should be coded as <STRONG>setaf</STRONG> and <STRONG>setab</STRONG>, respec-
+ tively. If the terminal supports other escape sequences
+ to set background and foreground, they should be coded as
+ <STRONG>setf</STRONG> and <STRONG>setb</STRONG>, respectively. The <EM>vidputs()</EM> function and
+ the refresh functions use <STRONG>setaf</STRONG> and <STRONG>setab</STRONG> if they are
defined."
- The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
+ The <STRONG>setaf</STRONG>/<STRONG>setab</STRONG> and <STRONG>setf</STRONG>/<STRONG>setb</STRONG> capabilities take a single
numeric argument each. Argument values 0-7 of <STRONG>setaf</STRONG>/<STRONG>setab</STRONG>
- are portably defined as follows (the middle column is the
+ are portably defined as follows (the middle column is the
symbolic #define available in the header for the <STRONG>curses</STRONG> or
- <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
- these as it likes, but the RGB values indicate normal
+ <STRONG>ncurses</STRONG> libraries). The terminal hardware is free to map
+ these as it likes, but the RGB values indicate normal
locations in color space.
+
<STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
red <STRONG>COLOR_RED</STRONG> 1 max,0,0
cyan <STRONG>COLOR_CYAN</STRONG> 6 0,max,max
white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
- The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
+ The argument values of <STRONG>setf</STRONG>/<STRONG>setb</STRONG> historically correspond
to a different mapping, i.e.,
+
+
<STRONG>Color</STRONG> <STRONG>#define</STRONG> <STRONG>Value</STRONG> <STRONG>RGB</STRONG>
black <STRONG>COLOR_BLACK</STRONG> 0 0, 0, 0
blue <STRONG>COLOR_BLUE</STRONG> 1 0,0,max
yellow <STRONG>COLOR_YELLOW</STRONG> 6 max,max,0
white <STRONG>COLOR_WHITE</STRONG> 7 max,max,max
It is important to not confuse the two sets of color capa-
- bilities; otherwise red/blue will be interchanged on the
+ bilities; otherwise red/blue will be interchanged on the
display.
- On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
+ On an HP-like terminal, use <STRONG>scp</STRONG> with a color-pair number
parameter to set which color pair is current.
- On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
- present to indicate that colors can be modified. If so,
+ On a Tektronix-like terminal, the capability <STRONG>ccc</STRONG> may be
+ present to indicate that colors can be modified. If so,
the <STRONG>initc</STRONG> capability will take a color number (0 to <STRONG>colors</STRONG>
- - 1)and three more parameters which describe the color.
+ - 1)and three more parameters which describe the color.
These three parameters default to being interpreted as RGB
- (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
+ (Red, Green, Blue) values. If the boolean capability <STRONG>hls</STRONG>
is present, they are instead as HLS (Hue, Lightness, Satu-
ration) indices. The ranges are terminal-dependent.
- On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
- changing a color-pair value. It will take seven parame-
- ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
- triples describing first background and then foreground
- colors. These parameters must be (Red, Green, Blue) or
+ On an HP-like terminal, <STRONG>initp</STRONG> may give a capability for
+ changing a color-pair value. It will take seven parame-
+ ters; a color-pair number (0 to <STRONG>max_pairs</STRONG> - 1), and two
+ triples describing first background and then foreground
+ colors. These parameters must be (Red, Green, Blue) or
(Hue, Lightness, Saturation) depending on <STRONG>hls</STRONG>.
- On some color terminals, colors collide with highlights.
+ On some color terminals, colors collide with highlights.
You can register these collisions with the <STRONG>ncv</STRONG> capability.
- This is a bit-mask of attributes not to be used when col-
- ors are enabled. The correspondence with the attributes
+ This is a bit-mask of attributes not to be used when col-
+ ors are enabled. The correspondence with the attributes
understood by <STRONG>curses</STRONG> is as follows:
+
<STRONG>Attribute</STRONG> <STRONG>Bit</STRONG> <STRONG>Decimal</STRONG>
A_STANDOUT 0 1
A_UNDERLINE 1 2
-
A_REVERSE 2 4
A_BLINK 3 8
A_DIM 4 16
A_PROTECT 7 128
A_ALTCHARSET 8 256
- For example, on many IBM PC consoles, the underline
- attribute collides with the foreground color blue and is
- not available in color mode. These should have an <STRONG>ncv</STRONG>
+ For example, on many IBM PC consoles, the underline
+ attribute collides with the foreground color blue and is
+ not available in color mode. These should have an <STRONG>ncv</STRONG>
capability of 2.
- SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
+ SVr4 curses does nothing with <STRONG>ncv</STRONG>, ncurses recognizes it
and optimizes the output in favor of colors.
<STRONG>Miscellaneous</STRONG>
- If the terminal requires other than a null (zero) charac-
- ter as a pad, then this can be given as pad. Only the
- first character of the pad string is used. If the termi-
+ If the terminal requires other than a null (zero) charac-
+ ter as a pad, then this can be given as pad. Only the
+ first character of the pad string is used. If the termi-
nal does not have a pad character, specify npc. Note that
- ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
- though the application may set this value to something
- other than a null, ncurses will test <STRONG>npc</STRONG> first and use
+ ncurses implements the termcap-compatible <STRONG>PC</STRONG> variable;
+ though the application may set this value to something
+ other than a null, ncurses will test <STRONG>npc</STRONG> first and use
napms if the terminal has no pad character.
- If the terminal can move up or down half a line, this can
- be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
+ If the terminal can move up or down half a line, this can
+ be indicated with <STRONG>hu</STRONG> (half-line up) and <STRONG>hd</STRONG> (half-line
down). This is primarily useful for superscripts and sub-
- scripts on hard-copy terminals. If a hard-copy terminal
- can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
+ scripts on hard-copy terminals. If a hard-copy terminal
+ can eject to the next page (form feed), give this as <STRONG>ff</STRONG>
(usually control L).
- If there is a command to repeat a given character a given
- number of times (to save time transmitting a large number
- of identical characters) this can be indicated with the
- parameterized string <STRONG>rep</STRONG>. The first parameter is the
- character to be repeated and the second is the number of
- times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
+ If there is a command to repeat a given character a given
+ number of times (to save time transmitting a large number
+ of identical characters) this can be indicated with the
+ parameterized string <STRONG>rep</STRONG>. The first parameter is the
+ character to be repeated and the second is the number of
+ times to repeat it. Thus, tparm(repeat_char, 'x', 10) is
the same as `xxxxxxxxxx'.
- If the terminal has a settable command character, such as
- the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
+ If the terminal has a settable command character, such as
+ the TEKTRONIX 4025, this can be indicated with <STRONG>cmdch</STRONG>. A
prototype command character is chosen which is used in all
- capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
- bility to identify it. The following convention is sup-
- ported on some UNIX systems: The environment is to be
- searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
+ capabilities. This character is given in the <STRONG>cmdch</STRONG> capa-
+ bility to identify it. The following convention is sup-
+ ported on some UNIX systems: The environment is to be
+ searched for a <STRONG>CC</STRONG> variable, and if found, all occurrences
of the prototype character are replaced with the character
in the environment variable.
- Terminal descriptions that do not represent a specific
+ Terminal descriptions that do not represent a specific
kind of known terminal, such as <EM>switch</EM>, <EM>dialup</EM>, <EM>patch</EM>, and
- <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
- that programs can complain that they do not know how to
- talk to the terminal. (This capability does not apply to
- <EM>virtual</EM> terminal descriptions for which the escape
+ <EM>network</EM>, should include the <STRONG>gn</STRONG> (generic) capability so
+ that programs can complain that they do not know how to
+ talk to the terminal. (This capability does not apply to
+ <EM>virtual</EM> terminal descriptions for which the escape
sequences are known.)
- If the terminal has a ``meta key'' which acts as a shift
- key, setting the 8th bit of any character transmitted,
- this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
+ If the terminal has a ``meta key'' which acts as a shift
+ key, setting the 8th bit of any character transmitted,
+ this fact can be indicated with <STRONG>km</STRONG>. Otherwise, software
will assume that the 8th bit is parity and it will usually
- be cleared. If strings exist to turn this ``meta mode''
+ be cleared. If strings exist to turn this ``meta mode''
on and off, they can be given as <STRONG>smm</STRONG> and <STRONG>rmm</STRONG>.
- If the terminal has more lines of memory than will fit on
- the screen at once, the number of lines of memory can be
- indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
+ If the terminal has more lines of memory than will fit on
+ the screen at once, the number of lines of memory can be
+ indicated with <STRONG>lm</STRONG>. A value of <STRONG>lm</STRONG>#0 indicates that the
number of lines is not fixed, but that there is still more
memory than fits on the screen.
If the terminal is one of those supported by the UNIX vir-
- tual terminal protocol, the terminal number can be given
+ tual terminal protocol, the terminal number can be given
as <STRONG>vt</STRONG>.
Media copy strings which control an auxiliary printer con-
nected to the terminal can be given as <STRONG>mc0</STRONG>: print the con-
- tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
- turn on the printer. When the printer is on, all text
- sent to the terminal will be sent to the printer. It is
+ tents of the screen, <STRONG>mc4</STRONG>: turn off the printer, and <STRONG>mc5</STRONG>:
+ turn on the printer. When the printer is on, all text
+ sent to the terminal will be sent to the printer. It is
undefined whether the text is also displayed on the termi-
nal screen when the printer is on. A variation <STRONG>mc5p</STRONG> takes
one parameter, and leaves the printer on for as many char-
- acters as the value of the parameter, then turns the
- printer off. The parameter should not exceed 255. All
+ acters as the value of the parameter, then turns the
+ printer off. The parameter should not exceed 255. All
text, including <STRONG>mc4</STRONG>, is transparently passed to the
printer while an <STRONG>mc5p</STRONG> is in effect.
<STRONG>Glitches</STRONG> <STRONG>and</STRONG> <STRONG>Braindamage</STRONG>
- Hazeltine terminals, which do not allow `~' characters to
+ Hazeltine terminals, which do not allow `~' characters to
be displayed should indicate <STRONG>hz</STRONG>.
Terminals which ignore a line-feed immediately after an <STRONG>am</STRONG>
wrap, such as the Concept and vt100, should indicate <STRONG>xenl</STRONG>.
- If <STRONG>el</STRONG> is required to get rid of standout (instead of
- merely writing normal text on top of it), <STRONG>xhp</STRONG> should be
+ If <STRONG>el</STRONG> is required to get rid of standout (instead of
+ merely writing normal text on top of it), <STRONG>xhp</STRONG> should be
given.
- Teleray terminals, where tabs turn all characters moved
- over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs).
- Note: the variable indicating this is now
- `dest_tabs_magic_smso'; in older versions, it was tel-
+ Teleray terminals, where tabs turn all characters moved
+ over to blanks, should indicate <STRONG>xt</STRONG> (destructive tabs).
+ Note: the variable indicating this is now
+ `dest_tabs_magic_smso'; in older versions, it was tel-
eray_glitch. This glitch is also taken to mean that it is
- not possible to position the cursor on top of a ``magic
+ not possible to position the cursor on top of a ``magic
cookie'', that to erase standout mode it is instead neces-
sary to use delete and insert line. The ncurses implemen-
tation ignores this glitch.
- The Beehive Superbee, which is unable to correctly trans-
- mit the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
- ing that the f1 key is used for escape and f2 for control
- C. (Only certain Superbees have this problem, depending
- on the ROM.) Note that in older terminfo versions, this
- capability was called `beehive_glitch'; it is now
+ The Beehive Superbee, which is unable to correctly trans-
+ mit the escape or control C characters, has <STRONG>xsb</STRONG>, indicat-
+ ing that the f1 key is used for escape and f2 for control
+ C. (Only certain Superbees have this problem, depending
+ on the ROM.) Note that in older terminfo versions, this
+ capability was called `beehive_glitch'; it is now
`no_esc_ctl_c'.
- Other specific terminal problems may be corrected by
+ Other specific terminal problems may be corrected by
adding more capabilities of the form <STRONG>x</STRONG><EM>x</EM>.
<STRONG>Similar</STRONG> <STRONG>Terminals</STRONG>
If there are two very similar terminals, one (the variant)
- can be defined as being just like the other (the base)
- with certain exceptions. In the definition of the vari-
- ant, the string capability <STRONG>use</STRONG> can be given with the name
- of the base terminal. The capabilities given before <STRONG>use</STRONG>
- override those in the base type named by <STRONG>use</STRONG>. If there
- are multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
- order. That is, the rightmost <STRONG>use</STRONG> reference is processed
- first, then the one to its left, and so forth. Capabili-
- ties given explicitly in the entry override those brought
+ can be defined as being just like the other (the base)
+ with certain exceptions. In the definition of the vari-
+ ant, the string capability <STRONG>use</STRONG> can be given with the name
+ of the base terminal. The capabilities given before <STRONG>use</STRONG>
+ override those in the base type named by <STRONG>use</STRONG>. If there
+ are multiple <STRONG>use</STRONG> capabilities, they are merged in reverse
+ order. That is, the rightmost <STRONG>use</STRONG> reference is processed
+ first, then the one to its left, and so forth. Capabili-
+ ties given explicitly in the entry override those brought
in by <STRONG>use</STRONG> references.
A capability can be canceled by placing <STRONG>xx@</STRONG> to the left of
- the use reference that imports it, where <EM>xx</EM> is the capa-
+ the use reference that imports it, where <EM>xx</EM> is the capa-
bility. For example, the entry
2621-nl, smkx@, rmkx@, use=2621,
- defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
- capabilities, and hence does not turn on the function key
- labels when in visual mode. This is useful for different
+ defines a 2621-nl that does not have the <STRONG>smkx</STRONG> or <STRONG>rmkx</STRONG>
+ capabilities, and hence does not turn on the function key
+ labels when in visual mode. This is useful for different
modes for a terminal, or for different user preferences.
<STRONG>Pitfalls</STRONG> <STRONG>of</STRONG> <STRONG>Long</STRONG> <STRONG>Entries</STRONG>
- Long terminfo entries are unlikely to be a problem; to
- date, no entry has even approached terminfo's 4K string-
- table maximum. Unfortunately, the termcap translations
- are much more strictly limited (to 1K), thus termcap
- translations of long terminfo entries can cause problems.
-
- The man pages for 4.3BSD and older versions of tgetent()
- instruct the user to allocate a 1K buffer for the termcap
- entry. The entry gets null-terminated by the termcap
- library, so that makes the maximum safe length for a term-
- cap entry 1k-1 (1023) bytes. Depending on what the appli-
- cation and the termcap library being used does, and where
- in the termcap file the terminal type that tgetent() is
- searching for is, several bad things can happen.
-
- Some termcap libraries print a warning message or exit if
- they find an entry that's longer than 1023 bytes; others
- don't; others truncate the entries to 1023 bytes. Some
+ Long terminfo entries are unlikely to be a problem; to
+ date, no entry has even approached terminfo's 4096-byte
+ string-table maximum. Unfortunately, the termcap transla-
+ tions are much more strictly limited (to 1023 bytes), thus
+ termcap translations of long terminfo entries can cause
+ problems.
+
+ The man pages for 4.3BSD and older versions of <STRONG>tgetent()</STRONG>
+ instruct the user to allocate a 1024-byte buffer for the
+ termcap entry. The entry gets null-terminated by the
+ termcap library, so that makes the maximum safe length for
+ a termcap entry 1k-1 (1023) bytes. Depending on what the
+ application and the termcap library being used does, and
+ where in the termcap file the terminal type that <STRONG>tgetent()</STRONG>
+ is searching for is, several bad things can happen.
+
+ Some termcap libraries print a warning message or exit if
+ they find an entry that's longer than 1023 bytes; others
+ do not; others truncate the entries to 1023 bytes. Some
application programs allocate more than the recommended 1K
- for the termcap entry; others don't.
+ for the termcap entry; others do not.
Each termcap entry has two important sizes associated with
it: before "tc" expansion, and after "tc" expansion. "tc"
- is the capability that tacks on another termcap entry to
- the end of the current one, to add on its capabilities.
- If a termcap entry doesn't use the "tc" capability, then
+ is the capability that tacks on another termcap entry to
+ the end of the current one, to add on its capabilities.
+ If a termcap entry does not use the "tc" capability, then
of course the two lengths are the same.
- The "before tc expansion" length is the most important
- one, because it affects more than just users of that par-
- ticular terminal. This is the length of the entry as it
+ The "before tc expansion" length is the most important
+ one, because it affects more than just users of that par-
+ ticular terminal. This is the length of the entry as it
exists in /etc/termcap, minus the backslash-newline pairs,
- which tgetent() strips out while reading it. Some termcap
- libraries strip off the final newline, too (GNU termcap
+ which <STRONG>tgetent()</STRONG> strips out while reading it. Some termcap
+ libraries strip off the final newline, too (GNU termcap
does not). Now suppose:
- * a termcap entry before expansion is more than 1023
+ * a termcap entry before expansion is more than 1023
bytes long,
* and the application has only allocated a 1k buffer,
- * and the termcap library (like the one in BSD/OS 1.1
- and GNU) reads the whole entry into the buffer, no
- matter what its length, to see if it's the entry it
+ * and the termcap library (like the one in BSD/OS 1.1
+ and GNU) reads the whole entry into the buffer, no
+ matter what its length, to see if it's the entry it
wants,
- * and tgetent() is searching for a terminal type that
+ * and <STRONG>tgetent()</STRONG> is searching for a terminal type that
either is the long entry, appears in the termcap file
- after the long entry, or doesn't appear in the file
- at all (so that tgetent() has to search the whole
+ after the long entry, or does not appear in the file
+ at all (so that <STRONG>tgetent()</STRONG> has to search the whole
termcap file).
- Then tgetent() will overwrite memory, perhaps its stack,
- and probably core dump the program. Programs like telnet
- are particularly vulnerable; modern telnets pass along
- values like the terminal type automatically. The results
- are almost as undesirable with a termcap library, like
- SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
- when it reads an overly long termcap entry. If a termcap
- library truncates long entries, like OSF/1 3.0, it is
- immune to dying here but will return incorrect data for
+ Then <STRONG>tgetent()</STRONG> will overwrite memory, perhaps its stack,
+ and probably core dump the program. Programs like telnet
+ are particularly vulnerable; modern telnets pass along
+ values like the terminal type automatically. The results
+ are almost as undesirable with a termcap library, like
+ SunOS 4.1.3 and Ultrix 4.4, that prints warning messages
+ when it reads an overly long termcap entry. If a termcap
+ library truncates long entries, like OSF/1 3.0, it is
+ immune to dying here but will return incorrect data for
the terminal.
The "after tc expansion" length will have a similar effect
to the above, but only for people who actually set TERM to
- that terminal type, since tgetent() only does "tc" expan-
+ that terminal type, since <STRONG>tgetent()</STRONG> only does "tc" expan-
sion once it's found the terminal type it was looking for,
not while searching.
In summary, a termcap entry that is longer than 1023 bytes
- can cause, on various combinations of termcap libraries
- and applications, a core dump, warnings, or incorrect
- operation. If it's too long even before "tc" expansion,
+ can cause, on various combinations of termcap libraries
+ and applications, a core dump, warnings, or incorrect
+ operation. If it's too long even before "tc" expansion,
it will have this effect even for users of some other ter-
- minal types and users whose TERM variable does not have a
+ minal types and users whose TERM variable does not have a
termcap entry.
When in -C (translate to termcap) mode, the <STRONG>ncurses</STRONG> imple-
- mentation of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the pre-
- tc length of a termcap translation is too long. The -c
- (check) option also checks resolved (after tc expansion)
+ mentation of <STRONG><A HREF="tic.1.html">tic(1)</A></STRONG> issues warning messages when the pre-
+ tc length of a termcap translation is too long. The -c
+ (check) option also checks resolved (after tc expansion)
lengths.
<STRONG>Binary</STRONG> <STRONG>Compatibility</STRONG>
- It is not wise to count on portability of binary terminfo
- entries between commercial UNIX versions. The problem is
- that there are at least two versions of terminfo (under
+ It is not wise to count on portability of binary terminfo
+ entries between commercial UNIX versions. The problem is
+ that there are at least two versions of terminfo (under
HP-UX and AIX) which diverged from System V terminfo after
- SVr1, and have added extension capabilities to the string
- table that (in the binary format) collide with System V
+ SVr1, and have added extension capabilities to the string
+ table that (in the binary format) collide with System V
and XSI Curses extensions.
</PRE>
<H2>EXTENSIONS</H2><PRE>
- Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
- SVr4, don't interpret the %A and %O operators in parameter
- strings.
-
- SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
- while in an alternate-character-set mode (such modes may,
- among other things, map CR and NL to characters that don't
- trigger local motions). The <STRONG>ncurses</STRONG> implementation
- ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
- bility that an XPG4 implementation making the opposite
- interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
+ Some SVr4 <STRONG>curses</STRONG> implementations, and all previous to
+ SVr4, do not interpret the %A and %O operators in parame-
+ ter strings.
+
+ SVr4/XPG4 do not specify whether <STRONG>msgr</STRONG> licenses movement
+ while in an alternate-character-set mode (such modes may,
+ among other things, map CR and NL to characters that do
+ not trigger local motions). The <STRONG>ncurses</STRONG> implementation
+ ignores <STRONG>msgr</STRONG> in <STRONG>ALTCHARSET</STRONG> mode. This raises the possi-
+ bility that an XPG4 implementation making the opposite
+ interpretation may need terminfo entries made for <STRONG>ncurses</STRONG>
to have <STRONG>msgr</STRONG> turned off.
- The <STRONG>ncurses</STRONG> library handles insert-character and insert-
+ The <STRONG>ncurses</STRONG> library handles insert-character and insert-
character modes in a slightly non-standard way to get bet-
- ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
+ ter update efficiency. See the <STRONG>Insert/Delete</STRONG> <STRONG>Character</STRONG>
subsection above.
- The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
- <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
+ The parameter substitutions for <STRONG>set_clock</STRONG> and <STRONG>dis-</STRONG>
+ <STRONG>play_clock</STRONG> are not documented in SVr4 or the XSI Curses
standard. They are deduced from the documentation for the
AT&T 505 terminal.
- Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
- wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
- and emulators like xterm that can return mouse-tracking
+ Be careful assigning the <STRONG>kmous</STRONG> capability. The <STRONG>ncurses</STRONG>
+ wants to interpret it as <STRONG>KEY_MOUSE</STRONG>, for use by terminals
+ and emulators like xterm that can return mouse-tracking
information in the keyboard-input stream.
- Different commercial ports of terminfo and curses support
- different subsets of the XSI Curses standard and (in some
+ Different commercial ports of terminfo and curses support
+ different subsets of the XSI Curses standard and (in some
cases) different extension sets. Here is a summary, accu-
rate as of October 1995:
<STRONG>SVR4,</STRONG> <STRONG>Solaris,</STRONG> <STRONG>ncurses</STRONG> -- These support all SVr4 capabili-
ties.
- <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
+ <STRONG>SGI</STRONG> -- Supports the SVr4 set, adds one undocumented
extended string capability (<STRONG>set_pglen</STRONG>).
- <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
- minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
- numerics with <STRONG>width_status_line</STRONG>; and the strings with
+ <STRONG>SVr1,</STRONG> <STRONG>Ultrix</STRONG> -- These support a restricted subset of ter-
+ minfo capabilities. The booleans end with <STRONG>xon_xoff</STRONG>; the
+ numerics with <STRONG>width_status_line</STRONG>; and the strings with
<STRONG>prtr_non</STRONG>.
- <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
+ <STRONG>HP/UX</STRONG> -- Supports the SVr1 subset, plus the SVr[234]
numerics <STRONG>num_labels</STRONG>, <STRONG>label_height</STRONG>, <STRONG>label_width</STRONG>, plus func-
- tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
+ tion keys 11 through 63, plus <STRONG>plab_norm</STRONG>, <STRONG>label_on</STRONG>, and
<STRONG>label_off</STRONG>, plus some incompatible extensions in the string
table.
- <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
- through 63, plus a number of incompatible string table
+ <STRONG>AIX</STRONG> -- Supports the SVr1 subset, plus function keys 11
+ through 63, plus a number of incompatible string table
extensions.
- <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
+ <STRONG>OSF</STRONG> -- Supports both the SVr4 set and the AIX extensions.
</PRE>
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
+ <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>, <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG>, <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="printf.3S.html">printf(3S)</A></STRONG>, <STRONG><A HREF="term.5.html">term(5)</A></STRONG>.
</PRE>
<H2>AUTHORS</H2><PRE>
- Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
+ Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
Based on pcurses by Pavel Curtis.
- <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
+ <STRONG><A HREF="TERMINFO.5.html">TERMINFO(5)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tic.1m,v 1.35 2003/05/11 00:32:53 tom Exp @
+ * @Id: tic.1m,v 1.38 2005/04/30 19:39:28 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+<STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG> <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
rather than discarding them. Capabilities are com-
mented by prefixing them with a period. This sets
the <STRONG>-x</STRONG> option, because it treats the commented-out
- entries as user-defined names.
+ entries as user-defined names. If the source is
+ termcap, accept the 2-character names required by
+ version 6. Otherwise these are ignored.
<STRONG>-C</STRONG> Force source translation to termcap format. Note:
this differs from the <STRONG>-C</STRONG> option of <STRONG><A HREF="infocmp.1m.html">infocmp(1m)</A></STRONG> in
alias of a terminal matches one of the names in the
list, the entry will be written or translated as
normal. Otherwise no output will be generated for
- it. The option value is interpreted as a file
- containing the list if it contains a '/'. (Note:
+ it. The option value is interpreted as a file con-
+ taining the list if it contains a '/'. (Note:
depending on how tic was compiled, this option may
require <STRONG>-I</STRONG> or <STRONG>-C</STRONG>.)
is, if you supply a capability name which <STRONG>tic</STRONG> does
not recognize, it will infer its type (boolean,
number or string) from the syntax and make an
- extended table entry for that.
+ extended table entry for that. User-defined capa-
+ bility strings whose name begins with ``k'' are
+ treated as function keys.
<EM>file</EM> contains one or more <STRONG>terminfo</STRONG> terminal descriptions
in source format [see <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>]. Each descrip-
8 List of tokens encountered by scanner
- 9 All values computed in construction of the hash
- table
+ 9 All values computed in construction of the hash ta-
+ ble
If the debug level <EM>n</EM> is not given, it is taken to be one.
- <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
+ <STRONG><A HREF="tic.1m.html">tic(1m)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: toe.1m,v 1.12 2003/05/11 00:32:53 tom Exp @
+ * @Id: toe.1m,v 1.13 2004/07/05 13:16:08 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
+<STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG> <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
- <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
+ <STRONG><A HREF="toe.1m.html">toe(1m)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!--
* t
****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tput.1,v 1.20 2003/05/11 00:32:53 tom Exp @
+ * @Id: tput.1,v 1.22 2005/01/08 17:44:26 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+<STRONG><A HREF="tput.1.html">tput(1)</A></STRONG> <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
values of terminal-dependent capabilities and information
available to the shell (see <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>), to initialize or reset
the terminal, or return the long name of the requested
- terminal type. <STRONG>tput</STRONG> outputs a string if the attribute
- (<EM>cap</EM>ability <EM>name</EM>) is of type string, or an integer if the
- attribute is of type integer. If the attribute is of type
- boolean, <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if the
- terminal has the capability, <STRONG>1</STRONG> for FALSE if it does not),
- and produces no output. Before using a value returned on
- standard output, the user should test the exit code [<STRONG>$?</STRONG>,
- see <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>] to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and
- <STRONG>DIAGNOSTICS</STRONG> sections.) For a complete list of capabili-
- ties and the <EM>capname</EM> associated with each, see <STRONG>ter-</STRONG>
- <STRONG><A HREF="terminfo.1.html">minfo(1)</A></STRONG>.
+ terminal type. The result depends upon the capability's
+ type:
+
+ string
+ <STRONG>tput</STRONG> writes the string to the standard output.
+ No trailing newline is supplied.
+
+ integer
+ <STRONG>tput</STRONG> writes the decimal value to the standard
+ output, with a trailing newline.
+
+ boolean
+ <STRONG>tput</STRONG> simply sets the exit code (<STRONG>0</STRONG> for TRUE if
+ the terminal has the capability, <STRONG>1</STRONG> for FALSE
+ if it does not), and writes nothing to the
+ standard output.
+
+ Before using a value returned on the standard output, the
+ application should test the exit code (e.g., <STRONG>$?</STRONG>, see
+ <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>) to be sure it is <STRONG>0</STRONG>. (See the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> and <STRONG>DIAG-</STRONG>
+ <STRONG>NOSTICS</STRONG> sections.) For a complete list of capabilities
+ and the <EM>capname</EM> associated with each, see <STRONG><A HREF="terminfo.1.html">terminfo(1)</A></STRONG>.
<STRONG>-T</STRONG><EM>type</EM> indicates the <EM>type</EM> of terminal. Normally this
option is unnecessary, because the default is taken
be queried for the actual screen size.
<EM>capname</EM>
- indicates the attribute from the <STRONG>terminfo</STRONG> database.
- When <STRONG>termcap</STRONG> support is compiled in, the <STRONG>termcap</STRONG>
- name for the attribute is also accepted.
-
- <EM>parms</EM> If the attribute is a string that takes parameters,
- the arguments <EM>parms</EM> will be instantiated into the
- string. An all-numeric argument will be passed to
- the attribute as a number.
-
- Only a few terminfo capabilities require string
- parameters; <STRONG>tput</STRONG> uses a table to decide which to
- pass as strings. Normally <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to
- perform the substitution. If no parameters are
- given for the attribute, <STRONG>tput</STRONG> writes the string
- without performing the substitution.
+ indicates the capability from the <STRONG>terminfo</STRONG>
+ database. When <STRONG>termcap</STRONG> support is compiled in, the
+ <STRONG>termcap</STRONG> name for the capability is also accepted.
+
+ <EM>parms</EM> If the capability is a string that takes parame-
+ ters, the arguments <EM>parms</EM> will be instantiated into
+ the string.
+
+ Most parameters are numbers. Only a few terminfo
+ capabilities require string parameters; <STRONG>tput</STRONG> uses a
+ table to decide which to pass as strings. Normally
+ <STRONG>tput</STRONG> uses <STRONG>tparm</STRONG> (3x) to perform the substitution.
+ If no parameters are given for the capability, <STRONG>tput</STRONG>
+ writes the string without performing the
+ substitution.
<STRONG>-S</STRONG> allows more than one capability per invocation of
<STRONG>tput</STRONG>. The capabilities must be passed to <STRONG>tput</STRONG> from
and <STRONG>1</STRONG> boolean and string exit codes (see the EXIT
CODES section).
- Again, <STRONG>tput</STRONG> uses a table and the presence of
- parameters in its input to decide whether to use
- <STRONG>tparm</STRONG> (3x), and how to interpret the parameters.
+ Again, <STRONG>tput</STRONG> uses a table and the presence of param-
+ eters in its input to decide whether to use <STRONG>tparm</STRONG>
+ (3x), and how to interpret the parameters.
<STRONG>-V</STRONG> reports the version of ncurses which was used in
this program, and exits.
<STRONG>/usr/share/terminfo</STRONG>
compiled terminal description database
- <STRONG>/usr/include/curses.h</STRONG>
- <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG> header file
-
- <STRONG>/usr/include/term.h</STRONG>
- <STRONG>terminfo</STRONG> header file
-
<STRONG>/usr/share/tabset/*</STRONG>
tab settings for some terminals, in a format appro-
priate to be output to the terminal (escape
<STRONG>tput</STRONG> prints the following error messages and sets the cor-
responding exit codes.
+
exit code error message
---------------------------------------------------------------------
<STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
- <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
+ <STRONG><A HREF="tput.1.html">tput(1)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<!--
****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tset.1,v 1.13 2003/05/11 00:32:53 tom Exp @
+ * @Id: tset.1,v 1.15 2005/03/20 18:27:09 tom Exp @
-->
<HTML>
<HEAD>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
</PRE>
<H2>SYNOPSIS</H2><PRE>
- tset [-IQVqrs] [-] [-e <EM>ch</EM>] [-i <EM>ch</EM>] [-k <EM>ch</EM>] [-m <EM>mapping</EM>]
+ <STRONG>tset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>]
[<EM>terminal</EM>]
- reset [-IQVqrs] [-] [-e <EM>ch</EM>] [-i <EM>ch</EM>] [-k <EM>ch</EM>] [-m <EM>mapping</EM>]
+ <STRONG>reset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>]
[<EM>terminal</EM>]
4. The default terminal type, ``unknown''.
If the terminal type was not specified on the command-
- line, the <STRONG>-m</STRONG> option mappings are then applied (see below
- for more information). Then, if the terminal type begins
- with a question mark (``?''), the user is prompted for
- confirmation of the terminal type. An empty response con-
- firms the type, or, another type can be entered to specify
- a new type. Once the terminal type has been determined,
- the terminfo entry for the terminal is retrieved. If no
- terminfo entry is found for the type, the user is prompted
- for another terminal type.
-
- Once the terminfo entry is retrieved, the window size,
- backspace, interrupt and line kill characters (among many
+ line, the <STRONG>-m</STRONG> option mappings are then applied (see the
+ section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more information).
+ Then, if the terminal type begins with a question mark
+ (``?''), the user is prompted for confirmation of the ter-
+ minal type. An empty response confirms the type, or,
+ another type can be entered to specify a new type. Once
+ the terminal type has been determined, the terminfo entry
+ for the terminal is retrieved. If no terminfo entry is
+ found for the type, the user is prompted for another ter-
+ minal type.
+
+ Once the terminfo entry is retrieved, the window size,
+ backspace, interrupt and line kill characters (among many
other things) are set and the terminal and tab initializa-
- tion strings are sent to the standard error output.
- Finally, if the erase, interrupt and line kill characters
- have changed, or are not set to their default values,
- their values are displayed to the standard error output.
+ tion strings are sent to the standard error output.
+ Finally, if the erase, interrupt and line kill characters
+ have changed, or are not set to their default values,
+ their values are displayed to the standard error output.
+ Use the <STRONG>-c</STRONG> or <STRONG>-w</STRONG> option to select only the window sizing
+ versus the other initialization. If neither option is
+ given, both are assumed.
When invoked as <STRONG>reset</STRONG>, <STRONG>tset</STRONG> sets cooked and echo modes,
turns off cbreak and raw modes, turns on newline transla-
The options are as follows:
- <STRONG>-q</STRONG> The terminal type is displayed to the standard out-
- put, and the terminal is not initialized in any way.
- The option `-' by itself is equivalent but archaic.
-
- <STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>.
+ <STRONG>-c</STRONG> Set control characters and modes. <STRONG>-e</STRONG> Set the erase
+ character to <EM>ch</EM>.
<STRONG>-I</STRONG> Do not send the terminal or tab initialization
strings to the terminal.
- <STRONG>-Q</STRONG> Don't display any values for the erase, interrupt and
- line kill characters.
-
- <STRONG>-V</STRONG> reports the version of ncurses which was used in this
- program, and exits.
-
<STRONG>-i</STRONG> Set the interrupt character to <EM>ch</EM>.
<STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>.
- <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
- See below for more information.
+ <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
+ See the section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more infor-
+ mation.
+
+ <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt
+ and line kill characters. Normally <STRONG>tset</STRONG> displays the
+ values for control characters which differ from the
+ system's default values.
+
+ <STRONG>-q</STRONG> The terminal type is displayed to the standard out-
+ put, and the terminal is not initialized in any way.
+ The option `-' by itself is equivalent but archaic.
<STRONG>-r</STRONG> Print the terminal type to the standard error output.
- <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
+ <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
the environment variable <STRONG>TERM</STRONG> to the standard output.
- See the section below on setting the environment for
- details.
+ See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
+
+ <STRONG>-V</STRONG> reports the version of ncurses which was used in this
+ program, and exits.
+
+ <STRONG>-w</STRONG> Resize the window to match the size deduced via
+ <STRONG>setupterm</STRONG>. Normally this has no effect, unless
+ <STRONG>setupterm</STRONG> is not able to detect the window size.
The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be
entered as actual characters or by using the `hat' nota-
that kind of terminal''.
The argument to the <STRONG>-m</STRONG> option consists of an optional port
- type, an optional operator, an optional baud rate
- specification, an optional colon (``:'') character and a
- terminal type. The port type is a string (delimited by
- either the operator or the colon character). The operator
- may be any combination of ``>'', ``<'', ``@'', and ``!'';
- ``>'' means greater than, ``<'' means less than, ``@''
- means equal to and ``!'' inverts the sense of the test.
- The baud rate is specified as a number and is compared
- with the speed of the standard error output (which should
- be the control terminal). The terminal type is a string.
+ type, an optional operator, an optional baud rate specifi-
+ cation, an optional colon (``:'') character and a terminal
+ type. The port type is a string (delimited by either the
+ operator or the colon character). The operator may be any
+ combination of ``>'', ``<'', ``@'', and ``!''; ``>'' means
+ greater than, ``<'' means less than, ``@'' means equal to
+ and ``!'' inverts the sense of the test. The baud rate is
+ specified as a number and is compared with the speed of
+ the standard error output (which should be the control
+ terminal). The terminal type is a string.
If the terminal type is not specified on the command line,
- the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the
- port type and baud rate match the mapping, the terminal
- type specified in the mapping replaces the current type.
- If more than one mapping is specified, the first applica-
+ the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the
+ port type and baud rate match the mapping, the terminal
+ type specified in the mapping replaces the current type.
+ If more than one mapping is specified, the first applica-
ble mapping is used.
- For example, consider the following mapping:
+ For example, consider the following mapping:
<STRONG>dialup>9600:vt100</STRONG>. The port type is dialup , the operator
- is >, the baud rate specification is 9600, and the termi-
+ is >, the baud rate specification is 9600, and the termi-
nal type is vt100. The result of this mapping is to spec-
ify that if the terminal type is <STRONG>dialup</STRONG>, and the baud rate
- is greater than 9600 baud, a terminal type of <STRONG>vt100</STRONG> will
+ is greater than 9600 baud, a terminal type of <STRONG>vt100</STRONG> will
be used.
If no baud rate is specified, the terminal type will match
any baud rate. If no port type is specified, the terminal
- type will match any port type. For example, <STRONG>-m</STRONG>
+ type will match any port type. For example, <STRONG>-m</STRONG>
<STRONG>dialup:vt100</STRONG> <STRONG>-m</STRONG> <STRONG>:?xterm</STRONG> will cause any dialup port,
regardless of baud rate, to match the terminal type vt100,
- and any non-dialup port type to match the terminal type
- ?xterm. Note, because of the leading question mark, the
- user will be queried on a default port as to whether they
+ and any non-dialup port type to match the terminal type
+ ?xterm. Note, because of the leading question mark, the
+ user will be queried on a default port as to whether they
are actually using an xterm terminal.
- No whitespace characters are permitted in the <STRONG>-m</STRONG> option
- argument. Also, to avoid problems with meta-characters,
- it is suggested that the entire <STRONG>-m</STRONG> option argument be
- placed within single quote characters, and that <STRONG>csh</STRONG> users
- insert a backslash character (``\'') before any exclama-
+ No whitespace characters are permitted in the <STRONG>-m</STRONG> option
+ argument. Also, to avoid problems with meta-characters,
+ it is suggested that the entire <STRONG>-m</STRONG> option argument be
+ placed within single quote characters, and that <STRONG>csh</STRONG> users
+ insert a backslash character (``\'') before any exclama-
tion marks (``!'').
</PRE>
<H2>HISTORY</H2><PRE>
- The <STRONG>tset</STRONG> command appeared in BSD 3.0. The <STRONG>ncurses</STRONG> imple-
- mentation was lightly adapted from the 4.4BSD sources for
+ The <STRONG>tset</STRONG> command appeared in BSD 3.0. The <STRONG>ncurses</STRONG> imple-
+ mentation was lightly adapted from the 4.4BSD sources for
a terminfo environment by Eric S. Raymond <esr@snark.thyr-
sus.com>.
</PRE>
<H2>COMPATIBILITY</H2><PRE>
- The <STRONG>tset</STRONG> utility has been provided for backward-compati-
- bility with BSD environments (under most modern UNIXes,
- <STRONG>/etc/inittab</STRONG> and <STRONG><A HREF="getty.1.html">getty(1)</A></STRONG> can set <STRONG>TERM</STRONG> appropriately for
- each dial-up line; this obviates what was <STRONG>tset</STRONG>'s most
- important use). This implementation behaves like 4.4BSD
+ The <STRONG>tset</STRONG> utility has been provided for backward-compati-
+ bility with BSD environments (under most modern UNIXes,
+ <STRONG>/etc/inittab</STRONG> and <STRONG><A HREF="getty.1.html">getty(1)</A></STRONG> can set <STRONG>TERM</STRONG> appropriately for
+ each dial-up line; this obviates what was <STRONG>tset</STRONG>'s most
+ important use). This implementation behaves like 4.4BSD
tset, with a few exceptions specified here.
- The <STRONG>-S</STRONG> option of BSD tset no longer works; it prints an
+ The <STRONG>-S</STRONG> option of BSD tset no longer works; it prints an
error message to stderr and dies. The <STRONG>-s</STRONG> option only sets
- <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>. Both these changes are because the
- <STRONG>TERMCAP</STRONG> variable is no longer supported under terminfo-
+ <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>. Both these changes are because the
+ <STRONG>TERMCAP</STRONG> variable is no longer supported under terminfo-
based <STRONG>ncurses</STRONG>, which makes <STRONG>tset</STRONG> <STRONG>-S</STRONG> useless (we made it die
noisily rather than silently induce lossage).
- There was an undocumented 4.4BSD feature that invoking
+ There was an undocumented 4.4BSD feature that invoking
tset via a link named `TSET` (or via any other name begin-
- ning with an upper-case letter) set the terminal to use
+ ning with an upper-case letter) set the terminal to use
upper-case only. This feature has been omitted.
- The <STRONG>-A</STRONG>, <STRONG>-E</STRONG>, <STRONG>-h</STRONG>, <STRONG>-u</STRONG> and <STRONG>-v</STRONG> options were deleted from the
- <STRONG>tset</STRONG> utility in 4.4BSD. None of them were documented in
- 4.3BSD and all are of limited utility at best. The <STRONG>-a</STRONG>, -,
- and -
- options are similarly not documented or useful, but were
- retained as they appear to be in widespread use. It is
- strongly recommended that any usage of these three options
- be changed to use the <STRONG>-m</STRONG> option instead. The -n option
- remains, but has no effect. The <STRONG>-adnp</STRONG> options are there-
- fore omitted from the usage summary above.
+ The <STRONG>-A</STRONG>, <STRONG>-E</STRONG>, <STRONG>-h</STRONG>, <STRONG>-u</STRONG> and <STRONG>-v</STRONG> options were deleted from the
+ <STRONG>tset</STRONG> utility in 4.4BSD. None of them were documented in
+ 4.3BSD and all are of limited utility at best. The <STRONG>-a</STRONG>,
+ <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> options are similarly not documented or useful,
+ but were retained as they appear to be in widespread use.
+ It is strongly recommended that any usage of these three
+ options be changed to use the <STRONG>-m</STRONG> option instead. The -n
+ option remains, but has no effect. The <STRONG>-adnp</STRONG> options are
+ therefore omitted from the usage summary above.
It is still permissible to specify the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG>
options without arguments, although it is strongly recom-
</PRE>
<H2>SEE ALSO</H2><PRE>
- <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="termcap.5.html">termcap(5)</A></STRONG>, <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, envi-
- <STRONG><A HREF="ron.7.html">ron(7)</A></STRONG>
+ <STRONG><A HREF="csh.1.html">csh(1)</A></STRONG>, <STRONG><A HREF="sh.1.html">sh(1)</A></STRONG>, <STRONG><A HREF="stty.1.html">stty(1)</A></STRONG>, <STRONG><A HREF="setupterm.3.html">setupterm(3)</A></STRONG>, <STRONG><A HREF="tty.4.html">tty(4)</A></STRONG>, <STRONG><A HREF="termcap.5.html">termcap(5)</A></STRONG>,
+ <STRONG><A HREF="ttys.5.html">ttys(5)</A></STRONG>, <STRONG><A HREF="environ.7.html">environ(7)</A></STRONG>
- <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
+ <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<HR>
<PRE>
<!-- Manpage converted by man2html 3.0.1 -->
-<STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
+<STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG> <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
- <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
+ <STRONG><A HREF="wresize.3x.html">wresize(3x)</A></STRONG>
</PRE>
<HR>
<ADDRESS>
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
<!--
- $Id: ncurses-intro.html,v 1.39 2003/10/25 16:19:24 tom Exp $
+ $Id: ncurses-intro.html,v 1.40 2004/06/05 19:10:10 tom Exp $
-->
<HTML>
<HEAD>
occurs a message is written to standard error and the program
exits. Otherwise it returns a pointer to stdscr. A few functions may be
called before initscr (<CODE>slk_init()</CODE>, <CODE>filter()</CODE>,
-<CODE>ripofflines()</CODE>, <CODE>use_env()</CODE>, and, if you are using multiple
+<CODE>ripoffline()</CODE>, <CODE>use_env()</CODE>, and, if you are using multiple
terminals, <CODE>newterm()</CODE>.)
<DT> <CODE>endwin()</CODE>
<DD> Your program should always call <CODE>endwin()</CODE> before exiting or
structures. <CODE>wrefresh()</CODE> copies the named window to the physical
terminal screen, taking into account what is already
there in order to do optimizations. <CODE>refresh()</CODE> does a
-refresh of <CODE>stdscr()</CODE>. Unless <CODE>leaveok()</CODE> has been
+refresh of <CODE>stdscr</CODE>. Unless <CODE>leaveok()</CODE> has been
enabled, the physical cursor of the terminal is left at the
location of the window's cursor.
<DT> <CODE>doupdate()</CODE> and <CODE>wnoutrefresh(win)</CODE>
The really clean way to handle this is to use the panels library. If,
when you want a screen update, you do <CODE>update_panels()</CODE>, it will
-do all the necessary <CODE>wnoutrfresh()</CODE> calls for whatever panel
+do all the necessary <CODE>wnoutrefresh()</CODE> calls for whatever panel
stacking order you have defined. Then you can do one <CODE>doupdate()</CODE>
and there will be a <EM>single</EM> burst of physical I/O that will do
all your updates.
<LI>Initialize <CODE>curses</CODE>.
<LI>Create the menu items, using <CODE>new_item()</CODE>.
<LI>Create the menu using <CODE>new_menu()</CODE>.
-<LI>Post the menu using <CODE>menu_post()</CODE>.
+<LI>Post the menu using <CODE>post_menu()</CODE>.
<LI>Refresh the screen.
<LI>Process user requests via an input loop.
-<LI>Unpost the menu using <CODE>menu_unpost()</CODE>.
+<LI>Unpost the menu using <CODE>unpost_menu()</CODE>.
<LI>Free the menu, using <CODE>free_menu()</CODE>.
<LI>Free the items using <CODE>free_item()</CODE>.
<LI>Terminate <CODE>curses</CODE>.
By default, both windows are <CODE>stdscr</CODE>. You can set them with the
functions in <CODE>menu_win(3x)</CODE>. <P>
-When you call <CODE>menu_post()</CODE>, you write the menu to its
-subwindow. When you call <CODE>menu_unpost()</CODE>, you erase the
+When you call <CODE>post_menu()</CODE>, you write the menu to its
+subwindow. When you call <CODE>unpost_menu()</CODE>, you erase the
subwindow, However, neither of these actually modifies the screen. To
do that, call <CODE>wrefresh()</CODE> or some equivalent.
<LI>Initialize <CODE>curses</CODE>.
<LI>Create the form fields, using <CODE>new_field()</CODE>.
<LI>Create the form using <CODE>new_form()</CODE>.
-<LI>Post the form using <CODE>form_post()</CODE>.
+<LI>Post the form using <CODE>post_form()</CODE>.
<LI>Refresh the screen.
<LI>Process user requests via an input loop.
-<LI>Unpost the form using <CODE>form_unpost()</CODE>.
+<LI>Unpost the form using <CODE>unpost_form()</CODE>.
<LI>Free the form, using <CODE>free_form()</CODE>.
<LI>Free the fields using <CODE>free_field()</CODE>.
<LI>Terminate <CODE>curses</CODE>.
greater). Note that these coordinates are relative to the form
subwindow, which will coincide with <CODE>stdscr</CODE> by default but
need not be <CODE>stdscr</CODE> if you've done an explicit
-<CODE>set_form_window()</CODE> call. <P>
+<CODE>set_form_win()</CODE> call. <P>
The fifth argument allows you to specify a number of off-screen rows. If
this is zero, the entire field will always be displayed. If it is
-
Writing Programs with NCURSES
by Eric S. Raymond and Zeyd M. Ben-Halim
refresh() will clear the screen. If an error occurs a message
is written to standard error and the program exits. Otherwise
it returns a pointer to stdscr. A few functions may be called
- before initscr (slk_init(), filter(), ripofflines(), use_env(),
+ before initscr (slk_init(), filter(), ripoffline(), use_env(),
and, if you are using multiple terminals, newterm().)
endwin()
the terminal, as other routines merely manipulate data
structures. wrefresh() copies the named window to the physical
terminal screen, taking into account what is already there in
- order to do optimizations. refresh() does a refresh of
- stdscr(). Unless leaveok() has been enabled, the physical
- cursor of the terminal is left at the location of the window's
- cursor.
+ order to do optimizations. refresh() does a refresh of stdscr.
+ Unless leaveok() has been enabled, the physical cursor of the
+ terminal is left at the location of the window's cursor.
doupdate() and wnoutrefresh(win)
These two functions allow multiple updates with more efficiency
The really clean way to handle this is to use the panels library. If,
when you want a screen update, you do update_panels(), it will do all
- the necessary wnoutrfresh() calls for whatever panel stacking order
+ the necessary wnoutrefresh() calls for whatever panel stacking order
you have defined. Then you can do one doupdate() and there will be a
single burst of physical I/O that will do all your updates.
1. Initialize curses.
2. Create the menu items, using new_item().
3. Create the menu using new_menu().
- 4. Post the menu using menu_post().
+ 4. Post the menu using post_menu().
5. Refresh the screen.
6. Process user requests via an input loop.
- 7. Unpost the menu using menu_unpost().
+ 7. Unpost the menu using unpost_menu().
8. Free the menu, using free_menu().
9. Free the items using free_item().
10. Terminate curses.
By default, both windows are stdscr. You can set them with the
functions in menu_win(3x).
- When you call menu_post(), you write the menu to its subwindow. When
- you call menu_unpost(), you erase the subwindow, However, neither of
+ When you call post_menu(), you write the menu to its subwindow. When
+ you call unpost_menu(), you erase the subwindow, However, neither of
these actually modifies the screen. To do that, call wrefresh() or
some equivalent.
1. Initialize curses.
2. Create the form fields, using new_field().
3. Create the form using new_form().
- 4. Post the form using form_post().
+ 4. Post the form using post_form().
5. Refresh the screen.
6. Process user requests via an input loop.
- 7. Unpost the form using form_unpost().
+ 7. Unpost the form using unpost_form().
8. Free the form, using free_form().
9. Free the fields using free_field().
10. Terminate curses.
the screen (the third and fourth arguments, which must be zero or
greater). Note that these coordinates are relative to the form
subwindow, which will coincide with stdscr by default but need not be
- stdscr if you've done an explicit set_form_window() call.
+ stdscr if you've done an explicit set_form_win() call.
The fifth argument allows you to specify a number of off-screen rows.
If this is zero, the entire field will always be displayed. If it is
O_NL_OVERLOAD
Enable overloading of REQ_NEW_LINE as described in Editing
- Requests. The value of this option is ignored on dynamic
- fields that have not reached their size limit; these have no
- last line, so the circumstances for triggering a REQ_NEXT_FIELD
+ Requests. The value of this option is ignored on dynamic fields
+ that have not reached their size limit; these have no last
+ line, so the circumstances for triggering a REQ_NEXT_FIELD
never arise.
O_BS_OVERLOAD
-# $Id: Makefile.in,v 1.40 2003/11/01 22:44:33 tom Exp $
+# $Id: Makefile.in,v 1.41 2004/05/08 19:14:14 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2004 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"), #
CPP = @CPP@
CFLAGS = @CFLAGS@
-CPPFLAGS = @CPPFLAGS@ \
- -DHAVE_CONFIG_H
+CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
LINT_LIBS = -lform -lncurses @LIBS@
AUTO_SRC = \
- ../include/form.h
+ ../include/form.h
################################################################################
all \
--- /dev/null
+/****************************************************************************
+ * Copyright (c) 2004 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas E. Dickey *
+ ****************************************************************************/
+
+#include "form.priv.h"
+
+MODULE_ID("$Id: f_trace.c,v 1.1 2004/12/25 23:28:49 tom Exp $")
+
+NCURSES_EXPORT(FIELD **)
+_nc_retrace_field_ptr(FIELD **code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(FIELD *)
+_nc_retrace_field(FIELD *code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(FIELDTYPE *)
+_nc_retrace_field_type(FIELDTYPE *code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(FORM *)
+_nc_retrace_form(FORM *code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(Form_Hook)
+_nc_retrace_form_hook(Form_Hook code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_arg.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_arg.c,v 1.11 2004/12/25 22:20:18 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_fieldtype_arg(
| FIELDTYPE *typ,
| void * (* const make_arg)(va_list *),
| void * (* const copy_arg)(const void *),
| void (* const free_arg)(void *) )
-|
+|
| Description : Connects to the type additional arguments necessary
| for a set_field_type call. The various function pointer
| arguments are:
| E_BAD_ARGUMENT - invalid argument
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_fieldtype_arg
- (FIELDTYPE * typ,
- void * (* const make_arg)(va_list *),
- void * (* const copy_arg)(const void *),
- void (* const free_arg)(void *))
+set_fieldtype_arg(FIELDTYPE *typ,
+ void *(*const make_arg)(va_list *),
+ void *(*const copy_arg)(const void *),
+ void (*const free_arg) (void *))
{
- if ( !typ || !make_arg )
- RETURN(E_BAD_ARGUMENT);
+ T((T_CALLED("set_fieldtype_arg(%p,%p,%p,%p)"),
+ typ, make_arg, copy_arg, free_arg));
- typ->status |= _HAS_ARGS;
- typ->makearg = make_arg;
- typ->copyarg = copy_arg;
- typ->freearg = free_arg;
- RETURN(E_OK);
+ if (typ != 0 && make_arg != (void *)0)
+ {
+ typ->status |= _HAS_ARGS;
+ typ->makearg = make_arg;
+ typ->copyarg = copy_arg;
+ typ->freearg = free_arg;
+ RETURN(E_OK);
+ }
+ RETURN(E_BAD_ARGUMENT);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : void *field_arg(const FIELD *field)
-|
+|
| Description : Retrieve pointer to the fields argument structure.
|
| Return Values : Pointer to structure or NULL if none is defined.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void *)
-field_arg (const FIELD * field)
+field_arg(const FIELD *field)
{
- return Normalize_Field(field)->arg;
+ T((T_CALLED("field_arg(%p)"), field));
+ returnVoidPtr(Normalize_Field(field)->arg);
}
/* fld_arg.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_attr.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_attr.c,v 1.10 2004/12/11 21:33:15 tom Exp $")
/*----------------------------------------------------------------------------
Field-Attribute manipulation routines
NCURSES_IMPEXP int NCURSES_API set_field_ ## name (FIELD * field, chtype attr)\
{\
int res = E_BAD_ARGUMENT;\
+ T((T_CALLED("set_field_" #name "(%p,%s)"), field, _traceattr(attr)));\
if ( attr==A_NORMAL || ((attr & A_ATTRIBUTES)==attr) )\
{\
Normalize_Field( field );\
- if ((field -> name) != attr)\
- {\
- field -> name = attr;\
- res = _nc_Synchronize_Attributes( field );\
- }\
- else\
- res = E_OK;\
+ if (field != 0) \
+ { \
+ if ((field -> name) != attr)\
+ {\
+ field -> name = attr;\
+ res = _nc_Synchronize_Attributes( field );\
+ }\
+ else\
+ {\
+ res = E_OK;\
+ }\
+ }\
}\
RETURN(res);\
}
#define GEN_FIELD_ATTR_GET_FCT( name ) \
NCURSES_IMPEXP chtype NCURSES_API field_ ## name (const FIELD * field)\
{\
- return ( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
+ T((T_CALLED("field_" #name "(%p)"), field));\
+ returnAttr( A_ATTRIBUTES & (Normalize_Field( field ) -> name) );\
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_fore(FIELD *field, chtype attr)
-|
+|
| Description : Sets the foreground of the field used to display the
| field contents.
|
| E_BAD_ARGUMENT - invalid attributes
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( fore )
+GEN_FIELD_ATTR_SET_FCT(fore)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : chtype field_fore(const FIELD *)
-|
+|
| Description : Retrieve fields foreground attribute
|
| Return Values : The foreground attribute
+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( fore )
+GEN_FIELD_ATTR_GET_FCT(fore)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_back(FIELD *field, chtype attr)
-|
+|
| Description : Sets the background of the field used to display the
| fields extend.
|
| E_BAD_ARGUMENT - invalid attributes
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_SET_FCT( back )
+GEN_FIELD_ATTR_SET_FCT(back)
/*---------------------------------------------------------------------------
| Facility : libnform
-| Function : chtype field_back(const
-|
+| Function : chtype field_back(const
+|
| Description : Retrieve fields background attribute
|
| Return Values : The background attribute
+--------------------------------------------------------------------------*/
-GEN_FIELD_ATTR_GET_FCT( back )
+GEN_FIELD_ATTR_GET_FCT(back)
/* fld_attr.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_current.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_current.c,v 1.11 2004/12/25 22:40:13 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_current_field(FORM * form,FIELD * field)
-|
+|
| Description : Set the current field of the form to the specified one.
|
| Return Values : E_OK - success
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_current_field (FORM * form, FIELD * field)
+set_current_field(FORM *form, FIELD *field)
{
int err = E_OK;
- if ( !form || !field )
- RETURN(E_BAD_ARGUMENT);
-
- if ( (form != field->form) || Field_Is_Not_Selectable(field) )
- RETURN(E_REQUEST_DENIED);
-
- if (!(form->status & _POSTED))
+ T((T_CALLED("set_current_field(%p,%p)"), form, field));
+ if (form == 0 || field == 0)
+ {
+ RETURN(E_BAD_ARGUMENT);
+ }
+ else if ((form != field->form) || Field_Is_Not_Selectable(field))
+ {
+ RETURN(E_REQUEST_DENIED);
+ }
+ else if ((form->status & _POSTED) == 0)
{
form->current = field;
form->curpage = field->page;
- }
+ }
else
{
- if (form->status & _IN_DRIVER)
- err = E_BAD_STATE;
+ if ((form->status & _IN_DRIVER) != 0)
+ {
+ err = E_BAD_STATE;
+ }
else
{
if (form->current != field)
{
- if (!_nc_Internal_Validation(form))
- err = E_INVALID_FIELD;
+ if (!_nc_Internal_Validation(form))
+ {
+ err = E_INVALID_FIELD;
+ }
else
{
- Call_Hook(form,fieldterm);
+ Call_Hook(form, fieldterm);
if (field->page != form->curpage)
{
- Call_Hook(form,formterm);
- err = _nc_Set_Form_Page(form,field->page,field);
- Call_Hook(form,forminit);
- }
- else
+ Call_Hook(form, formterm);
+ err = _nc_Set_Form_Page(form, (int)field->page, field);
+ Call_Hook(form, forminit);
+ }
+ else
{
- err = _nc_Set_Current_Field(form,field);
+ err = _nc_Set_Current_Field(form, field);
}
- Call_Hook(form,fieldinit);
- _nc_Refresh_Current_Field(form);
+ Call_Hook(form, fieldinit);
+ (void)_nc_Refresh_Current_Field(form);
}
}
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : FIELD *current_field(const FORM * form)
-|
+|
| Description : Return the current field.
|
| Return Values : Pointer to the current field.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELD *)
-current_field (const FORM * form)
+current_field(const FORM *form)
{
- return Normalize_Form(form)->current;
+ T((T_CALLED("current_field(%p)"), form));
+ returnField(Normalize_Form(form)->current);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int field_index(const FIELD * field)
-|
+|
| Description : Return the index of the field in the field-array of
| the form.
|
| -1 : fieldpointer invalid or field not connected
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-field_index (const FIELD * field)
+field_index(const FIELD *field)
{
- return ( (field && field->form) ? field->index : -1 );
+ T((T_CALLED("field_index(%p)"), field));
+ returnCode((field != 0 && field->form != 0) ? (int)field->index : -1);
}
/* fld_current.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_def.c,v 1.17 2003/11/08 21:15:02 Jonathon.Gray Exp $")
+MODULE_ID("$Id: fld_def.c,v 1.33 2005/04/16 17:31:17 tom Exp $")
/* this can't be readonly */
-static FIELD default_field = {
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* frow */
- 0, /* fcol */
- 0, /* drows */
- 0, /* dcols */
- 0, /* maxgrow*/
- 0, /* nrow */
- 0, /* nbuf */
- NO_JUSTIFICATION, /* just */
- 0, /* page */
- 0, /* index */
- (int)' ', /* pad */
- A_NORMAL, /* fore */
- A_NORMAL, /* back */
- ALL_FIELD_OPTS, /* opts */
- (FIELD *)0, /* snext */
- (FIELD *)0, /* sprev */
- (FIELD *)0, /* link */
- (FORM *)0, /* form */
- (FIELDTYPE *)0, /* type */
- (char *)0, /* arg */
- (char *)0, /* buf */
- (char *)0 /* usrptr */
+static FIELD default_field =
+{
+ 0, /* status */
+ 0, /* rows */
+ 0, /* cols */
+ 0, /* frow */
+ 0, /* fcol */
+ 0, /* drows */
+ 0, /* dcols */
+ 0, /* maxgrow */
+ 0, /* nrow */
+ 0, /* nbuf */
+ NO_JUSTIFICATION, /* just */
+ 0, /* page */
+ 0, /* index */
+ (int)' ', /* pad */
+ A_NORMAL, /* fore */
+ A_NORMAL, /* back */
+ ALL_FIELD_OPTS, /* opts */
+ (FIELD *)0, /* snext */
+ (FIELD *)0, /* sprev */
+ (FIELD *)0, /* link */
+ (FORM *)0, /* form */
+ (FIELDTYPE *)0, /* type */
+ (char *)0, /* arg */
+ (FIELD_CELL *)0, /* buf */
+ (char *)0 /* usrptr */
+ NCURSES_FIELD_EXTENSION
};
-NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field = &default_field;
-\f
+NCURSES_EXPORT_VAR(FIELD *)
+_nc_Default_Field = &default_field;
+
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : TypeArgument *_nc_Make_Argument(
| const FIELDTYPE *typ,
| va_list *ap,
| int *err )
-|
+|
| Description : Create an argument structure for the specified type.
| Use the type-dependent argument list to construct
| it.
|
| Return Values : Pointer to argument structure. Maybe NULL.
-| In case of an error in *err an error counter is increased.
+| In case of an error in *err an error counter is increased.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument*)
-_nc_Make_Argument
-(const FIELDTYPE *typ, va_list *ap, int *err)
+NCURSES_EXPORT(TypeArgument *)
+_nc_Make_Argument(const FIELDTYPE *typ, va_list *ap, int *err)
{
- TypeArgument *res = (TypeArgument *)0;
+ TypeArgument *res = (TypeArgument *)0;
TypeArgument *p;
- if (typ && (typ->status & _HAS_ARGS))
+ if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
{
- assert(err && ap);
- if (typ->status & _LINKED_TYPE)
+ assert(err != 0 && ap != (va_list *)0);
+ if ((typ->status & _LINKED_TYPE) != 0)
{
p = (TypeArgument *)malloc(sizeof(TypeArgument));
- if (p)
+
+ if (p != 0)
{
- p->left = _nc_Make_Argument(typ->left ,ap,err);
- p->right = _nc_Make_Argument(typ->right,ap,err);
+ p->left = _nc_Make_Argument(typ->left, ap, err);
+ p->right = _nc_Make_Argument(typ->right, ap, err);
return p;
}
else
- *err += 1;
- } else
+ {
+ *err += 1;
+ }
+ }
+ else
{
- assert(typ->makearg);
- if ( !(res=(TypeArgument *)typ->makearg(ap)) )
- *err += 1;
+ assert(typ->makearg != (void *)0);
+ if (!(res = (TypeArgument *)typ->makearg(ap)))
+ {
+ *err += 1;
+ }
}
}
return res;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : TypeArgument *_nc_Copy_Argument(const FIELDTYPE *typ,
| const TypeArgument *argp,
| int *err )
-|
-| Description : Create a copy of an argument structure for the specified
+|
+| Description : Create a copy of an argument structure for the specified
| type.
|
| Return Values : Pointer to argument structure. Maybe NULL.
-| In case of an error in *err an error counter is increased.
+| In case of an error in *err an error counter is increased.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(TypeArgument*)
-_nc_Copy_Argument
- (const FIELDTYPE *typ,
- const TypeArgument *argp, int *err)
+NCURSES_EXPORT(TypeArgument *)
+_nc_Copy_Argument(const FIELDTYPE *typ, const TypeArgument *argp, int *err)
{
TypeArgument *res = (TypeArgument *)0;
TypeArgument *p;
- if ( typ && (typ->status & _HAS_ARGS) )
+ if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
{
- assert(err && argp);
- if (typ->status & _LINKED_TYPE)
+ assert(err != 0 && argp != 0);
+ if ((typ->status & _LINKED_TYPE) != 0)
{
p = (TypeArgument *)malloc(sizeof(TypeArgument));
- if (p)
+
+ if (p != 0)
{
- p->left = _nc_Copy_Argument(typ,argp->left ,err);
- p->right = _nc_Copy_Argument(typ,argp->right,err);
+ p->left = _nc_Copy_Argument(typ, argp->left, err);
+ p->right = _nc_Copy_Argument(typ, argp->right, err);
return p;
}
*err += 1;
- }
- else
+ }
+ else
{
- if (typ->copyarg)
+ if (typ->copyarg != (void *)0)
{
- if (!(res = (TypeArgument *)(typ->copyarg((const void *)argp))))
- *err += 1;
+ if (!(res = (TypeArgument *)(typ->copyarg((const void *)argp))))
+ {
+ *err += 1;
+ }
}
else
- res = (TypeArgument *)argp;
+ {
+ res = (TypeArgument *)argp;
+ }
}
}
return res;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : void _nc_Free_Argument(const FIELDTYPE *typ,
| TypeArgument * argp )
-|
+|
| Description : Release memory associated with the argument structure
| for the given fieldtype.
|
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Free_Argument
-(const FIELDTYPE * typ, TypeArgument * argp)
+_nc_Free_Argument(const FIELDTYPE *typ, TypeArgument *argp)
{
- if (!typ || !(typ->status & _HAS_ARGS))
- return;
-
- if (typ->status & _LINKED_TYPE)
- {
- assert(argp);
- _nc_Free_Argument(typ->left ,argp->left );
- _nc_Free_Argument(typ->right,argp->right);
- free(argp);
- }
- else
+ if (typ != 0 && (typ->status & _HAS_ARGS) != 0)
{
- if (typ->freearg)
- typ->freearg((void *)argp);
+ if ((typ->status & _LINKED_TYPE) != 0)
+ {
+ assert(argp != 0);
+ _nc_Free_Argument(typ->left, argp->left);
+ _nc_Free_Argument(typ->right, argp->right);
+ free(argp);
+ }
+ else
+ {
+ if (typ->freearg != (void *)0)
+ {
+ typ->freearg((void *)argp);
+ }
+ }
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : bool _nc_Copy_Type( FIELD *dst, FIELD const *src )
-|
+|
| Description : Copy argument structure of field src to field dst
|
| Return Values : TRUE - copy worked
| FALSE - error occurred
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-_nc_Copy_Type
-(FIELD *dst, FIELD const *src)
+_nc_Copy_Type(FIELD *dst, FIELD const *src)
{
int err = 0;
- assert(dst && src);
+ assert(dst != 0 && src != 0);
dst->type = src->type;
- dst->arg = (void *)_nc_Copy_Argument(src->type,(TypeArgument *)(src->arg),&err);
+ dst->arg = (void *)_nc_Copy_Argument(src->type, (TypeArgument *)(src->arg), &err);
- if (err)
+ if (err != 0)
{
- _nc_Free_Argument(dst->type,(TypeArgument *)(dst->arg));
+ _nc_Free_Argument(dst->type, (TypeArgument *)(dst->arg));
dst->type = (FIELDTYPE *)0;
- dst->arg = (void *)0;
+ dst->arg = (void *)0;
return FALSE;
}
else
{
- if (dst->type)
- dst->type->ref++;
+ if (dst->type != 0)
+ {
+ dst->type->ref++;
+ }
return TRUE;
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : void _nc_Free_Type( FIELD *field )
-|
+|
| Description : Release Argument structure for this field
|
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Free_Type (FIELD *field)
+_nc_Free_Type(FIELD *field)
{
- assert(field);
- if (field->type)
- field->type->ref--;
- _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
+ assert(field != 0);
+ if (field->type != 0)
+ {
+ field->type->ref--;
+ }
+ _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : FIELD *new_field( int rows, int cols,
+| Facility : libnform
+| Function : FIELD *new_field( int rows, int cols,
| int frow, int fcol,
| int nrow, int nbuf )
-|
+|
| Description : Create a new field with this many 'rows' and 'cols',
| starting at 'frow/fcol' in the subwindow of the form.
| Allocate 'nrow' off-screen rows and 'nbuf' additional
| buffers. If an error occurs, errno is set to
-|
+|
| E_BAD_ARGUMENT - invalid argument
| E_SYSTEM_ERROR - system error
|
| Return Values : Pointer to the new field or NULL if failure.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELD *)
-new_field
-(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
+new_field(int rows, int cols, int frow, int fcol, int nrow, int nbuf)
{
+ static const FIELD_CELL blank = BLANK;
+ static const FIELD_CELL zeros = ZEROS;
+
FIELD *New_Field = (FIELD *)0;
int err = E_BAD_ARGUMENT;
- if (rows>0 &&
- cols>0 &&
- frow>=0 &&
- fcol>=0 &&
- nrow>=0 &&
- nbuf>=0 &&
- ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
+ T((T_CALLED("new_field(%d,%d,%d,%d,%d,%d)"), rows, cols, frow, fcol, nrow, nbuf));
+ if (rows > 0 &&
+ cols > 0 &&
+ frow >= 0 &&
+ fcol >= 0 &&
+ nrow >= 0 &&
+ nbuf >= 0 &&
+ ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
+ (New_Field = (FIELD *)malloc(sizeof(FIELD))) != 0)
{
- *New_Field = default_field;
- New_Field->rows = rows;
- New_Field->cols = cols;
+ *New_Field = default_field;
+ New_Field->rows = rows;
+ New_Field->cols = cols;
New_Field->drows = rows + nrow;
New_Field->dcols = cols;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->nrow = nrow;
- New_Field->nbuf = nbuf;
- New_Field->link = New_Field;
+ New_Field->frow = frow;
+ New_Field->fcol = fcol;
+ New_Field->nrow = nrow;
+ New_Field->nbuf = nbuf;
+ New_Field->link = New_Field;
+
+#if USE_WIDEC_SUPPORT
+ New_Field->working = newpad(1, Buffer_Length(New_Field) + 1);
+ New_Field->expanded = (char **)calloc(1 + (unsigned)rows, sizeof(char *));
+#endif
- if (_nc_Copy_Type(New_Field,&default_field))
+ if (_nc_Copy_Type(New_Field, &default_field))
{
size_t len;
len = Total_Buffer_Size(New_Field);
- if ((New_Field->buf = (char *)malloc(len)))
+ if ((New_Field->buf = (FIELD_CELL *)malloc(len)))
{
/* Prefill buffers with blanks and insert terminating zeroes
- between buffers */
- int i;
+ between buffers */
+ int i, j;
+ int cells = Buffer_Length(New_Field);
- memset(New_Field->buf,' ',len);
- for(i=0;i<=New_Field->nbuf;i++)
+ for (i = 0; i <= New_Field->nbuf; i++)
{
- New_Field->buf[(New_Field->drows*New_Field->cols+1)*(i+1)-1]
- = '\0';
+ FIELD_CELL *buffer = &(New_Field->buf[(cells + 1) * i]);
+
+ for (j = 0; j < cells; ++j)
+ {
+ buffer[j] = blank;
+ }
+ buffer[j] = zeros;
}
- return New_Field;
+ returnField(New_Field);
}
}
}
- if (New_Field)
+ if (New_Field)
free_field(New_Field);
-
- SET_ERROR( err );
- return (FIELD *)0;
+
+ SET_ERROR(err);
+ returnField((FIELD *)0);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int free_field( FIELD *field )
-|
+|
| Description : Frees the storage allocated for the field.
|
| Return Values : E_OK - success
| E_CONNECTED - field is connected
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-free_field (FIELD * field)
+free_field(FIELD *field)
{
- if (!field)
- RETURN(E_BAD_ARGUMENT);
-
- if (field->form)
- RETURN(E_CONNECTED);
-
- if (field == field->link)
+ T((T_CALLED("free_field(%p)"), field));
+ if (!field)
{
- if (field->buf)
+ RETURN(E_BAD_ARGUMENT);
+ }
+ else if (field->form != 0)
+ {
+ RETURN(E_CONNECTED);
+ }
+ else if (field == field->link)
+ {
+ if (field->buf != 0)
free(field->buf);
}
- else
+ else
{
FIELD *f;
- for(f=field;f->link != field;f = f->link)
- {}
+ for (f = field; f->link != field; f = f->link)
+ {
+ }
f->link = field->link;
}
_nc_Free_Type(field);
+#if USE_WIDEC_SUPPORT
+ if (field->expanded != 0)
+ {
+ int n;
+
+ for (n = 0; n <= field->nbuf; ++n)
+ {
+ FreeIfNeeded(field->expanded[n]);
+ }
+ free(field->expanded);
+ (void)delwin(field->working);
+ }
+#endif
free(field);
RETURN(E_OK);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_dup.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_dup.c,v 1.10 2004/12/25 22:24:10 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : FIELD *dup_field(FIELD *field, int frow, int fcol)
-|
+|
| Description : Duplicates the field at the specified position. All
| field attributes and the buffers are copied.
| If an error occurs, errno is set to
-|
+|
| E_BAD_ARGUMENT - invalid argument
| E_SYSTEM_ERROR - system error
|
| Return Values : Pointer to the new field or NULL if failure
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELD *)
-dup_field (FIELD * field, int frow, int fcol)
+dup_field(FIELD *field, int frow, int fcol)
{
FIELD *New_Field = (FIELD *)0;
int err = E_BAD_ARGUMENT;
- if (field && (frow>=0) && (fcol>=0) &&
- ((err=E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
- (New_Field=(FIELD *)malloc(sizeof(FIELD))) )
+ T((T_CALLED("dup_field(%p,%d,%d)"), field, frow, fcol));
+ if (field && (frow >= 0) && (fcol >= 0) &&
+ ((err = E_SYSTEM_ERROR) != 0) && /* trick : this resets the default error */
+ (New_Field = (FIELD *)malloc(sizeof(FIELD))))
{
- *New_Field = *_nc_Default_Field;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->link = New_Field;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
- New_Field->nrow = field->nrow;
- New_Field->drows = field->drows;
- New_Field->dcols = field->dcols;
+ *New_Field = *_nc_Default_Field;
+ New_Field->frow = frow;
+ New_Field->fcol = fcol;
+ New_Field->link = New_Field;
+ New_Field->rows = field->rows;
+ New_Field->cols = field->cols;
+ New_Field->nrow = field->nrow;
+ New_Field->drows = field->drows;
+ New_Field->dcols = field->dcols;
New_Field->maxgrow = field->maxgrow;
- New_Field->nbuf = field->nbuf;
- New_Field->just = field->just;
- New_Field->fore = field->fore;
- New_Field->back = field->back;
- New_Field->pad = field->pad;
- New_Field->opts = field->opts;
- New_Field->usrptr = field->usrptr;
+ New_Field->nbuf = field->nbuf;
+ New_Field->just = field->just;
+ New_Field->fore = field->fore;
+ New_Field->back = field->back;
+ New_Field->pad = field->pad;
+ New_Field->opts = field->opts;
+ New_Field->usrptr = field->usrptr;
- if (_nc_Copy_Type(New_Field,field))
+ if (_nc_Copy_Type(New_Field, field))
{
- size_t len;
+ size_t i, len;
len = Total_Buffer_Size(New_Field);
- if ( (New_Field->buf=(char *)malloc(len)) )
+ if ((New_Field->buf = (FIELD_CELL *)malloc(len)))
{
- memcpy(New_Field->buf,field->buf,len);
- return New_Field;
+ for (i = 0; i < len; ++i)
+ New_Field->buf[i] = field->buf[i];
+ returnField(New_Field);
}
}
}
- if (New_Field)
+ if (New_Field)
free_field(New_Field);
SET_ERROR(err);
- return (FIELD *)0;
+ returnField((FIELD *)0);
}
/* fld_dup.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_ftchoice.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_ftchoice.c,v 1.9 2004/12/11 21:44:57 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_BAD_ARGUMENT - invalid arguments
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_fieldtype_choice
- (FIELDTYPE * typ,
- bool (* const next_choice) (FIELD *,const void *),
- bool (* const prev_choice) (FIELD *,const void *))
+set_fieldtype_choice(FIELDTYPE *typ,
+ bool (*const next_choice) (FIELD *, const void *),
+ bool (*const prev_choice) (FIELD *, const void *))
{
- if ( !typ || !next_choice || !prev_choice )
+ T((T_CALLED("set_fieldtype_choice(%p,%p,%p)"), typ, next_choice, prev_choice));
+
+ if (!typ || !next_choice || !prev_choice)
RETURN(E_BAD_ARGUMENT);
typ->status |= _HAS_CHOICE;
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_ftlink.c,v 1.8 2003/11/08 20:45:36 tom Exp $")
+MODULE_ID("$Id: fld_ftlink.c,v 1.11 2004/12/25 22:24:10 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : Fieldtype pointer or NULL if error occurred.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELDTYPE *)
-link_fieldtype
-(FIELDTYPE * type1, FIELDTYPE * type2)
+link_fieldtype(FIELDTYPE *type1, FIELDTYPE *type2)
{
FIELDTYPE *nftyp = (FIELDTYPE *)0;
- if ( type1 && type2 )
+ T((T_CALLED("link_fieldtype(%p,%p)"), type1, type2));
+ if (type1 && type2)
{
nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
+
if (nftyp)
{
*nftyp = *_nc_Default_FieldType;
nftyp->status |= _LINKED_TYPE;
- if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS) )
+ if ((type1->status & _HAS_ARGS) || (type2->status & _HAS_ARGS))
nftyp->status |= _HAS_ARGS;
- if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE) )
+ if ((type1->status & _HAS_CHOICE) || (type2->status & _HAS_CHOICE))
nftyp->status |= _HAS_CHOICE;
- nftyp->left = type1;
- nftyp->right = type2;
+ nftyp->left = type1;
+ nftyp->right = type2;
type1->ref++;
type2->ref++;
}
else
{
- SET_ERROR( E_SYSTEM_ERROR );
+ SET_ERROR(E_SYSTEM_ERROR);
}
}
else
{
- SET_ERROR( E_BAD_ARGUMENT );
+ SET_ERROR(E_BAD_ARGUMENT);
}
- return nftyp;
+ returnFieldType(nftyp);
}
/* fld_ftlink.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_info.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_info.c,v 1.10 2004/12/11 22:24:57 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_BAD_ARGUMENT - invalid field pointer
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-field_info
- (const FIELD *field,
- int *rows, int *cols,
- int *frow, int *fcol,
- int *nrow, int *nbuf)
+field_info(const FIELD *field,
+ int *rows, int *cols,
+ int *frow, int *fcol,
+ int *nrow, int *nbuf)
{
- if (!field)
+ T((T_CALLED("field_info(%p,%p,%p,%p,%p,%p,%p)"),
+ field,
+ rows, cols,
+ frow, fcol,
+ nrow, nbuf));
+
+ if (!field)
RETURN(E_BAD_ARGUMENT);
- if (rows) *rows = field->rows;
- if (cols) *cols = field->cols;
- if (frow) *frow = field->frow;
- if (fcol) *fcol = field->fcol;
- if (nrow) *nrow = field->nrow;
- if (nbuf) *nbuf = field->nbuf;
+ if (rows)
+ *rows = field->rows;
+ if (cols)
+ *cols = field->cols;
+ if (frow)
+ *frow = field->frow;
+ if (fcol)
+ *fcol = field->fcol;
+ if (nrow)
+ *nrow = field->nrow;
+ if (nbuf)
+ *nbuf = field->nbuf;
RETURN(E_OK);
}
-
+
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : int dynamic_field_info(const FIELD *field,
| E_BAD_ARGUMENT - invalid argument
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-dynamic_field_info
-(const FIELD *field, int *drows, int *dcols, int *maxgrow)
+dynamic_field_info(const FIELD *field, int *drows, int *dcols, int *maxgrow)
{
+ T((T_CALLED("dynamic_field_info(%p,%p,%p,%p)"), field, drows, dcols, maxgrow));
+
if (!field)
RETURN(E_BAD_ARGUMENT);
- if (drows) *drows = field->drows;
- if (dcols) *dcols = field->dcols;
- if (maxgrow) *maxgrow = field->maxgrow;
+ if (drows)
+ *drows = field->drows;
+ if (dcols)
+ *dcols = field->dcols;
+ if (maxgrow)
+ *maxgrow = field->maxgrow;
RETURN(E_OK);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_just.c,v 1.8 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_just.c,v 1.11 2004/12/11 22:55:48 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_field_just (FIELD * field, int just)
+set_field_just(FIELD *field, int just)
{
int res = E_BAD_ARGUMENT;
- if ((just==NO_JUSTIFICATION) ||
- (just==JUSTIFY_LEFT) ||
- (just==JUSTIFY_CENTER) ||
- (just==JUSTIFY_RIGHT) )
+ T((T_CALLED("set_field_just(%p,%d)"), field, just));
+
+ if ((just == NO_JUSTIFICATION) ||
+ (just == JUSTIFY_LEFT) ||
+ (just == JUSTIFY_CENTER) ||
+ (just == JUSTIFY_RIGHT))
{
- Normalize_Field( field );
+ Normalize_Field(field);
if (field->just != just)
{
field->just = just;
- res = _nc_Synchronize_Attributes( field );
+ res = _nc_Synchronize_Attributes(field);
}
else
res = E_OK;
| Return Values : The justification type.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-field_just (const FIELD * field)
+field_just(const FIELD *field)
{
- return Normalize_Field( field )->just;
+ T((T_CALLED("field_just(%p)"), field));
+ returnCode(Normalize_Field(field)->just);
}
/* fld_just.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_link.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_link.c,v 1.9 2004/12/25 22:24:10 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : Pointer to the new field or NULL if failure
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELD *)
-link_field (FIELD * field, int frow, int fcol)
+link_field(FIELD *field, int frow, int fcol)
{
FIELD *New_Field = (FIELD *)0;
int err = E_BAD_ARGUMENT;
- if (field && (frow>=0) && (fcol>=0) &&
- ((err=E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
- (New_Field = (FIELD *)malloc(sizeof(FIELD))) )
+ T((T_CALLED("link_field(%p,%d,%d)"), field, frow, fcol));
+ if (field && (frow >= 0) && (fcol >= 0) &&
+ ((err = E_SYSTEM_ERROR) != 0) && /* trick: this resets the default error */
+ (New_Field = (FIELD *)malloc(sizeof(FIELD))))
{
- *New_Field = *_nc_Default_Field;
- New_Field->frow = frow;
- New_Field->fcol = fcol;
- New_Field->link = field->link;
- field->link = New_Field;
- New_Field->buf = field->buf;
- New_Field->rows = field->rows;
- New_Field->cols = field->cols;
- New_Field->nrow = field->nrow;
- New_Field->nbuf = field->nbuf;
- New_Field->drows = field->drows;
- New_Field->dcols = field->dcols;
- New_Field->maxgrow= field->maxgrow;
- New_Field->just = field->just;
- New_Field->fore = field->fore;
- New_Field->back = field->back;
- New_Field->pad = field->pad;
- New_Field->opts = field->opts;
+ *New_Field = *_nc_Default_Field;
+ New_Field->frow = frow;
+ New_Field->fcol = fcol;
+
+ New_Field->link = field->link;
+ field->link = New_Field;
+
+ New_Field->buf = field->buf;
+ New_Field->rows = field->rows;
+ New_Field->cols = field->cols;
+ New_Field->nrow = field->nrow;
+ New_Field->nbuf = field->nbuf;
+ New_Field->drows = field->drows;
+ New_Field->dcols = field->dcols;
+ New_Field->maxgrow = field->maxgrow;
+ New_Field->just = field->just;
+ New_Field->fore = field->fore;
+ New_Field->back = field->back;
+ New_Field->pad = field->pad;
+ New_Field->opts = field->opts;
New_Field->usrptr = field->usrptr;
- if (_nc_Copy_Type(New_Field,field))
- return New_Field;
+
+ if (_nc_Copy_Type(New_Field, field))
+ returnField(New_Field);
}
- if (New_Field)
+ if (New_Field)
free_field(New_Field);
- SET_ERROR( err );
- return (FIELD *)0;
+ SET_ERROR(err);
+ returnField((FIELD *)0);
}
/* fld_link.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_max.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_max.c,v 1.9 2004/12/11 21:51:54 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_BAD_ARGUMENT - invalid argument
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_max_field (FIELD *field, int maxgrow)
+set_max_field(FIELD *field, int maxgrow)
{
- if (!field || (maxgrow<0))
+ T((T_CALLED("set_max_field(%p,%d)"), field, maxgrow));
+
+ if (!field || (maxgrow < 0))
RETURN(E_BAD_ARGUMENT);
else
{
bool single_line_field = Single_Line_Field(field);
- if (maxgrow>0)
+ if (maxgrow > 0)
{
- if (( single_line_field && (maxgrow < field->dcols)) ||
+ if ((single_line_field && (maxgrow < field->dcols)) ||
(!single_line_field && (maxgrow < field->drows)))
RETURN(E_BAD_ARGUMENT);
}
field->status &= ~_MAY_GROW;
if (!(field->opts & O_STATIC))
{
- if ((maxgrow==0) ||
- ( single_line_field && (field->dcols < maxgrow)) ||
+ if ((maxgrow == 0) ||
+ (single_line_field && (field->dcols < maxgrow)) ||
(!single_line_field && (field->drows < maxgrow)))
field->status |= _MAY_GROW;
}
}
RETURN(E_OK);
}
-
+
/* fld_max.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_move.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_move.c,v 1.9 2004/12/11 21:52:44 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_CONNECTED - field is connected
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-move_field (FIELD *field, int frow, int fcol)
+move_field(FIELD *field, int frow, int fcol)
{
- if ( !field || (frow<0) || (fcol<0) )
+ T((T_CALLED("move_field(%p,%d,%d)"), field, frow, fcol));
+
+ if (!field || (frow < 0) || (fcol < 0))
RETURN(E_BAD_ARGUMENT);
- if (field->form)
+ if (field->form)
RETURN(E_CONNECTED);
field->frow = frow;
}
/* fld_move.c ends here */
-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_newftyp.c,v 1.9 2003/11/08 20:45:36 tom Exp $")
+MODULE_ID("$Id: fld_newftyp.c,v 1.13 2004/12/25 22:24:10 tom Exp $")
-static FIELDTYPE const default_fieldtype = {
- 0, /* status */
- 0L, /* reference count */
- (FIELDTYPE *)0, /* pointer to left operand */
- (FIELDTYPE *)0, /* pointer to right operand */
- NULL, /* makearg function */
- NULL, /* copyarg function */
- NULL, /* freearg function */
- NULL, /* field validation function */
- NULL, /* Character check function */
- NULL, /* enumerate next function */
- NULL /* enumerate previous function */
+static FIELDTYPE const default_fieldtype =
+{
+ 0, /* status */
+ 0L, /* reference count */
+ (FIELDTYPE *)0, /* pointer to left operand */
+ (FIELDTYPE *)0, /* pointer to right operand */
+ NULL, /* makearg function */
+ NULL, /* copyarg function */
+ NULL, /* freearg function */
+ NULL, /* field validation function */
+ NULL, /* Character check function */
+ NULL, /* enumerate next function */
+ NULL /* enumerate previous function */
};
-NCURSES_EXPORT_VAR(const FIELDTYPE*) _nc_Default_FieldType = &default_fieldtype;
-\f
+NCURSES_EXPORT_VAR(const FIELDTYPE *)
+_nc_Default_FieldType = &default_fieldtype;
+
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : FIELDTYPE *new_fieldtype(
| bool (* const field_check)(FIELD *,const void *),
-| bool (* const char_check) (int, const void *) )
-|
+| bool (* const char_check) (int, const void *) )
+|
| Description : Create a new fieldtype. The application programmer must
| write a field_check and a char_check function and give
| them as input to this call.
-| If an error occurs, errno is set to
+| If an error occurs, errno is set to
| E_BAD_ARGUMENT - invalid arguments
| E_SYSTEM_ERROR - system error (no memory)
|
| Return Values : Fieldtype pointer or NULL if error occurred
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELDTYPE *)
-new_fieldtype (
- bool (* const field_check)(FIELD *,const void *),
- bool (* const char_check) (int,const void *) )
+new_fieldtype(bool (*const field_check) (FIELD *, const void *),
+ bool (*const char_check) (int, const void *))
{
FIELDTYPE *nftyp = (FIELDTYPE *)0;
-
- if ( (field_check) || (char_check) )
+
+ T((T_CALLED("new_fieldtype(%p,%p)"), field_check, char_check));
+ if ((field_check) || (char_check))
{
nftyp = (FIELDTYPE *)malloc(sizeof(FIELDTYPE));
+
if (nftyp)
{
*nftyp = default_fieldtype;
}
else
{
- SET_ERROR( E_SYSTEM_ERROR );
+ SET_ERROR(E_SYSTEM_ERROR);
}
}
else
{
- SET_ERROR( E_BAD_ARGUMENT );
+ SET_ERROR(E_BAD_ARGUMENT);
}
- return nftyp;
+ returnFieldType(nftyp);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int free_fieldtype(FIELDTYPE *typ)
-|
+|
| Description : Release the memory associated with this fieldtype.
|
| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid fieldtype pointer
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-free_fieldtype (FIELDTYPE *typ)
+free_fieldtype(FIELDTYPE *typ)
{
+ T((T_CALLED("free_fieldtype(%p)"), typ));
+
if (!typ)
RETURN(E_BAD_ARGUMENT);
- if (typ->ref!=0)
+ if (typ->ref != 0)
RETURN(E_CONNECTED);
if (typ->status & _RESIDENT)
if (typ->status & _LINKED_TYPE)
{
- if (typ->left ) typ->left->ref--;
- if (typ->right) typ->right->ref--;
+ if (typ->left)
+ typ->left->ref--;
+ if (typ->right)
+ typ->right->ref--;
}
free(typ);
RETURN(E_OK);
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_opts.c,v 1.9 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_opts.c,v 1.11 2004/12/11 21:55:46 tom Exp $")
/*----------------------------------------------------------------------------
Field-Options manipulation routines
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_field_opts (FIELD * field, Field_Options opts)
+set_field_opts(FIELD *field, Field_Options opts)
{
int res = E_BAD_ARGUMENT;
+
+ T((T_CALLED("set_field_opts(%p,%d)"), field, opts));
+
opts &= ALL_FIELD_OPTS;
if (!(opts & ~ALL_FIELD_OPTS))
- res = _nc_Synchronize_Options( Normalize_Field(field), opts );
+ res = _nc_Synchronize_Options(Normalize_Field(field), opts);
RETURN(res);
}
| Return Values : The options.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(Field_Options)
-field_opts (const FIELD * field)
+field_opts(const FIELD *field)
{
- return ALL_FIELD_OPTS & Normalize_Field( field )->opts;
+ T((T_CALLED("field_opts(%p)"), field));
+
+ returnCode(ALL_FIELD_OPTS & Normalize_Field(field)->opts);
}
/*---------------------------------------------------------------------------
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-field_opts_on (FIELD * field, Field_Options opts)
+field_opts_on(FIELD *field, Field_Options opts)
{
int res = E_BAD_ARGUMENT;
+ T((T_CALLED("field_opts_on(%p,%d)"), field, opts));
+
opts &= ALL_FIELD_OPTS;
if (!(opts & ~ALL_FIELD_OPTS))
{
- Normalize_Field( field );
- res = _nc_Synchronize_Options( field, field->opts | opts );
+ Normalize_Field(field);
+ res = _nc_Synchronize_Options(field, field->opts | opts);
}
RETURN(res);
}
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-field_opts_off (FIELD * field, Field_Options opts)
+field_opts_off(FIELD *field, Field_Options opts)
{
int res = E_BAD_ARGUMENT;
+ T((T_CALLED("field_opts_off(%p,%d)"), field, opts));
+
opts &= ALL_FIELD_OPTS;
if (!(opts & ~ALL_FIELD_OPTS))
{
- Normalize_Field( field );
- res = _nc_Synchronize_Options( field, field->opts & ~opts );
+ Normalize_Field(field);
+ res = _nc_Synchronize_Options(field, field->opts & ~opts);
}
RETURN(res);
-}
+}
/* fld_opts.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_pad.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_pad.c,v 1.9 2004/12/11 21:56:49 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_field_pad (FIELD * field, int ch)
+set_field_pad(FIELD *field, int ch)
{
int res = E_BAD_ARGUMENT;
- Normalize_Field( field );
- if (isprint((unsigned char)ch))
+ T((T_CALLED("set_field_pad(%p,%d)"), field, ch));
+
+ Normalize_Field(field);
+ if (isprint(UChar(ch)))
{
if (field->pad != ch)
{
field->pad = ch;
- res = _nc_Synchronize_Attributes( field );
+ res = _nc_Synchronize_Attributes(field);
}
else
res = E_OK;
| Return Values : The pad character.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-field_pad (const FIELD * field)
+field_pad(const FIELD *field)
{
- return Normalize_Field( field )->pad;
+ T((T_CALLED("field_pad(%p)"), field));
+
+ returnCode(Normalize_Field(field)->pad);
}
/* fld_pad.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_page.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_page.c,v 1.9 2004/12/11 21:58:19 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_CONNECTED - field is connected
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_new_page (FIELD * field, bool new_page_flag)
+set_new_page(FIELD *field, bool new_page_flag)
{
+ T((T_CALLED("set_new_page(%p,%d)"), field, new_page_flag));
+
Normalize_Field(field);
- if (field->form)
+ if (field->form)
RETURN(E_CONNECTED);
- if (new_page_flag)
+ if (new_page_flag)
field->status |= _NEWPAGE;
else
field->status &= ~_NEWPAGE;
| FALSE - field doesn't start a new page
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-new_page (const FIELD * field)
+new_page(const FIELD *field)
{
- return (Normalize_Field(field)->status & _NEWPAGE) ? TRUE : FALSE;
+ T((T_CALLED("new_page(%p)"), field));
+
+ returnBool((Normalize_Field(field)->status & _NEWPAGE) ? TRUE : FALSE);
}
/* fld_page.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_stat.c,v 1.9 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_stat.c,v 1.11 2004/12/11 22:28:00 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_field_status (FIELD * field, bool status)
+set_field_status(FIELD *field, bool status)
{
- Normalize_Field( field );
+ T((T_CALLED("set_field_status(%p,%d)"), field, status));
+
+ Normalize_Field(field);
if (status)
field->status |= _CHANGED;
else
field->status &= ~_CHANGED;
- return(E_OK);
+ RETURN(E_OK);
}
/*---------------------------------------------------------------------------
| FALSE - buffer has not been changed
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-field_status (const FIELD * field)
+field_status(const FIELD *field)
{
- return ((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
+ T((T_CALLED("field_status(%p)"), field));
+
+ returnBool((Normalize_Field(field)->status & _CHANGED) ? TRUE : FALSE);
}
/* fld_stat.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_type.c,v 1.12 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_type.c,v 1.15 2004/12/25 22:24:10 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_field_type (FIELD *field,FIELDTYPE *type, ...)
+set_field_type(FIELD *field, FIELDTYPE *type,...)
{
va_list ap;
int res = E_SYSTEM_ERROR;
int err = 0;
- va_start(ap,type);
+ T((T_CALLED("set_field_type(%p,%p)"), field, type));
+
+ va_start(ap, type);
Normalize_Field(field);
_nc_Free_Type(field);
field->type = type;
- field->arg = (void *)_nc_Make_Argument(field->type,&ap,&err);
+ field->arg = (void *)_nc_Make_Argument(field->type, &ap, &err);
if (err)
{
- _nc_Free_Argument(field->type,(TypeArgument *)(field->arg));
+ _nc_Free_Argument(field->type, (TypeArgument *)(field->arg));
field->type = (FIELDTYPE *)0;
- field->arg = (void *)0;
+ field->arg = (void *)0;
}
else
{
res = E_OK;
- if (field->type)
+ if (field->type)
field->type->ref++;
}
| Return Values : Pointer to fieldtype of NULL if none is defined.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELDTYPE *)
-field_type (const FIELD * field)
+field_type(const FIELD *field)
{
- return Normalize_Field(field)->type;
+ T((T_CALLED("field_type(%p)"), field));
+ returnFieldType(Normalize_Field(field)->type);
}
/* fld_type.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: fld_user.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: fld_user.c,v 1.15 2004/12/25 22:24:50 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : E_OK - on success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_field_userptr (FIELD * field, void *usrptr)
+set_field_userptr(FIELD *field, void *usrptr)
{
- Normalize_Field( field )->usrptr = usrptr;
+ T((T_CALLED("set_field_userptr(%p,%p)"), field, usrptr));
+
+ Normalize_Field(field)->usrptr = usrptr;
RETURN(E_OK);
}
| NULL is returned
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void *)
-field_userptr (const FIELD *field)
+field_userptr(const FIELD *field)
{
- return Normalize_Field( field )->usrptr;
+ T((T_CALLED("field_userptr(%p)"), field));
+ returnVoidPtr(Normalize_Field(field)->usrptr);
}
/* fld_user.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: form.h,v 0.17 2003/11/08 20:39:08 tom Exp $ */
+/* $Id: form.h,v 0.20 2004/12/04 22:22:10 tom Exp $ */
#ifndef FORM_H
#define FORM_H
extern "C" {
#endif
+#ifndef FORM_PRIV_H
+typedef void *FIELD_CELL;
+#endif
+
+#ifndef NCURSES_FIELD_INTERNALS
+#define NCURSES_FIELD_INTERNALS /* nothing */
+#endif
+
typedef int Form_Options;
typedef int Field_Options;
**********/
typedef struct {
- short pmin; /* index of first field on page */
- short pmax; /* index of last field on page */
- short smin; /* index of top leftmost field on page */
- short smax; /* index of bottom rightmost field on page */
+ short pmin; /* index of first field on page */
+ short pmax; /* index of last field on page */
+ short smin; /* index of top leftmost field on page */
+ short smax; /* index of bottom rightmost field on page */
} _PAGE;
/**********
**********/
typedef struct fieldnode {
- unsigned short status; /* flags */
- short rows; /* size in rows */
- short cols; /* size in cols */
- short frow; /* first row */
- short fcol; /* first col */
- int drows; /* dynamic rows */
- int dcols; /* dynamic cols */
- int maxgrow; /* maximum field growth */
- int nrow; /* off-screen rows */
- short nbuf; /* additional buffers */
- short just; /* justification */
- short page; /* page on form */
- short index; /* into form -> field */
- int pad; /* pad character */
- chtype fore; /* foreground attribute */
- chtype back; /* background attribute */
- Field_Options opts; /* options */
- struct fieldnode * snext; /* sorted order pointer */
- struct fieldnode * sprev; /* sorted order pointer */
- struct fieldnode * link; /* linked field chain */
- struct formnode * form; /* containing form */
- struct typenode * type; /* field type */
- void * arg; /* argument for type */
- char * buf; /* field buffers */
- void * usrptr; /* user pointer */
+ unsigned short status; /* flags */
+ short rows; /* size in rows */
+ short cols; /* size in cols */
+ short frow; /* first row */
+ short fcol; /* first col */
+ int drows; /* dynamic rows */
+ int dcols; /* dynamic cols */
+ int maxgrow; /* maximum field growth */
+ int nrow; /* off-screen rows */
+ short nbuf; /* additional buffers */
+ short just; /* justification */
+ short page; /* page on form */
+ short index; /* into form -> field */
+ int pad; /* pad character */
+ chtype fore; /* foreground attribute */
+ chtype back; /* background attribute */
+ Field_Options opts; /* options */
+ struct fieldnode * snext; /* sorted order pointer */
+ struct fieldnode * sprev; /* sorted order pointer */
+ struct fieldnode * link; /* linked field chain */
+ struct formnode * form; /* containing form */
+ struct typenode * type; /* field type */
+ void * arg; /* argument for type */
+ FIELD_CELL * buf; /* field buffers */
+ void * usrptr; /* user pointer */
+ /*
+ * The wide-character configuration requires extra information. Because
+ * there are existing applications that manipulate the members of FIELD
+ * directly, we cannot make the struct opaque. Offsets of members up to
+ * this point are the same in the narrow- and wide-character configuration.
+ * But note that the type of buf depends on the configuration, and is made
+ * opaque for that reason.
+ */
+ NCURSES_FIELD_INTERNALS
} FIELD;
/**************
**************/
typedef struct typenode {
- unsigned short status; /* flags */
- long ref; /* reference count */
- struct typenode * left; /* ptr to operand for | */
- struct typenode * right; /* ptr to operand for | */
+ unsigned short status; /* flags */
+ long ref; /* reference count */
+ struct typenode * left; /* ptr to operand for | */
+ struct typenode * right; /* ptr to operand for | */
- void* (*makearg)(va_list *); /* make fieldtype arg */
- void* (*copyarg)(const void *); /* copy fieldtype arg */
- void (*freearg)(void *); /* free fieldtype arg */
+ void* (*makearg)(va_list *); /* make fieldtype arg */
+ void* (*copyarg)(const void *); /* copy fieldtype arg */
+ void (*freearg)(void *); /* free fieldtype arg */
- bool (*fcheck)(FIELD *,const void *); /* field validation */
- bool (*ccheck)(int,const void *); /* character validation */
+ bool (*fcheck)(FIELD *,const void *); /* field validation */
+ bool (*ccheck)(int,const void *); /* character validation */
- bool (*next)(FIELD *,const void *); /* enumerate next value */
- bool (*prev)(FIELD *,const void *); /* enumerate prev value */
+ bool (*next)(FIELD *,const void *); /* enumerate next value */
+ bool (*prev)(FIELD *,const void *); /* enumerate prev value */
} FIELDTYPE;
*********/
typedef struct formnode {
- unsigned short status; /* flags */
- short rows; /* size in rows */
- short cols; /* size in cols */
- int currow; /* current row in field window*/
- int curcol; /* current col in field window*/
- int toprow; /* in scrollable field window */
- int begincol; /* in horiz. scrollable field */
- short maxfield; /* number of fields */
- short maxpage; /* number of pages */
- short curpage; /* index into page */
- Form_Options opts; /* options */
- WINDOW * win; /* window */
- WINDOW * sub; /* subwindow */
- WINDOW * w; /* window for current field */
- FIELD ** field; /* field [maxfield] */
- FIELD * current; /* current field */
- _PAGE * page; /* page [maxpage] */
- void * usrptr; /* user pointer */
-
- void (*forminit)(struct formnode *);
- void (*formterm)(struct formnode *);
- void (*fieldinit)(struct formnode *);
- void (*fieldterm)(struct formnode *);
+ unsigned short status; /* flags */
+ short rows; /* size in rows */
+ short cols; /* size in cols */
+ int currow; /* current row in field window */
+ int curcol; /* current col in field window */
+ int toprow; /* in scrollable field window */
+ int begincol; /* in horiz. scrollable field */
+ short maxfield; /* number of fields */
+ short maxpage; /* number of pages */
+ short curpage; /* index into page */
+ Form_Options opts; /* options */
+ WINDOW * win; /* window */
+ WINDOW * sub; /* subwindow */
+ WINDOW * w; /* window for current field */
+ FIELD ** field; /* field [maxfield] */
+ FIELD * current; /* current field */
+ _PAGE * page; /* page [maxpage] */
+ void * usrptr; /* user pointer */
+
+ void (*forminit)(struct formnode *);
+ void (*formterm)(struct formnode *);
+ void (*fieldinit)(struct formnode *);
+ void (*fieldterm)(struct formnode *);
} FORM;
#define JUSTIFY_RIGHT (3)
/* field options */
-#define O_VISIBLE (0x0001)
-#define O_ACTIVE (0x0002)
-#define O_PUBLIC (0x0004)
-#define O_EDIT (0x0008)
-#define O_WRAP (0x0010)
-#define O_BLANK (0x0020)
-#define O_AUTOSKIP (0x0040)
-#define O_NULLOK (0x0080)
-#define O_PASSOK (0x0100)
-#define O_STATIC (0x0200)
+#define O_VISIBLE (0x0001U)
+#define O_ACTIVE (0x0002U)
+#define O_PUBLIC (0x0004U)
+#define O_EDIT (0x0008U)
+#define O_WRAP (0x0010U)
+#define O_BLANK (0x0020U)
+#define O_AUTOSKIP (0x0040U)
+#define O_NULLOK (0x0080U)
+#define O_PASSOK (0x0100U)
+#define O_STATIC (0x0200U)
/* form options */
-#define O_NL_OVERLOAD (0x0001)
-#define O_BS_OVERLOAD (0x0002)
+#define O_NL_OVERLOAD (0x0001U)
+#define O_BS_OVERLOAD (0x0002U)
/* form driver commands */
#define REQ_NEXT_PAGE (KEY_MAX + 1) /* move to next page */
#define REQ_SCR_BLINE (KEY_MAX + 44) /* scroll field backward a line */
#define REQ_SCR_FPAGE (KEY_MAX + 45) /* scroll field forward a page */
#define REQ_SCR_BPAGE (KEY_MAX + 46) /* scroll field backward a page */
-#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */
-#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */
-#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */
-#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */
-#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */
-#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */
-#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */
-#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */
+#define REQ_SCR_FHPAGE (KEY_MAX + 47) /* scroll field forward half page */
+#define REQ_SCR_BHPAGE (KEY_MAX + 48) /* scroll field backward half page */
+#define REQ_SCR_FCHAR (KEY_MAX + 49) /* horizontal scroll char */
+#define REQ_SCR_BCHAR (KEY_MAX + 50) /* horizontal scroll char */
+#define REQ_SCR_HFLINE (KEY_MAX + 51) /* horizontal scroll line */
+#define REQ_SCR_HBLINE (KEY_MAX + 52) /* horizontal scroll line */
+#define REQ_SCR_HFHALF (KEY_MAX + 53) /* horizontal scroll half line */
+#define REQ_SCR_HBHALF (KEY_MAX + 54) /* horizontal scroll half line */
#define REQ_VALIDATION (KEY_MAX + 55) /* validate field */
#define REQ_NEXT_CHOICE (KEY_MAX + 56) /* display next field choice */
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_NUMERIC;
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_REGEXP;
- /************************************
+ /************************************
* built-in additional field types *
- * They are not defined in SVr4 *
+ * They are not defined in SVr4 *
************************************/
extern NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_IPV4; /* Internet IP Version 4 address */
- /***********************
- * Default objects *
- ***********************/
+ /***********************
+ * Default objects *
+ ***********************/
extern NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form;
extern NCURSES_EXPORT_VAR(FIELD *) _nc_Default_Field;
***********************/
extern NCURSES_EXPORT(FIELDTYPE *) new_fieldtype (
bool (* const field_check)(FIELD *,const void *),
- bool (* const char_check)(int,const void *)),
- *link_fieldtype(FIELDTYPE *,FIELDTYPE *);
+ bool (* const char_check)(int,const void *));
+extern NCURSES_EXPORT(FIELDTYPE *) link_fieldtype(
+ FIELDTYPE *, FIELDTYPE *);
extern NCURSES_EXPORT(int) free_fieldtype (FIELDTYPE *);
extern NCURSES_EXPORT(int) set_fieldtype_arg (FIELDTYPE *,
extern NCURSES_EXPORT(char *) field_buffer (const FIELD *,int);
-extern NCURSES_EXPORT(Field_Options) field_opts (const FIELD *);
+extern NCURSES_EXPORT(Field_Options) field_opts (const FIELD *);
/******************
* FORM routines *
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: form.priv.h,v 0.11 2003/11/08 20:38:51 tom Exp $ */
+/* $Id: form.priv.h,v 0.25 2005/03/05 23:47:26 tom Exp $ */
+#ifndef FORM_PRIV_H
+#define FORM_PRIV_H 1
+
+#include "curses.priv.h"
#include "mf_common.h"
+
+#if USE_WIDEC_SUPPORT
+#include <wchar.h>
+#include <wctype.h>
+
+#ifndef MB_LEN_MAX
+#define MB_LEN_MAX 8 /* should be >= MB_CUR_MAX, but that may be a function */
+#endif
+
+#define FIELD_CELL NCURSES_CH_T
+
+#define NCURSES_FIELD_INTERNALS char** expanded; WINDOW *working;
+#define NCURSES_FIELD_EXTENSION , (char **)0, (WINDOW *)0
+
+#else
+
+#define FIELD_CELL char
+
+#define NCURSES_FIELD_EXTENSION /* nothing */
+
+#endif
+
#include "form.h"
/* form status values */
-#define _OVLMODE (0x04) /* Form is in overlay mode */
-#define _WINDOW_MODIFIED (0x10) /* Current field window has been modified */
-#define _FCHECK_REQUIRED (0x20) /* Current field needs validation */
+#define _OVLMODE (0x04U) /* Form is in overlay mode */
+#define _WINDOW_MODIFIED (0x10U) /* Current field window has been modified */
+#define _FCHECK_REQUIRED (0x20U) /* Current field needs validation */
/* field status values */
-#define _CHANGED (0x01) /* Field has been changed */
-#define _NEWTOP (0x02) /* Vertical scrolling occurred */
-#define _NEWPAGE (0x04) /* field begins new page of form */
-#define _MAY_GROW (0x08) /* dynamic field may still grow */
+#define _CHANGED (0x01U) /* Field has been changed */
+#define _NEWTOP (0x02U) /* Vertical scrolling occurred */
+#define _NEWPAGE (0x04U) /* field begins new page of form */
+#define _MAY_GROW (0x08U) /* dynamic field may still grow */
/* fieldtype status values */
-#define _LINKED_TYPE (0x01) /* Type is a linked type */
-#define _HAS_ARGS (0x02) /* Type has arguments */
-#define _HAS_CHOICE (0x04) /* Type has choice methods */
-#define _RESIDENT (0x08) /* Type is built-in */
+#define _LINKED_TYPE (0x01U) /* Type is a linked type */
+#define _HAS_ARGS (0x02U) /* Type has arguments */
+#define _HAS_CHOICE (0x04U) /* Type has choice methods */
+#define _RESIDENT (0x08U) /* Type is built-in */
/* This are the field options required to be a selectable field in field
navigation requests */
#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
/* If form is NULL replace form argument by default-form */
-#define Normalize_Form(form) ((form)=(form)?(form):_nc_Default_Form)
+#define Normalize_Form(form) \
+ ((form) = (form != 0) ? (form) : _nc_Default_Form)
/* If field is NULL replace field argument by default-field */
-#define Normalize_Field(field) ((field)=(field)?(field):_nc_Default_Field)
+#define Normalize_Field(field) \
+ ((field) = (field != 0) ? (field) : _nc_Default_Field)
/* Retrieve forms window */
#define Get_Form_Window(form) \
/* Calculate the total size of all buffers for this field */
#define Total_Buffer_Size(field) \
- ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) )
+ ( (Buffer_Length(field) + 1) * (1+(field)->nbuf) * sizeof(FIELD_CELL) )
/* Logic to determine whether or not a field is single lined */
#define Single_Line_Field(field) \
(((field)->rows + (field)->nrow) == 1)
/* Logic to determine whether or not a field is selectable */
-#define Field_Is_Selectable(f) (((f)->opts & O_SELECTABLE)==O_SELECTABLE)
-#define Field_Is_Not_Selectable(f) (((f)->opts & O_SELECTABLE)!=O_SELECTABLE)
+#define Field_Is_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)==O_SELECTABLE)
+#define Field_Is_Not_Selectable(f) (((unsigned)((f)->opts) & O_SELECTABLE)!=O_SELECTABLE)
-typedef struct typearg {
- struct typearg *left;
- struct typearg *right;
-} TypeArgument;
+typedef struct typearg
+ {
+ struct typearg *left;
+ struct typearg *right;
+ }
+TypeArgument;
/* This is a dummy request code (normally invalid) to be used internally
with the form_driver() routine to position to the first active field
O_NL_OVERLOAD |\
O_BS_OVERLOAD )
-#define ALL_FIELD_OPTS ( \
+#define ALL_FIELD_OPTS (Field_Options)( \
O_VISIBLE |\
O_ACTIVE |\
O_PUBLIC |\
O_PASSOK |\
O_STATIC )
-
#define C_BLANK ' '
#define is_blank(c) ((c)==C_BLANK)
+#define C_ZEROS '\0'
+
extern NCURSES_EXPORT_VAR(const FIELDTYPE *) _nc_Default_FieldType;
-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(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 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_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_Set_Current_Field (FORM*, FIELD*);
extern NCURSES_EXPORT(int) _nc_Position_Form_Cursor (FORM*);
+
+#if USE_WIDEC_SUPPORT
+extern NCURSES_EXPORT(wchar_t *) _nc_Widen_String(char *, int *);
+#endif
+
+#ifdef TRACE
+
+#define returnField(code) TRACE_RETURN(code,field)
+#define returnFieldPtr(code) TRACE_RETURN(code,field_ptr)
+#define returnForm(code) TRACE_RETURN(code,form)
+#define returnFieldType(code) TRACE_RETURN(code,field_type)
+#define returnFormHook(code) TRACE_RETURN(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);
+
+#else /* !TRACE */
+
+#define returnFieldPtr(code) return code
+#define returnFieldType(code) return code
+#define returnField(code) return code
+#define returnForm(code) return code
+#define returnFormHook(code) return code
+
+#endif /* TRACE/!TRACE */
+
+/*
+ * Use Check_CTYPE_Field() to simplify FIELDTYPE's that use only the ccheck()
+ * function.
+ */
+#if USE_WIDEC_SUPPORT
+#define Check_CTYPE_Field(result, buffer, width, ccheck) \
+ while (*buffer && *buffer == ' ') \
+ buffer++; \
+ if (*buffer) \
+ { \
+ bool blank = FALSE; \
+ int len; \
+ int n; \
+ wchar_t *list = _nc_Widen_String((char *)buffer, &len); \
+ if (list != 0) \
+ { \
+ result = TRUE; \
+ for (n = 0; n < len; ++n) \
+ { \
+ if (blank) \
+ { \
+ if (list[n] != ' ') \
+ { \
+ result = FALSE; \
+ break; \
+ } \
+ } \
+ else if (list[n] == ' ') \
+ { \
+ blank = TRUE; \
+ result = (n + 1 >= width); \
+ } \
+ else if (!ccheck(list[n], NULL)) \
+ { \
+ result = FALSE; \
+ break; \
+ } \
+ } \
+ free(list); \
+ } \
+ }
+#else
+#define Check_CTYPE_Field(result, buffer, width, ccheck) \
+ while (*buffer && *buffer == ' ') \
+ buffer++; \
+ if (*buffer) \
+ { \
+ unsigned char *s = buffer; \
+ int l = -1; \
+ while (*buffer && ccheck(*buffer, NULL)) \
+ buffer++; \
+ l = (int)(buffer - s); \
+ while (*buffer && *buffer == ' ') \
+ buffer++; \
+ result = ((*buffer || (l < width)) ? FALSE : TRUE); \
+ }
+#endif
+
+#endif /* FORM_PRIV_H */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_cursor.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_cursor.c,v 1.9 2004/12/11 22:01:03 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_NOT_POSTED - Form is not posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-pos_form_cursor (FORM * form)
+pos_form_cursor(FORM *form)
{
int res;
+ T((T_CALLED("pos_form_cursor(%p)"), form));
+
if (!form)
- res = E_BAD_ARGUMENT;
+ res = E_BAD_ARGUMENT;
else
{
if (!(form->status & _POSTED))
- res = E_NOT_POSTED;
+ res = E_NOT_POSTED;
else
res = _nc_Position_Form_Cursor(form);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_data.c,v 1.10 2003/11/08 20:38:14 tom Exp $")
+MODULE_ID("$Id: frm_data.c,v 1.13 2004/12/11 22:29:28 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| FALSE - there are no off-screen data behind
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-data_behind (const FORM *form)
+data_behind(const FORM *form)
{
bool result = FALSE;
+ T((T_CALLED("data_behind(%p)"), form));
+
if (form && (form->status & _POSTED) && form->current)
{
FIELD *field;
field = form->current;
if (!Single_Line_Field(field))
{
- result = (form->toprow==0) ? FALSE : TRUE;
+ result = (form->toprow == 0) ? FALSE : TRUE;
}
else
{
- result = (form->begincol==0) ? FALSE : TRUE;
+ result = (form->begincol == 0) ? FALSE : TRUE;
}
}
- return(result);
+ returnBool(result);
}
/*---------------------------------------------------------------------------
| Facility : libnform
-| Function : static char * After_Last_Non_Pad_Position(
-| char *buffer,
+| Function : static char * Only_Padding(
+| WINDOW *w,
| int len,
| int pad)
|
-| Description : Find the last position in the buffer that doesn't
+| Description : Test if 'length' cells starting at the current position
| contain a padding character.
|
-| Return Values : The pointer to this position
+| Return Values : true if only padding cells are found
+--------------------------------------------------------------------------*/
-INLINE
-static char * After_Last_Non_Pad_Position(char *buffer, int len, int pad)
+INLINE static bool
+Only_Padding(WINDOW *w, int len, int pad)
{
- char *end = buffer + len;
-
- assert(buffer && len>=0);
- while ( (buffer < end) && (*(end-1)==pad) )
- end--;
+ bool result = TRUE;
+ int y, x, j;
+ FIELD_CELL cell;
- return end;
+ getyx(w, y, x);
+ for (j = 0; j < len; ++j)
+ {
+ if (wmove(w, y, x + j) != ERR)
+ {
+#if USE_WIDEC_SUPPORT
+ if (win_wch(w, &cell) != ERR)
+ {
+ if ((chtype)CharOf(cell) != ChCharOf(pad)
+ || cell.chars[1] != 0)
+ {
+ result = FALSE;
+ break;
+ }
+ }
+#else
+ cell = winch(w);
+ if (ChCharOf(cell) != ChCharOf(pad))
+ {
+ result = FALSE;
+ break;
+ }
+#endif
+ }
+ else
+ {
+ /* if an error, return true: no non-padding text found */
+ break;
+ }
+ }
+ /* no need to reset the cursor position; caller does this */
+ return result;
}
-#define SMALL_BUFFER_SIZE (80)
-
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : bool data_ahead(const FORM *form)
| FALSE - there are no off-screen data ahead
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-data_ahead (const FORM *form)
+data_ahead(const FORM *form)
{
bool result = FALSE;
+ T((T_CALLED("data_ahead(%p)"), form));
+
if (form && (form->status & _POSTED) && form->current)
{
- static char buffer[SMALL_BUFFER_SIZE + 1];
FIELD *field;
- bool large_buffer;
bool cursor_moved = FALSE;
- char *bp;
- char *found_content;
int pos;
field = form->current;
assert(form->w);
- large_buffer = (field->cols > SMALL_BUFFER_SIZE);
- if (large_buffer)
- bp = (char *)malloc((size_t)(field->cols) + 1);
- else
- bp = buffer;
-
- assert(bp);
-
if (Single_Line_Field(field))
{
int check_len;
while (pos < field->dcols)
{
check_len = field->dcols - pos;
- if ( check_len >= field->cols )
+ if (check_len >= field->cols)
check_len = field->cols;
cursor_moved = TRUE;
- wmove(form->w,0,pos);
- winnstr(form->w,bp,check_len);
- found_content =
- After_Last_Non_Pad_Position(bp,check_len,field->pad);
- if (found_content==bp)
- pos += field->cols;
+ wmove(form->w, 0, pos);
+ if (Only_Padding(form->w, check_len, field->pad))
+ pos += field->cols;
else
{
result = TRUE;
while (pos < field->drows)
{
cursor_moved = TRUE;
- wmove(form->w,pos,0);
+ wmove(form->w, pos, 0);
pos++;
- winnstr(form->w,bp,field->cols);
- found_content =
- After_Last_Non_Pad_Position(bp,field->cols,field->pad);
- if (found_content!=bp)
+ if (!Only_Padding(form->w, field->cols, field->pad))
{
result = TRUE;
break;
}
}
- if (large_buffer)
- free(bp);
-
if (cursor_moved)
- wmove(form->w,form->currow,form->curcol);
+ wmove(form->w, form->currow, form->curcol);
}
- return(result);
+ returnBool(result);
}
/* frm_data.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_def.c,v 1.13 2003/11/08 20:37:53 tom Exp $")
+MODULE_ID("$Id: frm_def.c,v 1.17 2004/12/25 22:26:01 tom Exp $")
/* this can't be readonly */
-static FORM default_form = {
- 0, /* status */
- 0, /* rows */
- 0, /* cols */
- 0, /* currow */
- 0, /* curcol */
- 0, /* toprow */
- 0, /* begincol */
- -1, /* maxfield */
- -1, /* maxpage */
- -1, /* curpage */
- ALL_FORM_OPTS, /* opts */
- (WINDOW *)0, /* win */
- (WINDOW *)0, /* sub */
- (WINDOW *)0, /* w */
- (FIELD **)0, /* field */
- (FIELD *)0, /* current */
- (_PAGE *)0, /* page */
- (char *)0, /* usrptr */
- NULL, /* forminit */
- NULL, /* formterm */
- NULL, /* fieldinit */
- NULL /* fieldterm */
+static FORM default_form =
+{
+ 0, /* status */
+ 0, /* rows */
+ 0, /* cols */
+ 0, /* currow */
+ 0, /* curcol */
+ 0, /* toprow */
+ 0, /* begincol */
+ -1, /* maxfield */
+ -1, /* maxpage */
+ -1, /* curpage */
+ ALL_FORM_OPTS, /* opts */
+ (WINDOW *)0, /* win */
+ (WINDOW *)0, /* sub */
+ (WINDOW *)0, /* w */
+ (FIELD **)0, /* field */
+ (FIELD *)0, /* current */
+ (_PAGE *) 0, /* page */
+ (char *)0, /* usrptr */
+ NULL, /* forminit */
+ NULL, /* formterm */
+ NULL, /* fieldinit */
+ NULL /* fieldterm */
};
NCURSES_EXPORT_VAR(FORM *) _nc_Default_Form = &default_form;
|
| Return Values : New head of sorted fieldlist
+--------------------------------------------------------------------------*/
-static FIELD *Insert_Field_By_Position(FIELD *newfield, FIELD *head)
+static FIELD *
+Insert_Field_By_Position(FIELD *newfield, FIELD *head)
{
FIELD *current, *newhead;
-
+
assert(newfield);
if (!head)
- { /* empty list is trivial */
+ { /* empty list is trivial */
newhead = newfield->snext = newfield->sprev = newfield;
}
else
{
newhead = current = head;
- while((current->frow < newfield->frow) ||
- ((current->frow==newfield->frow) &&
- (current->fcol < newfield->fcol)) )
+ while ((current->frow < newfield->frow) ||
+ ((current->frow == newfield->frow) &&
+ (current->fcol < newfield->fcol)))
{
current = current->snext;
- if (current==head)
- { /* We cycled through. Reset head to indicate that */
+ if (current == head)
+ { /* We cycled through. Reset head to indicate that */
head = (FIELD *)0;
break;
}
}
- /* we leave the loop with current pointing to the field after newfield*/
- newfield->snext = current;
- newfield->sprev = current->sprev;
+ /* we leave the loop with current pointing to the field after newfield */
+ newfield->snext = current;
+ newfield->sprev = current->sprev;
newfield->snext->sprev = newfield;
newfield->sprev->snext = newfield;
- if (current==head)
+ if (current == head)
newhead = newfield;
}
- return(newhead);
+ return (newhead);
}
/*---------------------------------------------------------------------------
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Disconnect_Fields( FORM * form )
+static void
+Disconnect_Fields(FORM *form)
{
if (form->field)
{
FIELD **fields;
- for(fields=form->field;*fields;fields++)
+ for (fields = form->field; *fields; fields++)
{
- if (form == (*fields)->form)
+ if (form == (*fields)->form)
(*fields)->form = (FORM *)0;
}
-
+
form->rows = form->cols = 0;
form->maxfield = form->maxpage = -1;
form->field = (FIELD **)0;
- if (form->page)
+ if (form->page)
free(form->page);
- form->page = (_PAGE *)0;
- }
+ form->page = (_PAGE *) 0;
+ }
}
/*---------------------------------------------------------------------------
| E_BAD_ARGUMENT - Invalid form pointer or field array
| E_SYSTEM_ERROR - not enough memory
+--------------------------------------------------------------------------*/
-static int Connect_Fields(FORM * form, FIELD ** fields)
+static int
+Connect_Fields(FORM *form, FIELD **fields)
{
int field_cnt, j;
int page_nr;
int maximum_row_in_field, maximum_col_in_field;
_PAGE *pg;
-
+
+ T((T_CALLED("Connect_Fields(%p,%p)"), form, fields));
+
assert(form);
- form->field = fields;
+ form->field = fields;
form->maxfield = 0;
- form->maxpage = 0;
+ form->maxpage = 0;
if (!fields)
RETURN(E_OK);
-
+
page_nr = 0;
/* store formpointer in fields and count pages */
- for(field_cnt=0;fields[field_cnt];field_cnt++)
+ for (field_cnt = 0; fields[field_cnt]; field_cnt++)
{
- if (fields[field_cnt]->form)
+ if (fields[field_cnt]->form)
RETURN(E_CONNECTED);
- if ( field_cnt==0 ||
- (fields[field_cnt]->status & _NEWPAGE))
+ if (field_cnt == 0 ||
+ (fields[field_cnt]->status & _NEWPAGE))
page_nr++;
fields[field_cnt]->form = form;
- }
- if (field_cnt==0)
+ }
+ if (field_cnt == 0)
RETURN(E_BAD_ARGUMENT);
-
+
/* allocate page structures */
- if ( (pg = (_PAGE *)malloc(page_nr * sizeof(_PAGE))) != (_PAGE *)0 )
+ if ((pg = (_PAGE *) malloc(page_nr * sizeof(_PAGE))) != (_PAGE *) 0)
{
form->page = pg;
}
else
RETURN(E_SYSTEM_ERROR);
-
+
/* Cycle through fields and calculate page boundaries as well as
size of the form */
- for(j=0;j<field_cnt;j++)
+ for (j = 0; j < field_cnt; j++)
{
- if (j==0)
+ if (j == 0)
pg->pmin = j;
else
{
if (fields[j]->status & _NEWPAGE)
{
- pg->pmax = j-1;
+ pg->pmax = j - 1;
pg++;
pg->pmin = j;
}
}
-
+
maximum_row_in_field = fields[j]->frow + fields[j]->rows;
maximum_col_in_field = fields[j]->fcol + fields[j]->cols;
-
- if (form->rows < maximum_row_in_field)
+
+ if (form->rows < maximum_row_in_field)
form->rows = maximum_row_in_field;
- if (form->cols < maximum_col_in_field)
+ if (form->cols < maximum_col_in_field)
form->cols = maximum_col_in_field;
}
-
- pg->pmax = field_cnt-1;
+
+ pg->pmax = field_cnt - 1;
form->maxfield = field_cnt;
- form->maxpage = page_nr;
-
+ form->maxpage = page_nr;
+
/* Sort fields on form pages */
- for(page_nr = 0;page_nr < form->maxpage; page_nr++)
+ for (page_nr = 0; page_nr < form->maxpage; page_nr++)
{
FIELD *fld = (FIELD *)0;
- for(j = form->page[page_nr].pmin;j <= form->page[page_nr].pmax;j++)
+
+ for (j = form->page[page_nr].pmin; j <= form->page[page_nr].pmax; j++)
{
fields[j]->index = j;
- fields[j]->page = page_nr;
- fld = Insert_Field_By_Position(fields[j],fld);
+ fields[j]->page = page_nr;
+ fld = Insert_Field_By_Position(fields[j], fld);
}
form->page[page_nr].smin = fld->index;
form->page[page_nr].smax = fld->sprev->index;
| Return Values : E_OK - success
| any other - error occurred
+--------------------------------------------------------------------------*/
-INLINE static int Associate_Fields(FORM *form, FIELD **fields)
+INLINE static int
+Associate_Fields(FORM *form, FIELD **fields)
{
- int res = Connect_Fields(form,fields);
+ int res = Connect_Fields(form, fields);
+
if (res == E_OK)
{
- if (form->maxpage>0)
+ if (form->maxpage > 0)
{
form->curpage = 0;
- form_driver(form,FIRST_ACTIVE_MAGIC);
+ form_driver(form, FIRST_ACTIVE_MAGIC);
}
else
{
form->curpage = -1;
form->current = (FIELD *)0;
- }
+ }
}
- return(res);
+ return (res);
}
-
+
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : FORM *new_form( FIELD **fields )
| Return Values : Pointer to form. NULL if error occurred.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FORM *)
-new_form (FIELD ** fields)
-{
+new_form(FIELD **fields)
+{
int err = E_SYSTEM_ERROR;
FORM *form = (FORM *)malloc(sizeof(FORM));
-
+
+ T((T_CALLED("new_form(%p)"), fields));
if (form)
{
*form = *_nc_Default_Form;
- if ((err=Associate_Fields(form,fields))!=E_OK)
+ if ((err = Associate_Fields(form, fields)) != E_OK)
{
free_form(form);
form = (FORM *)0;
if (!form)
SET_ERROR(err);
-
- return(form);
+
+ returnForm(form);
}
/*---------------------------------------------------------------------------
| E_POSTED - form is posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-free_form (FORM * form)
+free_form(FORM *form)
{
- if ( !form )
+ T((T_CALLED("free_form(%p)"), form));
+
+ if (!form)
RETURN(E_BAD_ARGUMENT);
- if ( form->status & _POSTED)
+ if (form->status & _POSTED)
RETURN(E_POSTED);
-
- Disconnect_Fields( form );
- if (form->page)
+
+ Disconnect_Fields(form);
+ if (form->page)
free(form->page);
free(form);
-
+
RETURN(E_OK);
}
| E_POSTED - form is posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_form_fields (FORM * form, FIELD ** fields)
+set_form_fields(FORM *form, FIELD **fields)
{
FIELD **old;
int res;
-
- if ( !form )
+
+ T((T_CALLED("set_form_fields(%p,%p)"), form, fields));
+
+ if (!form)
RETURN(E_BAD_ARGUMENT);
- if ( form->status & _POSTED )
+ if (form->status & _POSTED)
RETURN(E_POSTED);
-
+
old = form->field;
- Disconnect_Fields( form );
-
- if( (res = Associate_Fields( form, fields )) != E_OK )
- Connect_Fields( form, old );
-
+ Disconnect_Fields(form);
+
+ if ((res = Associate_Fields(form, fields)) != E_OK)
+ Connect_Fields(form, old);
+
RETURN(res);
}
-
+
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : FIELD **form_fields( const FORM *form )
| Return Values : Pointer to field array
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(FIELD **)
-form_fields (const FORM * form)
+form_fields(const FORM *form)
{
- return (Normalize_Form( form )->field);
+ T((T_CALLED("form_field(%p)"), form));
+ returnFieldPtr(Normalize_Form(form)->field);
}
/*---------------------------------------------------------------------------
| Return Values : Number of fields, -1 if none are defined
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-field_count (const FORM * form)
+field_count(const FORM *form)
{
- return (Normalize_Form( form )->maxfield);
+ T((T_CALLED("field_count(%p)"), form));
+
+ returnCode(Normalize_Form(form)->maxfield);
}
/* frm_def.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_driver.c,v 1.45 2003/12/06 17:22:42 tom Exp $")
+MODULE_ID("$Id: frm_driver.c,v 1.71 2005/10/01 19:42:40 tom Exp $")
/*----------------------------------------------------------------------------
This is the core module of the form library. It contains the majority
- of the driver routines as well as the form_driver function.
+ of the driver routines as well as the form_driver function.
Essentially this module is nearly the whole library. This is because
all the functions in this module depends on some others in the module,
The current field of the form is left and some new field is
entered.
c) Intra-Field Navigation ( all functions prefixed by IFN_ )
- The current position in the current field is changed.
+ The current position in the current field is changed.
d) Vertical Scrolling ( all functions prefixed by VSC_ )
Essentially this is a specialization of Intra-Field navigation.
It has to check for a multi-line field.
of the original SVr4 implementation, although in some areas it is quite
clear that this isn't the most appropriate way. As far as possible this
sources will allow you to build a forms lib that behaves quite similar
-to SVr4, but now and in the future we will give you better options.
+to SVr4, but now and in the future we will give you better options.
Perhaps at some time we will make this configurable at runtime.
*/
/* Allow dynamic field growth also when navigating past the end */
#define GROW_IF_NAVIGATE (1)
+#if USE_WIDEC_SUPPORT
+#define myADDNSTR(w, s, n) wadd_wchnstr(w, s, n)
+#define myINSNSTR(w, s, n) wins_wchnstr(w, s, n)
+#define myINNSTR(w, s, n) fix_wchnstr(w, s, n)
+#define myWCWIDTH(w, y, x) cell_width(w, y, x)
+#else
+#define myADDNSTR(w, s, n) waddnstr(w, s, n)
+#define myINSNSTR(w, s, n) winsnstr(w, s, n)
+#define myINNSTR(w, s, n) winnstr(w, s, n)
+#define myWCWIDTH(w, y, x) 1
+#endif
+
/*----------------------------------------------------------------------------
Forward references to some internally used static functions
--------------------------------------------------------------------------*/
-static int Inter_Field_Navigation ( int (* const fct) (FORM *), FORM * form );
-static int FN_Next_Field (FORM * form);
-static int FN_Previous_Field (FORM * form);
+static int Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form);
+static int FN_Next_Field(FORM *form);
+static int FN_Previous_Field(FORM *form);
static int FE_New_Line(FORM *);
static int FE_Delete_Previous(FORM *);
-\f
+
/*----------------------------------------------------------------------------
Macro Definitions.
#define First_Position_In_Current_Field(form) \
(((form)->currow==0) && ((form)->curcol==0))
-
#define Minimum(a,b) (((a)<=(b)) ? (a) : (b))
#define Maximum(a,b) (((a)>=(b)) ? (a) : (b))
-\f
+
+/*----------------------------------------------------------------------------
+ Useful constants
+ --------------------------------------------------------------------------*/
+static FIELD_CELL myBLANK = BLANK;
+static FIELD_CELL myZEROS;
+
+#ifdef TRACE
+static void
+check_pos(FORM *form, int lineno)
+{
+ int y, x;
+
+ if (form && form->w)
+ {
+ getyx(form->w, y, x);
+ if (y != form->currow || x != form->curcol)
+ {
+ T(("CHECKPOS %s@%d have position %d,%d vs want %d,%d",
+ __FILE__, lineno,
+ y, x,
+ form->currow, form->curcol));
+ }
+ }
+}
+#define CHECKPOS(form) check_pos(form, __LINE__)
+#else
+#define CHECKPOS(form) /* nothing */
+#endif
+
+/*----------------------------------------------------------------------------
+ Wide-character special functions
+ --------------------------------------------------------------------------*/
+#if USE_WIDEC_SUPPORT
+/* like winsnstr */
+static int
+wins_wchnstr(WINDOW *w, cchar_t *s, int n)
+{
+ int code = ERR;
+ int y, x;
+
+ while (n-- > 0)
+ {
+ getyx(w, y, x);
+ if ((code = wins_wch(w, s++)) != OK)
+ break;
+ if ((code = wmove(w, y, x + 1)) != OK)
+ break;
+ }
+ return code;
+}
+
+/* win_wchnstr is inconsistent with winnstr, since it returns OK rather than
+ * the number of items transferred.
+ */
+static int
+fix_wchnstr(WINDOW *w, cchar_t *s, int n)
+{
+ win_wchnstr(w, s, n);
+ return n;
+}
+
+/*
+ * Returns the column of the base of the given cell.
+ */
+static int
+cell_base(WINDOW *win, int y, int x)
+{
+ int result = x;
+
+ while (LEGALYX(win, y, x))
+ {
+ cchar_t *data = &(win->_line[y].text[x]);
+
+ if (isWidecBase(CHDEREF(data)) || !isWidecExt(CHDEREF(data)))
+ {
+ result = x;
+ break;
+ }
+ --x;
+ }
+ return result;
+}
+
+/*
+ * Returns the number of columns needed for the given cell in a window.
+ */
+static int
+cell_width(WINDOW *win, int y, int x)
+{
+ int result = 1;
+
+ if (LEGALYX(win, y, x))
+ {
+ cchar_t *data = &(win->_line[y].text[x]);
+
+ if (isWidecExt(CHDEREF(data)))
+ {
+ /* recur, providing the number of columns to the next character */
+ result = cell_width(win, y, x - 1);
+ }
+ else
+ {
+ result = wcwidth(CharOf(CHDEREF(data)));
+ }
+ }
+ return result;
+}
+
+/*
+ * There is no wide-character function such as wdel_wch(), so we must find
+ * all of the cells that comprise a multi-column character and delete them
+ * one-by-one.
+ */
+static void
+delete_char(FORM *form)
+{
+ int cells = cell_width(form->w, form->currow, form->curcol);
+
+ form->curcol = cell_base(form->w, form->currow, form->curcol);
+ wmove(form->w, form->currow, form->curcol);
+ while (cells-- > 0)
+ {
+ wdelch(form->w);
+ }
+}
+#define DeleteChar(form) delete_char(form)
+#else
+#define DeleteChar(form) \
+ wmove((form)->w, (form)->currow, (form)->curcol), \
+ wdelch((form)->w)
+#endif
+
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static char *Get_Start_Of_Data(char * buf, int blen)
-|
+|
| Description : Return pointer to first non-blank position in buffer.
| If buffer is empty return pointer to buffer itself.
|
| Return Values : Pointer to first non-blank position in buffer
+--------------------------------------------------------------------------*/
-INLINE static char *Get_Start_Of_Data(char * buf, int blen)
+INLINE static FIELD_CELL *
+Get_Start_Of_Data(FIELD_CELL *buf, int blen)
{
- char *p = buf;
- char *end = &buf[blen];
+ FIELD_CELL *p = buf;
+ FIELD_CELL *end = &buf[blen];
- assert(buf && blen>=0);
- while( (p < end) && is_blank(*p) )
+ assert(buf && blen >= 0);
+ while ((p < end) && ISBLANK(*p))
p++;
- return( (p==end) ? buf : p );
+ return ((p == end) ? buf : p);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static char *After_End_Of_Data(char * buf, int blen)
-|
+|
| Description : Return pointer after last non-blank position in buffer.
| If buffer is empty, return pointer to buffer itself.
|
-| Return Values : Pointer to position after last non-blank position in
+| Return Values : Pointer to position after last non-blank position in
| buffer.
+--------------------------------------------------------------------------*/
-INLINE static char *After_End_Of_Data(char * buf,int blen)
+INLINE static FIELD_CELL *
+After_End_Of_Data(FIELD_CELL *buf, int blen)
{
- char *p = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p>buf) && is_blank(p[-1]) )
+ FIELD_CELL *p = &buf[blen];
+
+ assert(buf && blen >= 0);
+ while ((p > buf) && ISBLANK(p[-1]))
p--;
- return( p );
+ return (p);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static char *Get_First_Whitespace_Character(
| char * buf, int blen)
-|
+|
| Description : Position to the first whitespace character.
|
| Return Values : Pointer to first whitespace character in buffer.
+--------------------------------------------------------------------------*/
-INLINE static char *Get_First_Whitespace_Character(char * buf, int blen)
+INLINE static FIELD_CELL *
+Get_First_Whitespace_Character(FIELD_CELL *buf, int blen)
{
- char *p = buf;
- char *end = &p[blen];
-
- assert(buf && blen>=0);
- while( (p < end) && !is_blank(*p))
+ FIELD_CELL *p = buf;
+ FIELD_CELL *end = &p[blen];
+
+ assert(buf && blen >= 0);
+ while ((p < end) && !ISBLANK(*p))
p++;
- return( (p==end) ? buf : p );
+ return ((p == end) ? buf : p);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static char *After_Last_Whitespace_Character(
| char * buf, int blen)
-|
+|
| Description : Get the position after the last whitespace character.
|
-| Return Values : Pointer to position after last whitespace character in
+| Return Values : Pointer to position after last whitespace character in
| buffer.
+--------------------------------------------------------------------------*/
-INLINE static char *After_Last_Whitespace_Character(char * buf, int blen)
+INLINE static FIELD_CELL *
+After_Last_Whitespace_Character(FIELD_CELL *buf, int blen)
{
- char *p = &buf[blen];
-
- assert(buf && blen>=0);
- while( (p>buf) && !is_blank(p[-1]) )
+ FIELD_CELL *p = &buf[blen];
+
+ assert(buf && blen >= 0);
+ while ((p > buf) && !ISBLANK(p[-1]))
p--;
- return( p );
+ return (p);
}
/* Set this to 1 to use the div_t version. This is a good idea if your
compiler has an intrinsic div() support. Unfortunately GNU-C has it
- not yet.
+ not yet.
N.B.: This only works if form->curcol follows immediately form->currow
- and both are of type int.
+ and both are of type int.
*/
#define USE_DIV_T (0)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Adjust_Cursor_Position(
| FORM * form, const char * pos)
-|
-| Description : Set current row and column of the form to values
+|
+| Description : Set current row and column of the form to values
| corresponding to the buffer position.
|
| Return Values : -
+--------------------------------------------------------------------------*/
-INLINE static void Adjust_Cursor_Position(FORM * form, const char * pos)
+INLINE static void
+Adjust_Cursor_Position(FORM *form, const FIELD_CELL *pos)
{
FIELD *field;
int idx;
field = form->current;
- assert( pos >= field->buf && field->dcols > 0);
- idx = (int)( pos - field->buf );
+ assert(pos >= field->buf && field->dcols > 0);
+ idx = (int)(pos - field->buf);
#if USE_DIV_T
- *((div_t *)&(form->currow)) = div(idx,field->dcols);
+ *((div_t *) & (form->currow)) = div(idx, field->dcols);
#else
form->currow = idx / field->dcols;
form->curcol = idx - field->cols * form->currow;
-#endif
- if ( field->drows < form->currow )
+#endif
+ if (field->drows < form->currow)
form->currow = 0;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Buffer_To_Window(
| const FIELD * field,
| WINDOW * win)
-|
+|
| Description : Copy the buffer to the window. If it is a multi-line
| field, the buffer is split to the lines of the
| window without any editing.
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Buffer_To_Window(const FIELD * field, WINDOW * win)
+static void
+Buffer_To_Window(const FIELD *field, WINDOW *win)
{
int width, height;
+ int y, x;
int len;
int row;
- char *pBuffer;
+ FIELD_CELL *pBuffer;
assert(win && field);
- width = getmaxx(win);
+ getyx(win, y, x);
+ width = getmaxx(win);
height = getmaxy(win);
- for(row=0, pBuffer=field->buf;
- row < height;
- row++, pBuffer += width )
+ for (row = 0, pBuffer = field->buf;
+ row < height;
+ row++, pBuffer += width)
{
- if ((len = (int)( After_End_Of_Data( pBuffer, width ) - pBuffer )) > 0)
+ if ((len = (int)(After_End_Of_Data(pBuffer, width) - pBuffer)) > 0)
{
- wmove( win, row, 0 );
- waddnstr( win, pBuffer, len );
+ wmove(win, row, 0);
+ myADDNSTR(win, pBuffer, len);
}
- }
+ }
+ wmove(win, y, x);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Window_To_Buffer(
| WINDOW * win,
| FIELD * field)
-|
+|
| Description : Copy the content of the window into the buffer.
| The multiple lines of a window are simply
| concatenated into the buffer. Pad characters in
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Window_To_Buffer(WINDOW * win, FIELD * field)
+static void
+Window_To_Buffer(WINDOW *win, FIELD *field)
{
int pad;
int len = 0;
- char *p;
+ FIELD_CELL *p;
int row, height;
-
- assert(win && field && field->buf );
+
+ assert(win && field && field->buf);
pad = field->pad;
p = field->buf;
height = getmaxy(win);
- for(row=0; (row < height) && (row < field->drows); row++ )
+ for (row = 0; (row < height) && (row < field->drows); row++)
{
- wmove( win, row, 0 );
- len += winnstr( win, p+len, field->dcols );
+ wmove(win, row, 0);
+ len += myINNSTR(win, p + len, field->dcols);
}
- p[len] = '\0';
+ p[len] = myZEROS;
/* replace visual padding character by blanks in buffer */
if (pad != C_BLANK)
{
int i;
- for(i=0; i<len; i++, p++)
+
+ for (i = 0; i < len; i++, p++)
{
- if (*p==pad)
- *p = C_BLANK;
+ if ((unsigned long)CharOf(*p) == ChCharOf(pad)
+#if USE_WIDEC_SUPPORT
+ && p->chars[1] == 0
+#endif
+ && AttrOf(*p) == ChAttrOf(pad))
+ *p = myBLANK;
}
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Synchronize_Buffer(FORM * form)
-|
+|
| Description : If there was a change, copy the content of the
| window into the buffer, so the buffer is synchronized
| with the windows content. We have to indicate that the
|
| Return Values : -
+--------------------------------------------------------------------------*/
-INLINE static void Synchronize_Buffer(FORM * form)
+INLINE static void
+Synchronize_Buffer(FORM *form)
{
if (form->status & _WINDOW_MODIFIED)
{
form->status &= ~_WINDOW_MODIFIED;
- form->status |= _FCHECK_REQUIRED;
- Window_To_Buffer(form->w,form->current);
- wmove(form->w,form->currow,form->curcol);
+ form->status |= _FCHECK_REQUIRED;
+ Window_To_Buffer(form->w, form->current);
+ wmove(form->w, form->currow, form->curcol);
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Field_Grown( FIELD *field, int amount)
-|
+|
| Description : This function is called for growable dynamic fields
| only. It has to increase the buffers and to allocate
| a new window for this field.
| Return Values : TRUE - field successfully increased
| FALSE - there was some error
+--------------------------------------------------------------------------*/
-static bool Field_Grown(FIELD * field, int amount)
+static bool
+Field_Grown(FIELD *field, int amount)
{
bool result = FALSE;
int new_buflen;
int old_dcols = field->dcols;
int old_drows = field->drows;
- char *oldbuf = field->buf;
- char *newbuf;
+ FIELD_CELL *oldbuf = field->buf;
+ FIELD_CELL *newbuf;
int growth;
FORM *form = field->form;
- bool need_visual_update = ((form != (FORM *)0) &&
+ bool need_visual_update = ((form != (FORM *)0) &&
(form->status & _POSTED) &&
- (form->current==field));
-
+ (form->current == field));
+
if (need_visual_update)
Synchronize_Buffer(form);
-
+
if (single_line_field)
{
growth = field->cols * amount;
if (field->maxgrow)
- growth = Minimum(field->maxgrow - field->dcols,growth);
+ growth = Minimum(field->maxgrow - field->dcols, growth);
field->dcols += growth;
if (field->dcols == field->maxgrow)
field->status &= ~_MAY_GROW;
{
growth = (field->rows + field->nrow) * amount;
if (field->maxgrow)
- growth = Minimum(field->maxgrow - field->drows,growth);
+ growth = Minimum(field->maxgrow - field->drows, growth);
field->drows += growth;
if (field->drows == field->maxgrow)
field->status &= ~_MAY_GROW;
}
/* drows, dcols changed, so we get really the new buffer length */
new_buflen = Buffer_Length(field);
- newbuf=(char *)malloc((size_t)Total_Buffer_Size(field));
+ newbuf = (FIELD_CELL *)malloc(Total_Buffer_Size(field));
if (!newbuf)
- { /* restore to previous state */
+ {
+ /* restore to previous state */
field->dcols = old_dcols;
field->drows = old_drows;
- if (( single_line_field && (field->dcols!=field->maxgrow)) ||
- (!single_line_field && (field->drows!=field->maxgrow)))
+ if ((single_line_field && (field->dcols != field->maxgrow)) ||
+ (!single_line_field && (field->drows != field->maxgrow)))
field->status |= _MAY_GROW;
- return FALSE;
}
else
- { /* Copy all the buffers. This is the reason why we can't
- just use realloc().
- */
- int i;
- char *old_bp;
- char *new_bp;
-
+ {
+ /* Copy all the buffers. This is the reason why we can't just use
+ * realloc().
+ */
+ int i, j;
+ FIELD_CELL *old_bp;
+ FIELD_CELL *new_bp;
+
+ result = TRUE; /* allow sharing of recovery on failure */
+
field->buf = newbuf;
- for(i=0;i<=field->nbuf;i++)
+ for (i = 0; i <= field->nbuf; i++)
{
- new_bp = Address_Of_Nth_Buffer(field,i);
- old_bp = oldbuf + i*(1+old_buflen);
- memcpy(new_bp,old_bp,(size_t)old_buflen);
- if (new_buflen > old_buflen)
- memset(new_bp + old_buflen,C_BLANK,
- (size_t)(new_buflen - old_buflen));
- *(new_bp + new_buflen) = '\0';
+ new_bp = Address_Of_Nth_Buffer(field, i);
+ old_bp = oldbuf + i * (1 + old_buflen);
+ for (j = 0; j < old_buflen; ++j)
+ new_bp[j] = old_bp[j];
+ while (j < new_buflen)
+ new_bp[j++] = myBLANK;
+ new_bp[new_buflen] = myZEROS;
}
- if (need_visual_update)
- {
- WINDOW *new_window = newpad(field->drows,field->dcols);
- if (!new_window)
- { /* restore old state */
- field->dcols = old_dcols;
- field->drows = old_drows;
- field->buf = oldbuf;
- if (( single_line_field &&
- (field->dcols!=field->maxgrow)) ||
- (!single_line_field &&
- (field->drows!=field->maxgrow)))
- field->status |= _MAY_GROW;
- free( newbuf );
- return FALSE;
+#if USE_WIDEC_SUPPORT
+ if (wresize(field->working, 1, Buffer_Length(field) + 1) == ERR)
+ result = FALSE;
+#endif
+
+ if (need_visual_update && result)
+ {
+ WINDOW *new_window = newpad(field->drows, field->dcols);
+
+ if (new_window != 0)
+ {
+ assert(form != (FORM *)0);
+ if (form->w)
+ delwin(form->w);
+ form->w = new_window;
+ Set_Field_Window_Attributes(field, form->w);
+ werase(form->w);
+ Buffer_To_Window(field, form->w);
+ untouchwin(form->w);
+ wmove(form->w, form->currow, form->curcol);
}
- assert(form!=(FORM *)0);
- if (form->w)
- delwin(form->w);
- form->w = new_window;
- Set_Field_Window_Attributes(field,form->w);
- werase(form->w);
- Buffer_To_Window(field,form->w);
- untouchwin(form->w);
- wmove(form->w,form->currow,form->curcol);
+ else
+ result = FALSE;
}
- free(oldbuf);
- /* reflect changes in linked fields */
- if (field != field->link)
+ if (result)
{
- FIELD *linked_field;
- for(linked_field = field->link;
- linked_field!= field;
- linked_field = linked_field->link)
+ free(oldbuf);
+ /* reflect changes in linked fields */
+ if (field != field->link)
{
- linked_field->buf = field->buf;
- linked_field->drows = field->drows;
- linked_field->dcols = field->dcols;
+ FIELD *linked_field;
+
+ for (linked_field = field->link;
+ linked_field != field;
+ linked_field = linked_field->link)
+ {
+ linked_field->buf = field->buf;
+ linked_field->drows = field->drows;
+ linked_field->dcols = field->dcols;
+ }
}
}
- result = TRUE;
- }
+ else
+ {
+ /* restore old state */
+ field->dcols = old_dcols;
+ field->drows = old_drows;
+ field->buf = oldbuf;
+ if ((single_line_field &&
+ (field->dcols != field->maxgrow)) ||
+ (!single_line_field &&
+ (field->drows != field->maxgrow)))
+ field->status |= _MAY_GROW;
+ free(newbuf);
+ }
+ }
}
- return(result);
+ return (result);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int _nc_Position_Form_Cursor(FORM * form)
-|
+|
| Description : Position the cursor in the window for the current
-| field to be in sync. with the currow and curcol
+| field to be in sync. with the currow and curcol
| values.
|
| Return Values : E_OK - success
| field-window
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-_nc_Position_Form_Cursor (FORM * form)
+_nc_Position_Form_Cursor(FORM *form)
{
- FIELD *field;
+ FIELD *field;
WINDOW *formwin;
-
+
if (!form)
- return(E_BAD_ARGUMENT);
+ return (E_BAD_ARGUMENT);
- if (!form->w || !form->current)
- return(E_SYSTEM_ERROR);
+ if (!form->w || !form->current)
+ return (E_SYSTEM_ERROR);
- field = form->current;
- formwin = Get_Form_Window(form);
+ field = form->current;
+ formwin = Get_Form_Window(form);
- wmove( form->w, form->currow, form->curcol );
- if ( Has_Invisible_Parts(field) )
+ wmove(form->w, form->currow, form->curcol);
+ if (Has_Invisible_Parts(field))
{
/* in this case fieldwin isn't derived from formwin, so we have
- to move the cursor in formwin by hand... */
+ to move the cursor in formwin by hand... */
wmove(formwin,
field->frow + form->currow - form->toprow,
field->fcol + form->curcol - form->begincol);
wcursyncup(formwin);
}
- else
+ else
wcursyncup(form->w);
- return(E_OK);
+ return (E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int _nc_Refresh_Current_Field(FORM * form)
-|
+|
| Description : Propagate the changes in the fields window to the
| window of the form.
|
| E_SYSTEM_ERROR - general error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-_nc_Refresh_Current_Field (FORM * form)
+_nc_Refresh_Current_Field(FORM *form)
{
WINDOW *formwin;
- FIELD *field;
+ FIELD *field;
+
+ T((T_CALLED("_nc_Refresh_Current_Field(%p)"), form));
if (!form)
RETURN(E_BAD_ARGUMENT);
- if (!form->w || !form->current)
+ if (!form->w || !form->current)
RETURN(E_SYSTEM_ERROR);
- field = form->current;
- formwin = Get_Form_Window(form);
+ field = form->current;
+ formwin = Get_Form_Window(form);
if (field->opts & O_PUBLIC)
{
/* Again, in this case the fieldwin isn't derived from formwin,
so we have to perform a copy operation. */
if (Single_Line_Field(field))
- { /* horizontal scrolling */
+ {
+ /* horizontal scrolling */
if (form->curcol < form->begincol)
- form->begincol = form->curcol;
+ form->begincol = form->curcol;
else
{
if (form->curcol >= (form->begincol + field->cols))
- form->begincol = form->curcol - field->cols + 1;
+ form->begincol = form->curcol - field->cols + 1;
}
copywin(form->w,
formwin,
0);
}
else
- { /* A multi-line, i.e. vertical scrolling field */
- int row_after_bottom,first_modified_row,first_unmodified_row;
+ {
+ /* A multi-line, i.e. vertical scrolling field */
+ int row_after_bottom, first_modified_row, first_unmodified_row;
if (field->drows > field->rows)
{
field->status |= _NEWTOP;
}
if (field->status & _NEWTOP)
- { /* means we have to copy whole range */
+ {
+ /* means we have to copy whole range */
first_modified_row = form->toprow;
first_unmodified_row = first_modified_row + field->rows;
field->status &= ~_NEWTOP;
}
- else
- { /* we try to optimize : finding the range of touched
- lines */
+ else
+ {
+ /* we try to optimize : finding the range of touched
+ lines */
first_modified_row = form->toprow;
- while(first_modified_row < row_after_bottom)
+ while (first_modified_row < row_after_bottom)
{
- if (is_linetouched(form->w,first_modified_row))
+ if (is_linetouched(form->w, first_modified_row))
break;
first_modified_row++;
}
first_unmodified_row = first_modified_row;
- while(first_unmodified_row < row_after_bottom)
+ while (first_unmodified_row < row_after_bottom)
{
- if (!is_linetouched(form->w,first_unmodified_row))
+ if (!is_linetouched(form->w, first_unmodified_row))
break;
first_unmodified_row++;
}
}
else
{
- first_modified_row = form->toprow;
+ first_modified_row = form->toprow;
first_unmodified_row = first_modified_row + field->rows;
}
if (first_unmodified_row != first_modified_row)
wsyncup(formwin);
}
else
- { /* if the field-window is simply a derived window, i.e. contains
- no invisible parts, the whole thing is trivial
- */
+ {
+ /* if the field-window is simply a derived window, i.e. contains no
+ * invisible parts, the whole thing is trivial
+ */
wsyncup(form->w);
}
}
untouchwin(form->w);
- return _nc_Position_Form_Cursor(form);
+ returnCode(_nc_Position_Form_Cursor(form));
}
-
+
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Perform_Justification(
| FIELD * field,
| WINDOW * win)
-|
-| Description : Output field with requested justification
+|
+| Description : Output field with requested justification
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Perform_Justification(FIELD * field, WINDOW * win)
+static void
+Perform_Justification(FIELD *field, WINDOW *win)
{
- char *bp;
+ FIELD_CELL *bp;
int len;
- int col = 0;
+ int col = 0;
- bp = Get_Start_Of_Data(field->buf,Buffer_Length(field));
- len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field)) - bp);
+ bp = Get_Start_Of_Data(field->buf, Buffer_Length(field));
+ len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp);
- if (len>0)
+ if (len > 0)
{
assert(win && (field->drows == 1) && (field->dcols == field->cols));
- switch(field->just)
+ switch (field->just)
{
case JUSTIFY_LEFT:
break;
case JUSTIFY_CENTER:
- col = (field->cols - len)/2;
+ col = (field->cols - len) / 2;
break;
case JUSTIFY_RIGHT:
col = field->cols - len;
break;
}
- wmove(win,0,col);
- waddnstr(win,bp,len);
+ wmove(win, 0, col);
+ myADDNSTR(win, bp, len);
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static void Undo_Justification(
| FIELD * field,
| WINDOW * win)
-|
+|
| Description : Display field without any justification, i.e.
| left justified
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Undo_Justification(FIELD * field, WINDOW * win)
+static void
+Undo_Justification(FIELD *field, WINDOW *win)
{
- char *bp;
+ FIELD_CELL *bp;
int len;
- bp = Get_Start_Of_Data(field->buf,Buffer_Length(field));
- len = (int)(After_End_Of_Data(field->buf,Buffer_Length(field))-bp);
+ bp = Get_Start_Of_Data(field->buf, Buffer_Length(field));
+ len = (int)(After_End_Of_Data(field->buf, Buffer_Length(field)) - bp);
- if (len>0)
+ if (len > 0)
{
assert(win);
- wmove(win,0,0);
- waddnstr(win,bp,len);
+ wmove(win, 0, 0);
+ myADDNSTR(win, bp, len);
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Check_Char(
| FIELDTYPE * typ,
| int ch,
| TypeArgument *argp)
-|
+|
| Description : Perform a single character check for character ch
-| according to the fieldtype instance.
+| according to the fieldtype instance.
|
| Return Values : TRUE - Character is valid
| FALSE - Character is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Char(FIELDTYPE * typ, int ch, TypeArgument *argp)
+static bool
+Check_Char(FIELDTYPE *typ, int ch, TypeArgument *argp)
{
- if (typ)
+ if (typ)
{
if (typ->status & _LINKED_TYPE)
{
assert(argp);
- return(
- Check_Char(typ->left ,ch,argp->left ) ||
- Check_Char(typ->right,ch,argp->right) );
- }
- else
+ return (
+ Check_Char(typ->left, ch, argp->left) ||
+ Check_Char(typ->right, ch, argp->right));
+ }
+ else
{
if (typ->ccheck)
- return typ->ccheck(ch,(void *)argp);
+ return typ->ccheck(ch, (void *)argp);
}
}
- return (isprint((unsigned char)ch) ? TRUE : FALSE);
+ return (!iscntrl(UChar(ch)) ? TRUE : FALSE);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Display_Or_Erase_Field(
| FIELD * field,
| bool bEraseFlag)
-|
+|
| Description : Create a subwindow for the field and display the
| buffer contents (apply justification if required)
| or simply erase the field.
| Return Values : E_OK - on success
| E_SYSTEM_ERROR - some error (typical no memory)
+--------------------------------------------------------------------------*/
-static int Display_Or_Erase_Field(FIELD * field, bool bEraseFlag)
+static int
+Display_Or_Erase_Field(FIELD *field, bool bEraseFlag)
{
WINDOW *win;
WINDOW *fwin;
return E_SYSTEM_ERROR;
fwin = Get_Form_Window(field->form);
- win = derwin(fwin,
- field->rows,field->cols,field->frow,field->fcol);
+ win = derwin(fwin,
+ field->rows, field->cols, field->frow, field->fcol);
- if (!win)
+ if (!win)
return E_SYSTEM_ERROR;
else
{
if (field->opts & O_VISIBLE)
- Set_Field_Window_Attributes(field,win);
+ Set_Field_Window_Attributes(field, win);
else
- wattrset(win,getattrs(fwin));
+ wattrset(win, getattrs(fwin));
werase(win);
}
if (field->opts & O_PUBLIC)
{
if (Justification_Allowed(field))
- Perform_Justification(field,win);
+ Perform_Justification(field, win);
else
- Buffer_To_Window(field,win);
+ Buffer_To_Window(field, win);
}
field->status &= ~_NEWTOP;
}
#define Erase_Field(field) Display_Or_Erase_Field(field,TRUE)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Synchronize_Field(FIELD * field)
-|
+|
| Description : Synchronize the windows content with the value in
| the buffer.
|
| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
+| E_BAD_ARGUMENT - invalid field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
-static int Synchronize_Field(FIELD * field)
+static int
+Synchronize_Field(FIELD *field)
{
FORM *form;
int res = E_OK;
if (!field)
- return(E_BAD_ARGUMENT);
+ return (E_BAD_ARGUMENT);
- if (((form=field->form) != (FORM *)0)
+ if (((form = field->form) != (FORM *)0)
&& Field_Really_Appears(field))
{
if (field == form->current)
- {
- form->currow = form->curcol = form->toprow = form->begincol = 0;
+ {
+ form->currow = form->curcol = form->toprow = form->begincol = 0;
werase(form->w);
-
- if ( (field->opts & O_PUBLIC) && Justification_Allowed(field) )
- Undo_Justification( field, form->w );
+
+ if ((field->opts & O_PUBLIC) && Justification_Allowed(field))
+ Undo_Justification(field, form->w);
else
- Buffer_To_Window( field, form->w );
-
+ Buffer_To_Window(field, form->w);
+
field->status |= _NEWTOP;
- res = _nc_Refresh_Current_Field( form );
+ res = _nc_Refresh_Current_Field(form);
}
else
- res = Display_Field( field );
+ res = Display_Field(field);
}
field->status |= _CHANGED;
- return(res);
+ return (res);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Synchronize_Linked_Fields(FIELD * field)
-|
+|
| Description : Propagate the Synchronize_Field function to all linked
| fields. The first error that occurs in the sequence
| of updates is the return value.
|
| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
+| E_BAD_ARGUMENT - invalid field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
-static int Synchronize_Linked_Fields(FIELD * field)
+static int
+Synchronize_Linked_Fields(FIELD *field)
{
FIELD *linked_field;
int res = E_OK;
int syncres;
if (!field)
- return(E_BAD_ARGUMENT);
+ return (E_BAD_ARGUMENT);
if (!field->link)
- return(E_SYSTEM_ERROR);
+ return (E_SYSTEM_ERROR);
- for(linked_field = field->link;
- linked_field!= field;
- linked_field = linked_field->link )
+ for (linked_field = field->link;
+ linked_field != field;
+ linked_field = linked_field->link)
{
- if (((syncres=Synchronize_Field(linked_field)) != E_OK) &&
- (res==E_OK))
+ if (((syncres = Synchronize_Field(linked_field)) != E_OK) &&
+ (res == E_OK))
res = syncres;
}
- return(res);
+ return (res);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int _nc_Synchronize_Attributes(FIELD * field)
-|
+|
| Description : If a fields visual attributes have changed, this
| routine is called to propagate those changes to the
-| screen.
+| screen.
|
| Return Values : E_OK - success
| E_BAD_ARGUMENT - invalid field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-_nc_Synchronize_Attributes (FIELD * field)
+_nc_Synchronize_Attributes(FIELD *field)
{
FORM *form;
int res = E_OK;
WINDOW *formwin;
+ T((T_CALLED("_nc_Synchronize_Attributes(%p)"), field));
+
if (!field)
- return(E_BAD_ARGUMENT);
+ returnCode(E_BAD_ARGUMENT);
- if (((form=field->form) != (FORM *)0)
+ CHECKPOS(field->form);
+ if (((form = field->form) != (FORM *)0)
&& Field_Really_Appears(field))
- {
- if (form->current==field)
+ {
+ if (form->current == field)
{
Synchronize_Buffer(form);
- Set_Field_Window_Attributes(field,form->w);
+ Set_Field_Window_Attributes(field, form->w);
werase(form->w);
+ wmove(form->w, form->currow, form->curcol);
+
if (field->opts & O_PUBLIC)
{
if (Justification_Allowed(field))
- Undo_Justification(field,form->w);
- else
- Buffer_To_Window(field,form->w);
+ Undo_Justification(field, form->w);
+ else
+ Buffer_To_Window(field, form->w);
}
- else
+ else
{
- formwin = Get_Form_Window(form);
- copywin(form->w,formwin,
- 0,0,
- field->frow,field->fcol,
- field->rows-1,field->cols-1,0);
+ formwin = Get_Form_Window(form);
+ copywin(form->w, formwin,
+ 0, 0,
+ field->frow, field->fcol,
+ field->rows - 1, field->cols - 1, 0);
wsyncup(formwin);
- Buffer_To_Window(field,form->w);
- field->status |= _NEWTOP; /* fake refresh to paint all */
+ Buffer_To_Window(field, form->w);
+ field->status |= _NEWTOP; /* fake refresh to paint all */
_nc_Refresh_Current_Field(form);
}
}
- else
+ else
{
res = Display_Field(field);
}
}
- return(res);
+ CHECKPOS(form);
+ returnCode(res);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int _nc_Synchronize_Options(FIELD * field,
| Field_Options newopts)
-|
+|
| Description : If a fields options have changed, this routine is
| called to propagate these changes to the screen and
| to really change the behavior of the field.
|
| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid field pointer
+| E_BAD_ARGUMENT - invalid field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-_nc_Synchronize_Options
-(FIELD *field, Field_Options newopts)
+_nc_Synchronize_Options(FIELD *field, Field_Options newopts)
{
Field_Options oldopts;
Field_Options changed_opts;
FORM *form;
int res = E_OK;
+ T((T_CALLED("_nc_Synchronize_Options(%p,%#x)"), field, newopts));
+
if (!field)
- return(E_BAD_ARGUMENT);
+ returnCode(E_BAD_ARGUMENT);
- oldopts = field->opts;
+ oldopts = field->opts;
changed_opts = oldopts ^ newopts;
- field->opts = newopts;
- form = field->form;
+ field->opts = newopts;
+ form = field->form;
if (form)
{
if (form->current == field)
{
field->opts = oldopts;
- return(E_CURRENT);
+ returnCode(E_CURRENT);
}
if (form->status & _POSTED)
int res2 = E_OK;
if (newopts & O_STATIC)
- { /* the field becomes now static */
+ {
+ /* the field becomes now static */
field->status &= ~_MAY_GROW;
/* if actually we have no hidden columns, justification may
occur again */
- if (single_line_field &&
- (field->cols == field->dcols) &&
+ if (single_line_field &&
+ (field->cols == field->dcols) &&
(field->just != NO_JUSTIFICATION) &&
Field_Really_Appears(field))
{
}
}
else
- { /* field is no longer static */
- if ((field->maxgrow==0) ||
- ( single_line_field && (field->dcols < field->maxgrow)) ||
+ {
+ /* field is no longer static */
+ if ((field->maxgrow == 0) ||
+ (single_line_field && (field->dcols < field->maxgrow)) ||
(!single_line_field && (field->drows < field->maxgrow)))
{
field->status |= _MAY_GROW;
/* a field with justification now changes its behavior,
- so we must redisplay it */
- if (single_line_field &&
+ so we must redisplay it */
+ if (single_line_field &&
(field->just != NO_JUSTIFICATION) &&
Field_Really_Appears(field))
{
res2 = Display_Field(field);
- }
- }
+ }
+ }
}
if (res2 != E_OK)
res = res2;
}
- return(res);
+ returnCode(res);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int _nc_Set_Current_Field(FORM * form,
| FIELD * newfield)
-|
+|
| Description : Make the newfield the new current field.
|
| Return Values : E_OK - success
-| E_BAD_ARGUMENT - invalid form or field pointer
+| E_BAD_ARGUMENT - invalid form or field pointer
| E_SYSTEM_ERROR - some severe basic error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-_nc_Set_Current_Field
-(FORM *form, FIELD *newfield)
+_nc_Set_Current_Field(FORM *form, FIELD *newfield)
{
- FIELD *field;
+ FIELD *field;
WINDOW *new_window;
- if (!form || !newfield || !form->current || (newfield->form!=form))
- return(E_BAD_ARGUMENT);
+ T((T_CALLED("_nc_Set_Current_Field(%p,%p)"), form, newfield));
+
+ if (!form || !newfield || !form->current || (newfield->form != form))
+ returnCode(E_BAD_ARGUMENT);
- if ( (form->status & _IN_DRIVER) )
- return(E_BAD_STATE);
+ if ((form->status & _IN_DRIVER))
+ returnCode(E_BAD_STATE);
if (!(form->field))
- return(E_NOT_CONNECTED);
+ returnCode(E_NOT_CONNECTED);
field = form->current;
-
- if ((field!=newfield) ||
+
+ if ((field != newfield) ||
!(form->status & _POSTED))
{
- if ((form->w) &&
+ if ((form->w) &&
(field->opts & O_VISIBLE) &&
(field->form->curpage == field->page))
{
{
if (field->drows > field->rows)
{
- if (form->toprow==0)
+ if (form->toprow == 0)
field->status &= ~_NEWTOP;
- else
+ else
field->status |= _NEWTOP;
- }
- else
+ }
+ else
{
if (Justification_Allowed(field))
{
- Window_To_Buffer(form->w,field);
+ Window_To_Buffer(form->w, field);
werase(form->w);
- Perform_Justification(field,form->w);
+ Perform_Justification(field, form->w);
wsyncup(form->w);
}
}
delwin(form->w);
form->w = (WINDOW *)0;
}
-
+
field = newfield;
if (Has_Invisible_Parts(field))
- new_window = newpad(field->drows,field->dcols);
- else
+ new_window = newpad(field->drows, field->dcols);
+ else
new_window = derwin(Get_Form_Window(form),
- field->rows,field->cols,field->frow,field->fcol);
+ field->rows, field->cols, field->frow, field->fcol);
- if (!new_window)
- return(E_SYSTEM_ERROR);
+ if (!new_window)
+ returnCode(E_SYSTEM_ERROR);
form->current = field;
if (form->w)
delwin(form->w);
- form->w = new_window;
+ form->w = new_window;
form->status &= ~_WINDOW_MODIFIED;
- Set_Field_Window_Attributes(field,form->w);
+ Set_Field_Window_Attributes(field, form->w);
if (Has_Invisible_Parts(field))
{
werase(form->w);
- Buffer_To_Window(field,form->w);
- }
- else
+ Buffer_To_Window(field, form->w);
+ }
+ else
{
if (Justification_Allowed(field))
{
werase(form->w);
- Undo_Justification(field,form->w);
+ Undo_Justification(field, form->w);
wsyncup(form->w);
}
}
}
form->currow = form->curcol = form->toprow = form->begincol = 0;
- return(E_OK);
+ returnCode(E_OK);
}
-\f
+
/*----------------------------------------------------------------------------
Intra-Field Navigation routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Next_Character(FORM * form)
-|
+|
| Description : Move to the next character in the field. In a multi-line
| field this wraps at the end of the line.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - at the rightmost position
+--------------------------------------------------------------------------*/
-static int IFN_Next_Character(FORM * form)
+static int
+IFN_Next_Character(FORM *form)
{
FIELD *field = form->current;
-
- if ((++(form->curcol))==field->dcols)
+ int step = myWCWIDTH(form->w, form->currow, form->curcol);
+
+ T((T_CALLED("IFN_Next_Character(%p)"), form));
+ if ((form->curcol += step) == field->dcols)
{
- if ((++(form->currow))==field->drows)
+ if ((++(form->currow)) == field->drows)
{
#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1)) {
- form->curcol = 0;
- return(E_OK);
- }
+ if (!Single_Line_Field(field) && Field_Grown(field, 1))
+ {
+ form->curcol = 0;
+ returnCode(E_OK);
+ }
#endif
form->currow--;
#if GROW_IF_NAVIGATE
- if (Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
+ if (Single_Line_Field(field) && Field_Grown(field, 1))
+ returnCode(E_OK);
#endif
- form->curcol--;
- return(E_REQUEST_DENIED);
+ form->curcol -= step;
+ returnCode(E_REQUEST_DENIED);
}
form->curcol = 0;
}
- return(E_OK);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Previous_Character(FORM * form)
-|
-| Description : Move to the previous character in the field. In a
-| multi-line field this wraps and the beginning of the
+|
+| Description : Move to the previous character in the field. In a
+| multi-line field this wraps and the beginning of the
| line.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - at the leftmost position
+--------------------------------------------------------------------------*/
-static int IFN_Previous_Character(FORM * form)
+static int
+IFN_Previous_Character(FORM *form)
{
- if ((--(form->curcol))<0)
+ int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1);
+ int oldcol = form->curcol;
+
+ T((T_CALLED("IFN_Previous_Character(%p)"), form));
+ if ((form->curcol -= amount) < 0)
{
- if ((--(form->currow))<0)
+ if ((--(form->currow)) < 0)
{
form->currow++;
- form->curcol++;
- return(E_REQUEST_DENIED);
+ form->curcol = oldcol;
+ returnCode(E_REQUEST_DENIED);
}
form->curcol = form->current->dcols - 1;
}
- return(E_OK);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Next_Line(FORM * form)
-|
+|
| Description : Move to the beginning of the next line in the field
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - at the last line
+--------------------------------------------------------------------------*/
-static int IFN_Next_Line(FORM * form)
+static int
+IFN_Next_Line(FORM *form)
{
FIELD *field = form->current;
- if ((++(form->currow))==field->drows)
+ T((T_CALLED("IFN_Next_Line(%p)"), form));
+ if ((++(form->currow)) == field->drows)
{
#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
+ if (!Single_Line_Field(field) && Field_Grown(field, 1))
+ returnCode(E_OK);
#endif
form->currow--;
- return(E_REQUEST_DENIED);
+ returnCode(E_REQUEST_DENIED);
}
form->curcol = 0;
- return(E_OK);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Previous_Line(FORM * form)
-|
+|
| Description : Move to the beginning of the previous line in the field
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - at the first line
+--------------------------------------------------------------------------*/
-static int IFN_Previous_Line(FORM * form)
+static int
+IFN_Previous_Line(FORM *form)
{
- if ( (--(form->currow)) < 0 )
+ T((T_CALLED("IFN_Previous_Line(%p)"), form));
+ if ((--(form->currow)) < 0)
{
form->currow++;
- return(E_REQUEST_DENIED);
+ returnCode(E_REQUEST_DENIED);
}
form->curcol = 0;
- return(E_OK);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Next_Word(FORM * form)
-|
+|
| Description : Move to the beginning of the next word in the field.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - there is no next word
+--------------------------------------------------------------------------*/
-static int IFN_Next_Word(FORM * form)
+static int
+IFN_Next_Word(FORM *form)
{
FIELD *field = form->current;
- char *bp = Address_Of_Current_Position_In_Buffer(form);
- char *s;
- char *t;
+ FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form);
+ FIELD_CELL *s;
+ FIELD_CELL *t;
+
+ T((T_CALLED("IFN_Next_Word(%p)"), form));
/* We really need access to the data, so we have to synchronize */
Synchronize_Buffer(form);
/* Go to the first whitespace after the current position (including
current position). This is then the starting point to look for the
- next non-blank data */
- s = Get_First_Whitespace_Character(bp,Buffer_Length(field) -
+ next non-blank data */
+ s = Get_First_Whitespace_Character(bp, Buffer_Length(field) -
(int)(bp - field->buf));
/* Find the start of the next word */
- t = Get_Start_Of_Data(s,Buffer_Length(field) -
+ t = Get_Start_Of_Data(s, Buffer_Length(field) -
(int)(s - field->buf));
#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
+ if (s == t)
+ returnCode(E_REQUEST_DENIED);
else
#endif
{
- Adjust_Cursor_Position(form,t);
- return(E_OK);
+ Adjust_Cursor_Position(form, t);
+ returnCode(E_OK);
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Previous_Word(FORM * form)
-|
+|
| Description : Move to the beginning of the previous word in the field.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - there is no previous word
+--------------------------------------------------------------------------*/
-static int IFN_Previous_Word(FORM * form)
+static int
+IFN_Previous_Word(FORM *form)
{
FIELD *field = form->current;
- char *bp = Address_Of_Current_Position_In_Buffer(form);
- char *s;
- char *t;
- bool again = FALSE;
+ FIELD_CELL *bp = Address_Of_Current_Position_In_Buffer(form);
+ FIELD_CELL *s;
+ FIELD_CELL *t;
+ bool again = FALSE;
+
+ T((T_CALLED("IFN_Previous_Word(%p)"), form));
/* We really need access to the data, so we have to synchronize */
Synchronize_Buffer(form);
- s = After_End_Of_Data(field->buf,(int)(bp-field->buf));
+ s = After_End_Of_Data(field->buf, (int)(bp - field->buf));
/* s points now right after the last non-blank in the buffer before bp.
If bp was in a word, s equals bp. In this case we must find the last
whitespace in the buffer before bp and repeat the game to really find
the previous word! */
- if (s==bp)
+ if (s == bp)
again = TRUE;
-
+
/* And next call now goes backward to look for the last whitespace
before that, pointing right after this, so it points to the begin
- of the previous word.
- */
- t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
+ of the previous word.
+ */
+ t = After_Last_Whitespace_Character(field->buf, (int)(s - field->buf));
#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
+ if (s == t)
+ returnCode(E_REQUEST_DENIED);
#endif
if (again)
- { /* and do it again, replacing bp by t */
- s = After_End_Of_Data(field->buf,(int)(t - field->buf));
- t = After_Last_Whitespace_Character(field->buf,(int)(s - field->buf));
+ {
+ /* and do it again, replacing bp by t */
+ s = After_End_Of_Data(field->buf, (int)(t - field->buf));
+ t = After_Last_Whitespace_Character(field->buf, (int)(s - field->buf));
#if !FRIENDLY_PREV_NEXT_WORD
- if (s==t)
- return(E_REQUEST_DENIED);
+ if (s == t)
+ returnCode(E_REQUEST_DENIED);
#endif
}
- Adjust_Cursor_Position(form,t);
- return(E_OK);
+ Adjust_Cursor_Position(form, t);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Beginning_Of_Field(FORM * form)
-|
+|
| Description : Place the cursor at the first non-pad character in
-| the field.
+| the field.
|
-| Return Values : E_OK - success
+| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Field(FORM * form)
+static int
+IFN_Beginning_Of_Field(FORM *form)
{
FIELD *field = form->current;
+ T((T_CALLED("IFN_Beginning_Of_Field(%p)"), form));
Synchronize_Buffer(form);
Adjust_Cursor_Position(form,
- Get_Start_Of_Data(field->buf,Buffer_Length(field)));
- return(E_OK);
+ Get_Start_Of_Data(field->buf, Buffer_Length(field)));
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_End_Of_Field(FORM * form)
-|
+|
| Description : Place the cursor after the last non-pad character in
| the field. If the field occupies the last position in
-| the buffer, the cursor is positioned on the last
+| the buffer, the cursor is positioned on the last
| character.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int IFN_End_Of_Field(FORM * form)
+static int
+IFN_End_Of_Field(FORM *form)
{
FIELD *field = form->current;
- char *pos;
+ FIELD_CELL *pos;
+ T((T_CALLED("IFN_End_Of_Field(%p)"), form));
Synchronize_Buffer(form);
- pos = After_End_Of_Data(field->buf,Buffer_Length(field));
- if (pos==(field->buf + Buffer_Length(field)))
+ pos = After_End_Of_Data(field->buf, Buffer_Length(field));
+ if (pos == (field->buf + Buffer_Length(field)))
pos--;
- Adjust_Cursor_Position(form,pos);
- return(E_OK);
+ Adjust_Cursor_Position(form, pos);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Beginning_Of_Line(FORM * form)
-|
+|
| Description : Place the cursor on the first non-pad character in
| the current line of the field.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int IFN_Beginning_Of_Line(FORM * form)
+static int
+IFN_Beginning_Of_Line(FORM *form)
{
FIELD *field = form->current;
+ T((T_CALLED("IFN_Beginning_Of_Line(%p)"), form));
Synchronize_Buffer(form);
Adjust_Cursor_Position(form,
- Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form),
- field->dcols));
- return(E_OK);
+ Get_Start_Of_Data(Address_Of_Current_Row_In_Buffer(form),
+ field->dcols));
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_End_Of_Line(FORM * form)
-|
+|
| Description : Place the cursor after the last non-pad character in the
-| current line of the field. If the field occupies the
+| current line of the field. If the field occupies the
| last column in the line, the cursor is positioned on the
| last character of the line.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int IFN_End_Of_Line(FORM * form)
+static int
+IFN_End_Of_Line(FORM *form)
{
FIELD *field = form->current;
- char *pos;
- char *bp;
+ FIELD_CELL *pos;
+ FIELD_CELL *bp;
+ T((T_CALLED("IFN_End_Of_Line(%p)"), form));
Synchronize_Buffer(form);
- bp = Address_Of_Current_Row_In_Buffer(form);
- pos = After_End_Of_Data(bp,field->dcols);
+ bp = Address_Of_Current_Row_In_Buffer(form);
+ pos = After_End_Of_Data(bp, field->dcols);
if (pos == (bp + field->dcols))
pos--;
- Adjust_Cursor_Position(form,pos);
- return(E_OK);
+ Adjust_Cursor_Position(form, pos);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Left_Character(FORM * form)
-|
+|
| Description : Move one character to the left in the current line.
-| This doesn't cycle.
+| This doesn't cycle.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - already in first column
+--------------------------------------------------------------------------*/
-static int IFN_Left_Character(FORM * form)
+static int
+IFN_Left_Character(FORM *form)
{
- if ( (--(form->curcol)) < 0 )
+ int amount = myWCWIDTH(form->w, form->currow, form->curcol - 1);
+ int oldcol = form->curcol;
+
+ T((T_CALLED("IFN_Left_Character(%p)"), form));
+ if ((form->curcol -= amount) < 0)
{
- form->curcol++;
- return(E_REQUEST_DENIED);
+ form->curcol = oldcol;
+ returnCode(E_REQUEST_DENIED);
}
- return(E_OK);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Right_Character(FORM * form)
-|
+|
| Description : Move one character to the right in the current line.
| This doesn't cycle.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - already in last column
+--------------------------------------------------------------------------*/
-static int IFN_Right_Character(FORM * form)
+static int
+IFN_Right_Character(FORM *form)
{
- if ( (++(form->curcol)) == form->current->dcols )
+ int amount = myWCWIDTH(form->w, form->currow, form->curcol);
+ int oldcol = form->curcol;
+
+ T((T_CALLED("IFN_Right_Character(%p)"), form));
+ if ((form->curcol += amount) >= form->current->dcols)
{
#if GROW_IF_NAVIGATE
FIELD *field = form->current;
- if (Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
+
+ if (Single_Line_Field(field) && Field_Grown(field, 1))
+ returnCode(E_OK);
#endif
- --(form->curcol);
- return(E_REQUEST_DENIED);
+ form->curcol = oldcol;
+ returnCode(E_REQUEST_DENIED);
}
- return(E_OK);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Up_Character(FORM * form)
-|
+|
| Description : Move one line up. This doesn't cycle through the lines
| of the field.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - already in last column
+--------------------------------------------------------------------------*/
-static int IFN_Up_Character(FORM * form)
+static int
+IFN_Up_Character(FORM *form)
{
- if ( (--(form->currow)) < 0 )
+ T((T_CALLED("IFN_Up_Character(%p)"), form));
+ if ((--(form->currow)) < 0)
{
form->currow++;
- return(E_REQUEST_DENIED);
+ returnCode(E_REQUEST_DENIED);
}
- return(E_OK);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int IFN_Down_Character(FORM * form)
-|
+|
| Description : Move one line down. This doesn't cycle through the
| lines of the field.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - already in last column
+--------------------------------------------------------------------------*/
-static int IFN_Down_Character(FORM * form)
+static int
+IFN_Down_Character(FORM *form)
{
FIELD *field = form->current;
- if ( (++(form->currow)) == field->drows )
+ T((T_CALLED("IFN_Down_Character(%p)"), form));
+ if ((++(form->currow)) == field->drows)
{
#if GROW_IF_NAVIGATE
- if (!Single_Line_Field(field) && Field_Grown(field,1))
- return(E_OK);
+ if (!Single_Line_Field(field) && Field_Grown(field, 1))
+ returnCode(E_OK);
#endif
--(form->currow);
- return(E_REQUEST_DENIED);
+ returnCode(E_REQUEST_DENIED);
}
- return(E_OK);
+ returnCode(E_OK);
}
/*----------------------------------------------------------------------------
- END of Intra-Field Navigation routines
+ END of Intra-Field Navigation routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Vertical scrolling helper routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int VSC_Generic(FORM *form, int lines)
+| Facility : libnform
+| Function : static int VSC_Generic(FORM *form, int nlines)
|
-| Description : Scroll multi-line field forward (lines>0) or
-| backward (lines<0) this many lines.
+| Description : Scroll multi-line field forward (nlines>0) or
+| backward (nlines<0) this many lines.
|
-| Return Values : E_OK - success
+| Return Values : E_OK - success
| E_REQUEST_DENIED - can't scroll
+--------------------------------------------------------------------------*/
-static int VSC_Generic(FORM *form, int lines)
+static int
+VSC_Generic(FORM *form, int nlines)
{
FIELD *field = form->current;
int res = E_REQUEST_DENIED;
- int rows_to_go = (lines > 0 ? lines : -lines);
+ int rows_to_go = (nlines > 0 ? nlines : -nlines);
- if (lines > 0)
+ if (nlines > 0)
{
- if ( (rows_to_go + form->toprow) > (field->drows - field->rows) )
+ if ((rows_to_go + form->toprow) > (field->drows - field->rows))
rows_to_go = (field->drows - field->rows - form->toprow);
if (rows_to_go > 0)
{
if (rows_to_go > form->toprow)
rows_to_go = form->toprow;
-
+
if (rows_to_go > 0)
{
form->currow -= rows_to_go;
res = E_OK;
}
}
- return(res);
+ return (res);
}
/*----------------------------------------------------------------------------
End of Vertical scrolling helper routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Vertical scrolling routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Vertical_Scrolling(
| int (* const fct) (FORM *),
| FORM * form)
-|
-| Description : Performs the generic vertical scrolling routines.
+|
+| Description : Performs the generic vertical scrolling routines.
| This has to check for a multi-line field and to set
| the _NEWTOP flag if scrolling really occurred.
|
| Return Values : Propagated error code from low-level driver calls
+--------------------------------------------------------------------------*/
-static int Vertical_Scrolling(int (* const fct) (FORM *), FORM * form)
+static int
+Vertical_Scrolling(int (*const fct) (FORM *), FORM *form)
{
int res = E_REQUEST_DENIED;
if (res == E_OK)
form->current->status |= _NEWTOP;
}
- return(res);
+ return (res);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int VSC_Scroll_Line_Forward(FORM * form)
-|
+|
| Description : Scroll multi-line field forward a line
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data ahead
+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Forward(FORM * form)
+static int
+VSC_Scroll_Line_Forward(FORM *form)
{
- return VSC_Generic(form,1);
+ T((T_CALLED("VSC_Scroll_Line_Forward(%p)"), form));
+ returnCode(VSC_Generic(form, 1));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int VSC_Scroll_Line_Backward(FORM * form)
-|
+|
| Description : Scroll multi-line field backward a line
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data behind
+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Line_Backward(FORM * form)
+static int
+VSC_Scroll_Line_Backward(FORM *form)
{
- return VSC_Generic(form,-1);
+ T((T_CALLED("VSC_Scroll_Line_Backward(%p)"), form));
+ returnCode(VSC_Generic(form, -1));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int VSC_Scroll_Page_Forward(FORM * form)
-|
+|
| Description : Scroll a multi-line field forward a page
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data ahead
+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Forward(FORM * form)
+static int
+VSC_Scroll_Page_Forward(FORM *form)
{
- return VSC_Generic(form,form->current->rows);
+ T((T_CALLED("VSC_Scroll_Page_Forward(%p)"), form));
+ returnCode(VSC_Generic(form, form->current->rows));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int VSC_Scroll_Half_Page_Forward(FORM * form)
-|
+|
| Description : Scroll a multi-line field forward half a page
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data ahead
+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Forward(FORM * form)
+static int
+VSC_Scroll_Half_Page_Forward(FORM *form)
{
- return VSC_Generic(form,(form->current->rows + 1)/2);
+ T((T_CALLED("VSC_Scroll_Half_Page_Forward(%p)"), form));
+ returnCode(VSC_Generic(form, (form->current->rows + 1) / 2));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int VSC_Scroll_Page_Backward(FORM * form)
-|
+|
| Description : Scroll a multi-line field backward a page
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data behind
+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Page_Backward(FORM * form)
+static int
+VSC_Scroll_Page_Backward(FORM *form)
{
- return VSC_Generic(form, -(form->current->rows));
+ T((T_CALLED("VSC_Scroll_Page_Backward(%p)"), form));
+ returnCode(VSC_Generic(form, -(form->current->rows)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int VSC_Scroll_Half_Page_Backward(FORM * form)
-|
+|
| Description : Scroll a multi-line field backward half a page
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data behind
+--------------------------------------------------------------------------*/
-static int VSC_Scroll_Half_Page_Backward(FORM * form)
+static int
+VSC_Scroll_Half_Page_Backward(FORM *form)
{
- return VSC_Generic(form, -((form->current->rows + 1)/2));
+ T((T_CALLED("VSC_Scroll_Half_Page_Backward(%p)"), form));
+ returnCode(VSC_Generic(form, -((form->current->rows + 1) / 2)));
}
/*----------------------------------------------------------------------------
End of Vertical scrolling routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Horizontal scrolling helper routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static int HSC_Generic(FORM *form, int columns)
+| Facility : libnform
+| Function : static int HSC_Generic(FORM *form, int ncolumns)
|
-| Description : Scroll single-line field forward (columns>0) or
-| backward (columns<0) this many columns.
+| Description : Scroll single-line field forward (ncolumns>0) or
+| backward (ncolumns<0) this many columns.
|
-| Return Values : E_OK - success
+| Return Values : E_OK - success
| E_REQUEST_DENIED - can't scroll
+--------------------------------------------------------------------------*/
-static int HSC_Generic(FORM *form, int columns)
+static int
+HSC_Generic(FORM *form, int ncolumns)
{
FIELD *field = form->current;
int res = E_REQUEST_DENIED;
- int cols_to_go = (columns > 0 ? columns : -columns);
+ int cols_to_go = (ncolumns > 0 ? ncolumns : -ncolumns);
- if (columns > 0)
+ if (ncolumns > 0)
{
if ((cols_to_go + form->begincol) > (field->dcols - field->cols))
cols_to_go = field->dcols - field->cols - form->begincol;
-
+
if (cols_to_go > 0)
{
- form->curcol += cols_to_go;
+ form->curcol += cols_to_go;
form->begincol += cols_to_go;
res = E_OK;
}
}
else
{
- if ( cols_to_go > form->begincol )
+ if (cols_to_go > form->begincol)
cols_to_go = form->begincol;
if (cols_to_go > 0)
{
- form->curcol -= cols_to_go;
+ form->curcol -= cols_to_go;
form->begincol -= cols_to_go;
res = E_OK;
}
}
- return(res);
+ return (res);
}
/*----------------------------------------------------------------------------
End of Horizontal scrolling helper routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Horizontal scrolling routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Horizontal_Scrolling(
| int (* const fct) (FORM *),
| FORM * form)
-|
-| Description : Performs the generic horizontal scrolling routines.
+|
+| Description : Performs the generic horizontal scrolling routines.
| This has to check for a single-line field.
|
| Return Values : Propagated error code from low-level driver calls
+--------------------------------------------------------------------------*/
-static int Horizontal_Scrolling(int (* const fct) (FORM *), FORM * form)
+static int
+Horizontal_Scrolling(int (*const fct) (FORM *), FORM *form)
{
if (Single_Line_Field(form->current))
return fct(form);
else
- return(E_REQUEST_DENIED);
+ return (E_REQUEST_DENIED);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int HSC_Scroll_Char_Forward(FORM * form)
-|
+|
| Description : Scroll single-line field forward a character
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data ahead
+--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Forward(FORM *form)
+static int
+HSC_Scroll_Char_Forward(FORM *form)
{
- return HSC_Generic(form,1);
+ T((T_CALLED("HSC_Scroll_Char_Forward(%p)"), form));
+ returnCode(HSC_Generic(form, 1));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int HSC_Scroll_Char_Backward(FORM * form)
-|
+|
| Description : Scroll single-line field backward a character
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data behind
+--------------------------------------------------------------------------*/
-static int HSC_Scroll_Char_Backward(FORM *form)
+static int
+HSC_Scroll_Char_Backward(FORM *form)
{
- return HSC_Generic(form,-1);
+ T((T_CALLED("HSC_Scroll_Char_Backward(%p)"), form));
+ returnCode(HSC_Generic(form, -1));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int HSC_Horizontal_Line_Forward(FORM* form)
-|
+|
| Description : Scroll single-line field forward a line
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data ahead
+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Forward(FORM * form)
+static int
+HSC_Horizontal_Line_Forward(FORM *form)
{
- return HSC_Generic(form,form->current->cols);
+ T((T_CALLED("HSC_Horizontal_Line_Forward(%p)"), form));
+ returnCode(HSC_Generic(form, form->current->cols));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int HSC_Horizontal_Half_Line_Forward(FORM* form)
-|
+|
| Description : Scroll single-line field forward half a line
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data ahead
+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Forward(FORM * form)
+static int
+HSC_Horizontal_Half_Line_Forward(FORM *form)
{
- return HSC_Generic(form,(form->current->cols + 1)/2);
+ T((T_CALLED("HSC_Horizontal_Half_Line_Forward(%p)"), form));
+ returnCode(HSC_Generic(form, (form->current->cols + 1) / 2));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int HSC_Horizontal_Line_Backward(FORM* form)
-|
+|
| Description : Scroll single-line field backward a line
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data behind
+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Line_Backward(FORM * form)
+static int
+HSC_Horizontal_Line_Backward(FORM *form)
{
- return HSC_Generic(form,-(form->current->cols));
+ T((T_CALLED("HSC_Horizontal_Line_Backward(%p)"), form));
+ returnCode(HSC_Generic(form, -(form->current->cols)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int HSC_Horizontal_Half_Line_Backward(FORM* form)
-|
+|
| Description : Scroll single-line field backward half a line
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - no data behind
+--------------------------------------------------------------------------*/
-static int HSC_Horizontal_Half_Line_Backward(FORM * form)
+static int
+HSC_Horizontal_Half_Line_Backward(FORM *form)
{
- return HSC_Generic(form,-((form->current->cols + 1)/2));
+ T((T_CALLED("HSC_Horizontal_Half_Line_Backward(%p)"), form));
+ returnCode(HSC_Generic(form, -((form->current->cols + 1) / 2)));
}
/*----------------------------------------------------------------------------
End of Horizontal scrolling routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Helper routines for Field Editing
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Is_There_Room_For_A_Line(FORM * form)
-|
+|
| Description : Check whether or not there is enough room in the
| buffer to enter a whole line.
|
| Return Values : TRUE - there is enough space
| FALSE - there is not enough space
+--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Line(FORM * form)
+INLINE static bool
+Is_There_Room_For_A_Line(FORM *form)
{
FIELD *field = form->current;
- char *begin_of_last_line, *s;
-
+ FIELD_CELL *begin_of_last_line, *s;
+
Synchronize_Buffer(form);
- begin_of_last_line = Address_Of_Row_In_Buffer(field,(field->drows-1));
- s = After_End_Of_Data(begin_of_last_line,field->dcols);
- return ((s==begin_of_last_line) ? TRUE : FALSE);
+ begin_of_last_line = Address_Of_Row_In_Buffer(field, (field->drows - 1));
+ s = After_End_Of_Data(begin_of_last_line, field->dcols);
+ return ((s == begin_of_last_line) ? TRUE : FALSE);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
-|
+|
| Description : Checks whether or not there is room for a new character
| in the current line.
|
| Return Values : TRUE - there is room
| FALSE - there is not enough room (line full)
+--------------------------------------------------------------------------*/
-INLINE static bool Is_There_Room_For_A_Char_In_Line(FORM * form)
+INLINE static bool
+Is_There_Room_For_A_Char_In_Line(FORM *form)
{
int last_char_in_line;
- wmove(form->w,form->currow,form->current->dcols-1);
- last_char_in_line = (int)(winch(form->w) & A_CHARTEXT);
- wmove(form->w,form->currow,form->curcol);
+ wmove(form->w, form->currow, form->current->dcols - 1);
+ last_char_in_line = (int)(winch(form->w) & A_CHARTEXT);
+ wmove(form->w, form->currow, form->curcol);
return (((last_char_in_line == form->current->pad) ||
is_blank(last_char_in_line)) ? TRUE : FALSE);
}
!Is_There_Room_For_A_Char_In_Line(f)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Insert_String(
| FORM * form,
| int row,
| char *txt,
| int len )
-|
+|
| Description : Insert the 'len' characters beginning at pointer 'txt'
| into the 'row' of the 'form'. The insertion occurs
| on the beginning of the row, all other characters are
-| moved to the right. After the text a pad character will
+| moved to the right. After the text a pad character will
| be inserted to separate the text from the rest. If
| necessary the insertion moves characters on the next
| line to make place for the requested insertion string.
|
-| Return Values : E_OK - success
+| Return Values : E_OK - success
| E_REQUEST_DENIED -
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
-static int Insert_String(FORM *form, int row, char *txt, int len)
-{
- FIELD *field = form->current;
- char *bp = Address_Of_Row_In_Buffer(field,row);
- int datalen = (int)(After_End_Of_Data(bp,field->dcols) - bp);
- int freelen = field->dcols - datalen;
- int requiredlen = len+1;
- char *split;
+static int
+Insert_String(FORM *form, int row, FIELD_CELL *txt, int len)
+{
+ FIELD *field = form->current;
+ FIELD_CELL *bp = Address_Of_Row_In_Buffer(field, row);
+ int datalen = (int)(After_End_Of_Data(bp, field->dcols) - bp);
+ int freelen = field->dcols - datalen;
+ int requiredlen = len + 1;
+ FIELD_CELL *split;
int result = E_REQUEST_DENIED;
- const char *Space = " ";
if (freelen >= requiredlen)
{
- wmove(form->w,row,0);
- winsnstr(form->w,txt,len);
- wmove(form->w,row,len);
- winsnstr(form->w,Space,1);
+ wmove(form->w, row, 0);
+ myINSNSTR(form->w, txt, len);
+ wmove(form->w, row, len);
+ myINSNSTR(form->w, &myBLANK, 1);
return E_OK;
}
else
- { /* we have to move characters on the next line. If we are on the
- last line this may work, if the field is growable */
+ {
+ /* we have to move characters on the next line. If we are on the
+ last line this may work, if the field is growable */
if ((row == (field->drows - 1)) && Growable(field))
{
- if (!Field_Grown(field,1))
- return(E_SYSTEM_ERROR);
+ if (!Field_Grown(field, 1))
+ return (E_SYSTEM_ERROR);
/* !!!Side-Effect : might be changed due to growth!!! */
- bp = Address_Of_Row_In_Buffer(field,row);
+ bp = Address_Of_Row_In_Buffer(field, row);
}
- if (row < (field->drows - 1))
- {
- split = After_Last_Whitespace_Character(bp,
- (int)(Get_Start_Of_Data(bp + field->dcols - requiredlen ,
- requiredlen) - bp));
+ if (row < (field->drows - 1))
+ {
+ split =
+ After_Last_Whitespace_Character(bp,
+ (int)(Get_Start_Of_Data(bp
+ + field->dcols
+ - requiredlen,
+ requiredlen)
+ - bp));
/* split points now to the first character of the portion of the
line that must be moved to the next line */
- datalen = (int)(split-bp); /* + freelen has to stay on this line */
- freelen = field->dcols - (datalen + freelen); /* for the next line */
+ datalen = (int)(split - bp); /* + freelen has to stay on this line */
+ freelen = field->dcols - (datalen + freelen); /* for the next line */
- if ((result=Insert_String(form,row+1,split,freelen))==E_OK)
+ if ((result = Insert_String(form, row + 1, split, freelen)) == E_OK)
{
- wmove(form->w,row,datalen);
+ wmove(form->w, row, datalen);
wclrtoeol(form->w);
- wmove(form->w,row,0);
- winsnstr(form->w,txt,len);
- wmove(form->w,row,len);
- winsnstr(form->w,Space,1);
+ wmove(form->w, row, 0);
+ myINSNSTR(form->w, txt, len);
+ wmove(form->w, row, len);
+ myINSNSTR(form->w, &myBLANK, 1);
return E_OK;
}
}
- return(result);
+ return (result);
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Wrapping_Not_Necessary_Or_Wrapping_Ok(
| FORM * form)
-|
+|
| Description : If a character has been entered into a field, it may
| be that wrapping has to occur. This routine checks
| whether or not wrapping is required and if so, performs
| E_REQUEST_DENIED -
| E_SYSTEM_ERROR - some system error
+--------------------------------------------------------------------------*/
-static int Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM * form)
+static int
+Wrapping_Not_Necessary_Or_Wrapping_Ok(FORM *form)
{
- FIELD *field = form->current;
+ FIELD *field = form->current;
int result = E_REQUEST_DENIED;
bool Last_Row = ((field->drows - 1) == form->currow);
- if ( (field->opts & O_WRAP) && /* wrapping wanted */
- (!Single_Line_Field(field)) && /* must be multi-line */
- (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */
- (!Last_Row || Growable(field)) ) /* there are more lines*/
+ if ((field->opts & O_WRAP) && /* wrapping wanted */
+ (!Single_Line_Field(field)) && /* must be multi-line */
+ (There_Is_No_Room_For_A_Char_In_Line(form)) && /* line is full */
+ (!Last_Row || Growable(field))) /* there are more lines */
{
- char *bp;
- char *split;
+ FIELD_CELL *bp;
+ FIELD_CELL *split;
int chars_to_be_wrapped;
int chars_to_remain_on_line;
+
if (Last_Row)
- { /* the above logic already ensures, that in this case the field
+ {
+ /* the above logic already ensures, that in this case the field
is growable */
- if (!Field_Grown(field,1))
+ if (!Field_Grown(field, 1))
return E_SYSTEM_ERROR;
}
bp = Address_Of_Current_Row_In_Buffer(form);
- Window_To_Buffer(form->w,field);
- split = After_Last_Whitespace_Character(bp,field->dcols);
+ Window_To_Buffer(form->w, field);
+ split = After_Last_Whitespace_Character(bp, field->dcols);
/* split points to the first character of the sequence to be brought
on the next line */
chars_to_remain_on_line = (int)(split - bp);
- chars_to_be_wrapped = field->dcols - chars_to_remain_on_line;
+ chars_to_be_wrapped = field->dcols - chars_to_remain_on_line;
if (chars_to_remain_on_line > 0)
{
- if ((result=Insert_String(form,form->currow+1,split,
- chars_to_be_wrapped)) == E_OK)
+ if ((result = Insert_String(form, form->currow + 1, split,
+ chars_to_be_wrapped)) == E_OK)
{
- wmove(form->w,form->currow,chars_to_remain_on_line);
+ wmove(form->w, form->currow, chars_to_remain_on_line);
wclrtoeol(form->w);
if (form->curcol >= chars_to_remain_on_line)
{
}
else
return E_OK;
- if (result!=E_OK)
+ if (result != E_OK)
{
- wmove(form->w,form->currow,form->curcol);
- wdelch(form->w);
- Window_To_Buffer(form->w,field);
+ DeleteChar(form);
+ Window_To_Buffer(form->w, field);
result = E_REQUEST_DENIED;
}
}
else
- result = E_OK; /* wrapping was not necessary */
- return(result);
+ result = E_OK; /* wrapping was not necessary */
+ return (result);
}
-\f
+
/*----------------------------------------------------------------------------
Field Editing routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Field_Editing(
| int (* const fct) (FORM *),
| FORM * form)
-|
+|
| Description : Generic routine for field editing requests. The driver
| routines are only called for editable fields, the
| _WINDOW_MODIFIED flag is set if editing occurred.
|
| Return Values : Error code from low level drivers.
+--------------------------------------------------------------------------*/
-static int Field_Editing(int (* const fct) (FORM *), FORM * form)
+static int
+Field_Editing(int (*const fct) (FORM *), FORM *form)
{
int res = E_REQUEST_DENIED;
- /* We have to deal here with the specific case of the overloaded
+ /* We have to deal here with the specific case of the overloaded
behavior of New_Line and Delete_Previous requests.
They may end up in navigational requests if we are on the first
character in a field. But navigation is also allowed on non-
editable fields.
- */
- if ((fct==FE_Delete_Previous) &&
- (form->opts & O_BS_OVERLOAD) &&
- First_Position_In_Current_Field(form) )
+ */
+ if ((fct == FE_Delete_Previous) &&
+ (form->opts & O_BS_OVERLOAD) &&
+ First_Position_In_Current_Field(form))
{
- res = Inter_Field_Navigation(FN_Previous_Field,form);
+ res = Inter_Field_Navigation(FN_Previous_Field, form);
}
else
{
- if (fct==FE_New_Line)
+ if (fct == FE_New_Line)
{
- if ((form->opts & O_NL_OVERLOAD) &&
+ if ((form->opts & O_NL_OVERLOAD) &&
First_Position_In_Current_Field(form))
{
- res = Inter_Field_Navigation(FN_Next_Field,form);
+ res = Inter_Field_Navigation(FN_Next_Field, form);
}
else
/* FE_New_Line deals itself with the _WINDOW_MODIFIED flag */
if (form->current->opts & O_EDIT)
{
res = fct(form);
- if (res==E_OK)
+ if (res == E_OK)
form->status |= _WINDOW_MODIFIED;
}
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_New_Line(FORM * form)
-|
+|
| Description : Perform a new line request. This is rather complex
-| compared to other routines in this code due to the
+| compared to other routines in this code due to the
| rather difficult to understand description in the
| manuals.
|
| E_REQUEST_DENIED - new line not allowed
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
-static int FE_New_Line(FORM * form)
+static int
+FE_New_Line(FORM *form)
{
- FIELD *field = form->current;
- char *bp, *t;
- bool Last_Row = ((field->drows - 1)==form->currow);
-
- if (form->status & _OVLMODE)
+ FIELD *field = form->current;
+ FIELD_CELL *bp, *t;
+ bool Last_Row = ((field->drows - 1) == form->currow);
+
+ T((T_CALLED("FE_New_Line(%p)"), form));
+ if (form->status & _OVLMODE)
{
- if (Last_Row &&
+ if (Last_Row &&
(!(Growable(field) && !Single_Line_Field(field))))
{
if (!(form->opts & O_NL_OVERLOAD))
- return(E_REQUEST_DENIED);
- wmove(form->w,form->currow,form->curcol);
+ returnCode(E_REQUEST_DENIED);
+ wmove(form->w, form->currow, form->curcol);
wclrtoeol(form->w);
/* we have to set this here, although it is also
handled in the generic routine. The reason is,
that FN_Next_Field may fail, but the form is
definitively changed */
form->status |= _WINDOW_MODIFIED;
- return Inter_Field_Navigation(FN_Next_Field,form);
+ returnCode(Inter_Field_Navigation(FN_Next_Field, form));
}
- else
+ else
{
- if (Last_Row && !Field_Grown(field,1))
- { /* N.B.: due to the logic in the 'if', LastRow==TRUE
- means here that the field is growable and not
- a single-line field */
- return(E_SYSTEM_ERROR);
+ if (Last_Row && !Field_Grown(field, 1))
+ {
+ /* N.B.: due to the logic in the 'if', LastRow==TRUE
+ means here that the field is growable and not
+ a single-line field */
+ returnCode(E_SYSTEM_ERROR);
}
- wmove(form->w,form->currow,form->curcol);
+ wmove(form->w, form->currow, form->curcol);
wclrtoeol(form->w);
form->currow++;
form->curcol = 0;
form->status |= _WINDOW_MODIFIED;
- return(E_OK);
+ returnCode(E_OK);
}
}
- else
- { /* Insert Mode */
+ else
+ {
+ /* Insert Mode */
if (Last_Row &&
!(Growable(field) && !Single_Line_Field(field)))
{
if (!(form->opts & O_NL_OVERLOAD))
- return(E_REQUEST_DENIED);
- return Inter_Field_Navigation(FN_Next_Field,form);
+ returnCode(E_REQUEST_DENIED);
+ returnCode(Inter_Field_Navigation(FN_Next_Field, form));
}
- else
+ else
{
bool May_Do_It = !Last_Row && Is_There_Room_For_A_Line(form);
-
+
if (!(May_Do_It || Growable(field)))
- return(E_REQUEST_DENIED);
- if (!May_Do_It && !Field_Grown(field,1))
- return(E_SYSTEM_ERROR);
-
- bp= Address_Of_Current_Position_In_Buffer(form);
- t = After_End_Of_Data(bp,field->dcols - form->curcol);
- wmove(form->w,form->currow,form->curcol);
+ returnCode(E_REQUEST_DENIED);
+ if (!May_Do_It && !Field_Grown(field, 1))
+ returnCode(E_SYSTEM_ERROR);
+
+ bp = Address_Of_Current_Position_In_Buffer(form);
+ t = After_End_Of_Data(bp, field->dcols - form->curcol);
+ wmove(form->w, form->currow, form->curcol);
wclrtoeol(form->w);
form->currow++;
- form->curcol=0;
- wmove(form->w,form->currow,form->curcol);
+ form->curcol = 0;
+ wmove(form->w, form->currow, form->curcol);
winsertln(form->w);
- waddnstr(form->w,bp,(int)(t-bp));
+ myADDNSTR(form->w, bp, (int)(t - bp));
form->status |= _WINDOW_MODIFIED;
- return E_OK;
+ returnCode(E_OK);
}
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Insert_Character(FORM * form)
-|
+|
| Description : Insert blank character at the cursor position
|
| Return Values : E_OK
| E_REQUEST_DENIED
+--------------------------------------------------------------------------*/
-static int FE_Insert_Character(FORM * form)
+static int
+FE_Insert_Character(FORM *form)
{
FIELD *field = form->current;
int result = E_REQUEST_DENIED;
- if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
+ T((T_CALLED("FE_Insert_Character(%p)"), form));
+ if (Check_Char(field->type, (int)C_BLANK, (TypeArgument *)(field->arg)))
{
bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
if (There_Is_Room ||
((Single_Line_Field(field) && Growable(field))))
{
- if (!There_Is_Room && !Field_Grown(field,1))
- result = E_SYSTEM_ERROR;
+ if (!There_Is_Room && !Field_Grown(field, 1))
+ result = E_SYSTEM_ERROR;
else
{
- winsch(form->w,(chtype)C_BLANK);
+ winsch(form->w, (chtype)C_BLANK);
result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form);
}
}
}
- return result;
+ returnCode(result);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Insert_Line(FORM * form)
-|
+|
| Description : Insert a blank line at the cursor position
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - line can not be inserted
+--------------------------------------------------------------------------*/
-static int FE_Insert_Line(FORM * form)
+static int
+FE_Insert_Line(FORM *form)
{
FIELD *field = form->current;
int result = E_REQUEST_DENIED;
- if (Check_Char(field->type,(int)C_BLANK,(TypeArgument *)(field->arg)))
+ T((T_CALLED("FE_Insert_Line(%p)"), form));
+ if (Check_Char(field->type, (int)C_BLANK, (TypeArgument *)(field->arg)))
{
- bool Maybe_Done = (form->currow!=(field->drows-1)) &&
- Is_There_Room_For_A_Line(form);
+ bool Maybe_Done = (form->currow != (field->drows - 1)) &&
+ Is_There_Room_For_A_Line(form);
if (!Single_Line_Field(field) &&
(Maybe_Done || Growable(field)))
{
- if (!Maybe_Done && !Field_Grown(field,1))
+ if (!Maybe_Done && !Field_Grown(field, 1))
result = E_SYSTEM_ERROR;
else
{
}
}
}
- return result;
+ returnCode(result);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Delete_Character(FORM * form)
-|
+|
| Description : Delete character at the cursor position
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int FE_Delete_Character(FORM * form)
+static int
+FE_Delete_Character(FORM *form)
{
- wmove(form->w,form->currow,form->curcol);
- wdelch(form->w);
- return E_OK;
+ T((T_CALLED("FE_Delete_Character(%p)"), form));
+ DeleteChar(form);
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Delete_Previous(FORM * form)
-|
+|
| Description : Delete character before cursor. Again this is a rather
| difficult piece compared to others due to the overloading
| semantics of backspace.
| Return Values : E_OK - success
| E_REQUEST_DENIED - Character can't be deleted
+--------------------------------------------------------------------------*/
-static int FE_Delete_Previous(FORM * form)
+static int
+FE_Delete_Previous(FORM *form)
{
- FIELD *field = form->current;
-
+ FIELD *field = form->current;
+
+ T((T_CALLED("FE_Delete_Previous(%p)"), form));
if (First_Position_In_Current_Field(form))
- return E_REQUEST_DENIED;
+ returnCode(E_REQUEST_DENIED);
- if ( (--(form->curcol))<0 )
+ if ((--(form->curcol)) < 0)
{
- char *this_line, *prev_line, *prev_end, *this_end;
-
+ FIELD_CELL *this_line, *prev_line, *prev_end, *this_end;
+ int this_row = form->currow;
+
form->curcol++;
- if (form->status & _OVLMODE)
- return E_REQUEST_DENIED;
-
- prev_line = Address_Of_Row_In_Buffer(field,(form->currow-1));
- this_line = Address_Of_Row_In_Buffer(field,(form->currow));
+ if (form->status & _OVLMODE)
+ returnCode(E_REQUEST_DENIED);
+
+ prev_line = Address_Of_Row_In_Buffer(field, (form->currow - 1));
+ this_line = Address_Of_Row_In_Buffer(field, (form->currow));
Synchronize_Buffer(form);
- prev_end = After_End_Of_Data(prev_line,field->dcols);
- this_end = After_End_Of_Data(this_line,field->dcols);
- if ((int)(this_end-this_line) >
- (field->cols-(int)(prev_end-prev_line)))
- return E_REQUEST_DENIED;
- wmove(form->w,form->currow,form->curcol);
+ prev_end = After_End_Of_Data(prev_line, field->dcols);
+ this_end = After_End_Of_Data(this_line, field->dcols);
+ if ((int)(this_end - this_line) >
+ (field->cols - (int)(prev_end - prev_line)))
+ returnCode(E_REQUEST_DENIED);
+ wmove(form->w, form->currow, form->curcol);
wdeleteln(form->w);
- Adjust_Cursor_Position(form,prev_end);
- wmove(form->w,form->currow,form->curcol);
- waddnstr(form->w,this_line,(int)(this_end-this_line));
- }
- else
+ Adjust_Cursor_Position(form, prev_end);
+ /*
+ * If we did not really move to the previous line, help the user a
+ * little. It is however a little inconsistent. Normally, when
+ * backspacing around the point where text wraps to a new line in a
+ * multi-line form, we absorb one keystroke for the wrapping point. That
+ * is consistent with SVr4 forms. However, SVr4 does not allow typing
+ * into the last column of the field, and requires the user to enter a
+ * newline to move to the next line. Therefore it can consistently eat
+ * that keystroke. Since ncurses allows the last column, it wraps
+ * automatically (given the proper options). But we cannot eat the
+ * keystroke to back over the wrapping point, since that would put the
+ * cursor past the end of the form field. In this case, just delete the
+ * character at the end of the field.
+ */
+ if (form->currow == this_row && this_row > 0)
+ {
+ form->currow -= 1;
+ form->curcol = field->dcols - 1;
+ DeleteChar(form);
+ }
+ else
+ {
+ wmove(form->w, form->currow, form->curcol);
+ myADDNSTR(form->w, this_line, (int)(this_end - this_line));
+ }
+ }
+ else
{
- wmove(form->w,form->currow,form->curcol);
- wdelch(form->w);
+ DeleteChar(form);
}
- return E_OK;
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Delete_Line(FORM * form)
-|
+|
| Description : Delete line at cursor position.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int FE_Delete_Line(FORM * form)
+static int
+FE_Delete_Line(FORM *form)
{
+ T((T_CALLED("FE_Delete_Line(%p)"), form));
form->curcol = 0;
wdeleteln(form->w);
- return E_OK;
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Delete_Word(FORM * form)
-|
+|
| Description : Delete word at cursor position
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - failure
+--------------------------------------------------------------------------*/
-static int FE_Delete_Word(FORM * form)
+static int
+FE_Delete_Word(FORM *form)
{
- FIELD *field = form->current;
- char *bp = Address_Of_Current_Row_In_Buffer(form);
- char *ep = bp + field->dcols;
- char *cp = bp + form->curcol;
- char *s;
-
+ FIELD *field = form->current;
+ FIELD_CELL *bp = Address_Of_Current_Row_In_Buffer(form);
+ FIELD_CELL *ep = bp + field->dcols;
+ FIELD_CELL *cp = bp + form->curcol;
+ FIELD_CELL *s;
+
+ T((T_CALLED("FE_Delete_Word(%p)"), form));
Synchronize_Buffer(form);
- if (is_blank(*cp))
- return E_REQUEST_DENIED; /* not in word */
+ if (ISBLANK(*cp))
+ returnCode(E_REQUEST_DENIED); /* not in word */
/* move cursor to begin of word and erase to end of screen-line */
Adjust_Cursor_Position(form,
- After_Last_Whitespace_Character(bp,form->curcol));
- wmove(form->w,form->currow,form->curcol);
+ After_Last_Whitespace_Character(bp, form->curcol));
+ wmove(form->w, form->currow, form->curcol);
wclrtoeol(form->w);
/* skip over word in buffer */
- s = Get_First_Whitespace_Character(cp,(int)(ep-cp));
+ s = Get_First_Whitespace_Character(cp, (int)(ep - cp));
/* to begin of next word */
- s = Get_Start_Of_Data(s,(int)(ep - s));
- if ( (s!=cp) && !is_blank(*s))
+ s = Get_Start_Of_Data(s, (int)(ep - s));
+ if ((s != cp) && !ISBLANK(*s))
{
/* copy remaining line to window */
- waddnstr(form->w,s,(int)(s - After_End_Of_Data(s,(int)(ep - s))));
+ myADDNSTR(form->w, s, (int)(s - After_End_Of_Data(s, (int)(ep - s))));
}
- return E_OK;
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Clear_To_End_Of_Line(FORM * form)
-|
+|
| Description : Clear to end of current line.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Line(FORM * form)
+static int
+FE_Clear_To_End_Of_Line(FORM *form)
{
- wmove(form->w,form->currow,form->curcol);
+ T((T_CALLED("FE_Clear_To_End_Of_Line(%p)"), form));
+ wmove(form->w, form->currow, form->curcol);
wclrtoeol(form->w);
- return E_OK;
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Clear_To_End_Of_Field(FORM * form)
-|
+|
| Description : Clear to end of field.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int FE_Clear_To_End_Of_Field(FORM * form)
+static int
+FE_Clear_To_End_Of_Field(FORM *form)
{
- wmove(form->w,form->currow,form->curcol);
+ T((T_CALLED("FE_Clear_To_End_Of_Field(%p)"), form));
+ wmove(form->w, form->currow, form->curcol);
wclrtobot(form->w);
- return E_OK;
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FE_Clear_Field(FORM * form)
-|
+|
| Description : Clear entire field.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int FE_Clear_Field(FORM * form)
+static int
+FE_Clear_Field(FORM *form)
{
+ T((T_CALLED("FE_Clear_Field(%p)"), form));
form->currow = form->curcol = 0;
werase(form->w);
- return E_OK;
+ returnCode(E_OK);
}
/*----------------------------------------------------------------------------
- END of Field Editing routines
+ END of Field Editing routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Edit Mode routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int EM_Overlay_Mode(FORM * form)
-|
+|
| Description : Switch to overlay mode.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int EM_Overlay_Mode(FORM * form)
+static int
+EM_Overlay_Mode(FORM *form)
{
+ T((T_CALLED("EM_Overlay_Mode(%p)"), form));
form->status |= _OVLMODE;
- return E_OK;
+ returnCode(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int EM_Insert_Mode(FORM * form)
-|
+|
| Description : Switch to insert mode
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-static int EM_Insert_Mode(FORM * form)
+static int
+EM_Insert_Mode(FORM *form)
{
+ T((T_CALLED("EM_Insert_Mode(%p)"), form));
form->status &= ~_OVLMODE;
- return E_OK;
+ returnCode(E_OK);
}
/*----------------------------------------------------------------------------
- END of Edit Mode routines
+ END of Edit Mode routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Helper routines for Choice Requests
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Next_Choice(
| FIELDTYPE * typ,
| FIELD * field,
| TypeArgument *argp)
-|
+|
| Description : Get the next field choice. For linked types this is
| done recursively.
|
| Return Values : TRUE - next choice successfully retrieved
| FALSE - couldn't retrieve next choice
+--------------------------------------------------------------------------*/
-static bool Next_Choice(FIELDTYPE * typ, FIELD *field, TypeArgument *argp)
+static bool
+Next_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
{
- if (!typ || !(typ->status & _HAS_CHOICE))
+ if (!typ || !(typ->status & _HAS_CHOICE))
return FALSE;
if (typ->status & _LINKED_TYPE)
{
assert(argp);
- return(
- Next_Choice(typ->left ,field,argp->left) ||
- Next_Choice(typ->right,field,argp->right) );
- }
+ return (
+ Next_Choice(typ->left, field, argp->left) ||
+ Next_Choice(typ->right, field, argp->right));
+ }
else
{
assert(typ->next);
- return typ->next(field,(void *)argp);
+ return typ->next(field, (void *)argp);
}
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Previous_Choice(
| FIELDTYPE * typ,
| FIELD * field,
| TypeArgument *argp)
-|
+|
| Description : Get the previous field choice. For linked types this
| is done recursively.
|
| Return Values : TRUE - previous choice successfully retrieved
| FALSE - couldn't retrieve previous choice
+--------------------------------------------------------------------------*/
-static bool Previous_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
+static bool
+Previous_Choice(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
{
- if (!typ || !(typ->status & _HAS_CHOICE))
+ if (!typ || !(typ->status & _HAS_CHOICE))
return FALSE;
if (typ->status & _LINKED_TYPE)
{
assert(argp);
- return(
- Previous_Choice(typ->left ,field,argp->left) ||
- Previous_Choice(typ->right,field,argp->right));
- }
- else
+ return (
+ Previous_Choice(typ->left, field, argp->left) ||
+ Previous_Choice(typ->right, field, argp->right));
+ }
+ else
{
assert(typ->prev);
- return typ->prev(field,(void *)argp);
+ return typ->prev(field, (void *)argp);
}
}
/*----------------------------------------------------------------------------
End of Helper routines for Choice Requests
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Routines for Choice Requests
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int CR_Next_Choice(FORM * form)
-|
+|
| Description : Get the next field choice.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - next choice couldn't be retrieved
+--------------------------------------------------------------------------*/
-static int CR_Next_Choice(FORM * form)
+static int
+CR_Next_Choice(FORM *form)
{
FIELD *field = form->current;
+
+ T((T_CALLED("CR_Next_Choice(%p)"), form));
Synchronize_Buffer(form);
- return ((Next_Choice(field->type,field,(TypeArgument *)(field->arg))) ?
- E_OK : E_REQUEST_DENIED);
+ returnCode((Next_Choice(field->type, field, (TypeArgument *)(field->arg)))
+ ? E_OK
+ : E_REQUEST_DENIED);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int CR_Previous_Choice(FORM * form)
-|
+|
| Description : Get the previous field choice.
|
| Return Values : E_OK - success
| E_REQUEST_DENIED - prev. choice couldn't be retrieved
+--------------------------------------------------------------------------*/
-static int CR_Previous_Choice(FORM * form)
+static int
+CR_Previous_Choice(FORM *form)
{
FIELD *field = form->current;
+
+ T((T_CALLED("CR_Previous_Choice(%p)"), form));
Synchronize_Buffer(form);
- return ((Previous_Choice(field->type,field,(TypeArgument *)(field->arg))) ?
- E_OK : E_REQUEST_DENIED);
+ returnCode((Previous_Choice(field->type, field, (TypeArgument *)(field->arg)))
+ ? E_OK
+ : E_REQUEST_DENIED);
}
/*----------------------------------------------------------------------------
End of Routines for Choice Requests
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Helper routines for Field Validations.
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static bool Check_Field(
| FIELDTYPE * typ,
| FIELD * field,
| TypeArgument * argp)
-|
+|
| Description : Check the field according to its fieldtype and its
| actual arguments. For linked fieldtypes this is done
| recursively.
| Return Values : TRUE - field is valid
| FALSE - field is invalid.
+--------------------------------------------------------------------------*/
-static bool Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
+static bool
+Check_Field(FIELDTYPE *typ, FIELD *field, TypeArgument *argp)
{
if (typ)
{
if (field->opts & O_NULLOK)
{
- char *bp = field->buf;
+ FIELD_CELL *bp = field->buf;
+
assert(bp);
- while(is_blank(*bp))
- { bp++; }
- if (*bp == '\0')
+ while (ISBLANK(*bp))
+ {
+ bp++;
+ }
+ if (CharOf(*bp) == 0)
return TRUE;
}
if (typ->status & _LINKED_TYPE)
{
assert(argp);
- return(
- Check_Field(typ->left ,field,argp->left ) ||
- Check_Field(typ->right,field,argp->right) );
+ return (
+ Check_Field(typ->left, field, argp->left) ||
+ Check_Field(typ->right, field, argp->right));
}
- else
+ else
{
if (typ->fcheck)
- return typ->fcheck(field,(void *)argp);
+ return typ->fcheck(field, (void *)argp);
}
}
return TRUE;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : bool _nc_Internal_Validation(FORM * form )
-|
-| Description : Validate the current field of the form.
+|
+| Description : Validate the current field of the form.
|
| Return Values : TRUE - field is valid
| FALSE - field is invalid
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-_nc_Internal_Validation (FORM *form)
+_nc_Internal_Validation(FORM *form)
{
FIELD *field;
- field = form->current;
-
+ field = form->current;
+
Synchronize_Buffer(form);
if ((form->status & _FCHECK_REQUIRED) ||
(!(field->opts & O_PASSOK)))
{
- if (!Check_Field(field->type,field,(TypeArgument *)(field->arg)))
+ if (!Check_Field(field->type, field, (TypeArgument *)(field->arg)))
return FALSE;
- form->status &= ~_FCHECK_REQUIRED;
+ form->status &= ~_FCHECK_REQUIRED;
field->status |= _CHANGED;
Synchronize_Linked_Fields(field);
}
/*----------------------------------------------------------------------------
End of Helper routines for Field Validations.
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Routines for Field Validation.
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FV_Validation(FORM * form)
-|
+|
| Description : Validate the current field of the form.
|
| Return Values : E_OK - field valid
| E_INVALID_FIELD - field not valid
+--------------------------------------------------------------------------*/
-static int FV_Validation(FORM * form)
+static int
+FV_Validation(FORM *form)
{
+ T((T_CALLED("FV_Validation(%p)"), form));
if (_nc_Internal_Validation(form))
- return E_OK;
+ returnCode(E_OK);
else
- return E_INVALID_FIELD;
+ returnCode(E_INVALID_FIELD);
}
/*----------------------------------------------------------------------------
End of routines for Field Validation.
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Helper routines for Inter-Field Navigation
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static FIELD *Next_Field_On_Page(FIELD * field)
-|
-| Description : Get the next field after the given field on the current
+|
+| 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
| counted.
|
| Return Values : Pointer to the next field.
+--------------------------------------------------------------------------*/
-INLINE static FIELD *Next_Field_On_Page(FIELD * field)
+INLINE static FIELD *
+Next_Field_On_Page(FIELD *field)
{
- FORM *form = field->form;
+ FORM *form = field->form;
FIELD **field_on_page = &form->field[field->index];
FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
+ FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
do
{
- field_on_page =
- (field_on_page==last_on_page) ? first_on_page : field_on_page + 1;
+ field_on_page =
+ (field_on_page == last_on_page) ? first_on_page : field_on_page + 1;
if (Field_Is_Selectable(*field_on_page))
break;
- } while(field!=(*field_on_page));
- return(*field_on_page);
+ }
+ while (field != (*field_on_page));
+ return (*field_on_page);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : FIELD* _nc_First_Active_Field(FORM * form)
-|
+|
| Description : Get the first active field on the current page,
| if there are such. If there are none, get the first
| visible field on the page. If there are also none,
|
| Return Values : Pointer to calculated field.
+--------------------------------------------------------------------------*/
-NCURSES_EXPORT(FIELD*)
-_nc_First_Active_Field (FORM * form)
+NCURSES_EXPORT(FIELD *)
+_nc_First_Active_Field(FORM *form)
{
FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
FIELD *proposed = Next_Field_On_Page(*last_on_page);
if (proposed == *last_on_page)
- { /* there might be the special situation, where there is no
- active and visible field on the current page. We then select
- the first visible field on this readonly page
- */
+ {
+ /* there might be the special situation, where there is no
+ active and visible field on the current page. We then select
+ the first visible field on this readonly page
+ */
if (Field_Is_Not_Selectable(proposed))
{
FIELD **field = &form->field[proposed->index];
do
{
- field = (field==last_on_page) ? first : field + 1;
+ field = (field == last_on_page) ? first : field + 1;
if (((*field)->opts & O_VISIBLE))
break;
- } while(proposed!=(*field));
-
+ }
+ while (proposed != (*field));
+
proposed = *field;
- if ((proposed == *last_on_page) && !(proposed->opts&O_VISIBLE))
- { /* This means, there is also no visible field on the page.
- So we propose the first one and hope the very best...
- Some very clever user has designed a readonly and invisible
- page on this form.
+ if ((proposed == *last_on_page) && !(proposed->opts & O_VISIBLE))
+ {
+ /* This means, there is also no visible field on the page.
+ So we propose the first one and hope the very best...
+ Some very clever user has designed a readonly and invisible
+ page on this form.
*/
proposed = *first;
}
}
}
- return(proposed);
+ return (proposed);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static FIELD *Previous_Field_On_Page(FIELD * field)
-|
-| Description : Get the previous field before the given field on the
-| current page. The order of fields is the one defined by
+|
+| 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
| counted.
|
| Return Values : Pointer to the previous field.
+--------------------------------------------------------------------------*/
-INLINE static FIELD *Previous_Field_On_Page(FIELD * field)
+INLINE static FIELD *
+Previous_Field_On_Page(FIELD *field)
{
- FORM *form = field->form;
+ FORM *form = field->form;
FIELD **field_on_page = &form->field[field->index];
FIELD **first_on_page = &form->field[form->page[form->curpage].pmin];
- FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
-
+ FIELD **last_on_page = &form->field[form->page[form->curpage].pmax];
+
do
{
- field_on_page =
- (field_on_page==first_on_page) ? last_on_page : field_on_page - 1;
+ field_on_page =
+ (field_on_page == first_on_page) ? last_on_page : field_on_page - 1;
if (Field_Is_Selectable(*field_on_page))
break;
- } while(field!=(*field_on_page));
-
+ }
+ while (field != (*field_on_page));
+
return (*field_on_page);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static FIELD *Sorted_Next_Field(FIELD * field)
-|
-| Description : Get the next field after the given field on the current
+|
+| Description : Get the next field after the given field on the current
| page. The order of fields is the one defined by the
| (row,column) geometry, rows are major.
|
| Return Values : Pointer to the next field.
+--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Next_Field(FIELD * field)
+INLINE static FIELD *
+Sorted_Next_Field(FIELD *field)
{
FIELD *field_on_page = field;
field_on_page = field_on_page->snext;
if (Field_Is_Selectable(field_on_page))
break;
- } while(field_on_page!=field);
-
+ }
+ while (field_on_page != field);
+
return (field_on_page);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static FIELD *Sorted_Previous_Field(FIELD * field)
-|
-| Description : Get the previous field before the given field on the
-| current page. The order of fields is the one defined
+|
+| Description : Get the previous field before the given field on the
+| current page. The order of fields is the one defined
| by the (row,column) geometry, rows are major.
|
| Return Values : Pointer to the previous field.
+--------------------------------------------------------------------------*/
-INLINE static FIELD *Sorted_Previous_Field(FIELD * field)
+INLINE static FIELD *
+Sorted_Previous_Field(FIELD *field)
{
FIELD *field_on_page = field;
field_on_page = field_on_page->sprev;
if (Field_Is_Selectable(field_on_page))
break;
- } while(field_on_page!=field);
-
+ }
+ while (field_on_page != field);
+
return (field_on_page);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static FIELD *Left_Neighbor_Field(FIELD * field)
-|
+|
| Description : Get the left neighbor of the field on the same line
| and the same page. Cycles through the line.
|
| Return Values : Pointer to left neighbor field.
+--------------------------------------------------------------------------*/
-INLINE static FIELD *Left_Neighbor_Field(FIELD * field)
+INLINE static FIELD *
+Left_Neighbor_Field(FIELD *field)
{
FIELD *field_on_page = field;
immediately fails and the loop is left, positioned at the right
neighbor. Otherwise we cycle backwards through the sorted field list
until we enter the same line (from the right end).
- */
+ */
do
{
field_on_page = Sorted_Previous_Field(field_on_page);
- } while(field_on_page->frow != field->frow);
-
+ }
+ while (field_on_page->frow != field->frow);
+
return (field_on_page);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static FIELD *Right_Neighbor_Field(FIELD * field)
-|
+|
| Description : Get the right neighbor of the field on the same line
| and the same page.
|
| Return Values : Pointer to right neighbor field.
+--------------------------------------------------------------------------*/
-INLINE static FIELD *Right_Neighbor_Field(FIELD * field)
+INLINE static FIELD *
+Right_Neighbor_Field(FIELD *field)
{
FIELD *field_on_page = field;
do
{
field_on_page = Sorted_Next_Field(field_on_page);
- } while(field_on_page->frow != field->frow);
-
+ }
+ while (field_on_page->frow != field->frow);
+
return (field_on_page);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| 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
| field really means. We define that it must be on a
|
| Return Values : Pointer to the upper neighbor field.
+--------------------------------------------------------------------------*/
-static FIELD *Upper_Neighbor_Field(FIELD * field)
+static FIELD *
+Upper_Neighbor_Field(FIELD *field)
{
FIELD *field_on_page = field;
int frow = field->frow;
/* Walk back to the 'previous' line. The second term in the while clause
just guarantees that we stop if we cycled through the line because
there might be no 'previous' line if the page has just one line.
- */
+ */
do
{
field_on_page = Sorted_Previous_Field(field_on_page);
- } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
-
- if (field_on_page->frow!=frow)
- { /* We really found a 'previous' line. We are positioned at the
+ }
+ while (field_on_page->frow == frow && field_on_page->fcol != fcol);
+
+ if (field_on_page->frow != frow)
+ {
+ /* We really found a 'previous' line. We are positioned at the
rightmost field on this line */
- frow = field_on_page->frow;
+ frow = field_on_page->frow;
- /* We walk to the left as long as we are really right of the
- field. */
- while(field_on_page->frow==frow && field_on_page->fcol>fcol)
+ /* We walk to the left as long as we are really right of the
+ field. */
+ while (field_on_page->frow == frow && field_on_page->fcol > fcol)
field_on_page = Sorted_Previous_Field(field_on_page);
- /* If we wrapped, just go to the right which is the first field on
- the row */
- if (field_on_page->frow!=frow)
+ /* If we wrapped, just go to the right which is the first field on
+ the row */
+ if (field_on_page->frow != frow)
field_on_page = Sorted_Next_Field(field_on_page);
}
-
+
return (field_on_page);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| 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
| field really means. We define that it must be on a
|
| Return Values : Pointer to the upper neighbor field.
+--------------------------------------------------------------------------*/
-static FIELD *Down_Neighbor_Field(FIELD * field)
+static FIELD *
+Down_Neighbor_Field(FIELD *field)
{
FIELD *field_on_page = field;
int frow = field->frow;
/* Walk forward to the 'next' line. The second term in the while clause
just guarantees that we stop if we cycled through the line because
there might be no 'next' line if the page has just one line.
- */
+ */
do
{
field_on_page = Sorted_Next_Field(field_on_page);
- } while(field_on_page->frow==frow && field_on_page->fcol!=fcol);
+ }
+ while (field_on_page->frow == frow && field_on_page->fcol != fcol);
- if (field_on_page->frow!=frow)
- { /* We really found a 'next' line. We are positioned at the rightmost
+ if (field_on_page->frow != frow)
+ {
+ /* We really found a 'next' line. We are positioned at the rightmost
field on this line */
frow = field_on_page->frow;
- /* We walk to the right as long as we are really left of the
- field. */
- while(field_on_page->frow==frow && field_on_page->fcol<fcol)
+ /* We walk to the right as long as we are really left of the
+ field. */
+ while (field_on_page->frow == frow && field_on_page->fcol < fcol)
field_on_page = Sorted_Next_Field(field_on_page);
- /* If we wrapped, just go to the left which is the last field on
- the row */
- if (field_on_page->frow!=frow)
+ /* If we wrapped, just go to the left which is the last field on
+ the row */
+ if (field_on_page->frow != frow)
field_on_page = Sorted_Previous_Field(field_on_page);
}
-
- return(field_on_page);
+
+ return (field_on_page);
}
-\f
+
/*----------------------------------------------------------------------------
Inter-Field Navigation routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Inter_Field_Navigation(
| int (* const fct) (FORM *),
| FORM * form)
-|
+|
| Description : Generic behavior for changing the current field, the
| field is left and a new field is entered. So the field
| must be validated and the field init/term hooks must
| E_INVALID_FIELD - field is invalid
| some other - error from subordinate call
+--------------------------------------------------------------------------*/
-static int Inter_Field_Navigation(int (* const fct) (FORM *),FORM *form)
+static int
+Inter_Field_Navigation(int (*const fct) (FORM *), FORM *form)
{
int res;
- if (!_nc_Internal_Validation(form))
+ if (!_nc_Internal_Validation(form))
res = E_INVALID_FIELD;
else
{
- Call_Hook(form,fieldterm);
+ Call_Hook(form, fieldterm);
res = fct(form);
- Call_Hook(form,fieldinit);
+ Call_Hook(form, fieldinit);
}
return res;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Next_Field(FORM * form)
-|
+|
| Description : Move to the next field on the current page of the form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Next_Field(FORM * form)
+static int
+FN_Next_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Next_Field_On_Page(form->current));
+ T((T_CALLED("FN_Next_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Next_Field_On_Page(form->current)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Previous_Field(FORM * form)
-|
-| Description : Move to the previous field on the current page of the
+|
+| Description : Move to the previous field on the current page of the
| form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Previous_Field(FORM * form)
+static int
+FN_Previous_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Previous_Field_On_Page(form->current));
+ T((T_CALLED("FN_Previous_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Previous_Field_On_Page(form->current)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_First_Field(FORM * form)
-|
+|
| Description : Move to the first field on the current page of the form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_First_Field(FORM * form)
+static int
+FN_First_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Next_Field_On_Page(form->field[form->page[form->curpage].pmax]));
+ T((T_CALLED("FN_First_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Next_Field_On_Page(form->field[form->page[form->curpage].pmax])));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Last_Field(FORM * form)
-|
+|
| Description : Move to the last field on the current page of the form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Last_Field(FORM * form)
+static int
+FN_Last_Field(FORM *form)
{
- return
- _nc_Set_Current_Field(form,
- Previous_Field_On_Page(form->field[form->page[form->curpage].pmin]));
+ T((T_CALLED("FN_Last_Field(%p)"), form));
+ returnCode(
+ _nc_Set_Current_Field(form,
+ Previous_Field_On_Page(form->field[form->page[form->curpage].pmin])));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Sorted_Next_Field(FORM * form)
-|
+|
| Description : Move to the sorted next field on the current page
| of the form.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Sorted_Next_Field(FORM * form)
+static int
+FN_Sorted_Next_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Sorted_Next_Field(form->current));
+ T((T_CALLED("FN_Sorted_Next_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Sorted_Next_Field(form->current)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Sorted_Previous_Field(FORM * form)
-|
+|
| Description : Move to the sorted previous field on the current page
| of the form.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Sorted_Previous_Field(FORM * form)
+static int
+FN_Sorted_Previous_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Sorted_Previous_Field(form->current));
+ T((T_CALLED("FN_Sorted_Previous_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Sorted_Previous_Field(form->current)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Sorted_First_Field(FORM * form)
-|
+|
| Description : Move to the sorted first field on the current page
| of the form.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Sorted_First_Field(FORM * form)
+static int
+FN_Sorted_First_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Sorted_Next_Field(form->field[form->page[form->curpage].smax]));
+ T((T_CALLED("FN_Sorted_First_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Sorted_Next_Field(form->field[form->page[form->curpage].smax])));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Sorted_Last_Field(FORM * form)
-|
+|
| Description : Move to the sorted last field on the current page
| of the form.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Sorted_Last_Field(FORM * form)
+static int
+FN_Sorted_Last_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Sorted_Previous_Field(form->field[form->page[form->curpage].smin]));
+ T((T_CALLED("FN_Sorted_Last_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Sorted_Previous_Field(form->field[form->page[form->curpage].smin])));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Left_Field(FORM * form)
-|
+|
| Description : Get the field on the left of the current field on the
| same line and the same page. Cycles through the line.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Left_Field(FORM * form)
+static int
+FN_Left_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Left_Neighbor_Field(form->current));
+ T((T_CALLED("FN_Left_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Left_Neighbor_Field(form->current)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Right_Field(FORM * form)
-|
+|
| Description : Get the field on the right of the current field on the
| same line and the same page. Cycles through the line.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Right_Field(FORM * form)
+static int
+FN_Right_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Right_Neighbor_Field(form->current));
+ T((T_CALLED("FN_Right_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Right_Neighbor_Field(form->current)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Up_Field(FORM * form)
-|
+|
| Description : Get the upper neighbor of the current field. This
| cycles through the page. See the comments of the
| Upper_Neighbor_Field function to understand how
-| 'upper' is defined.
+| 'upper' is defined.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Up_Field(FORM * form)
+static int
+FN_Up_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Upper_Neighbor_Field(form->current));
+ T((T_CALLED("FN_Up_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Upper_Neighbor_Field(form->current)));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int FN_Down_Field(FORM * form)
-|
+|
| Description : Get the down neighbor of the current field. This
| cycles through the page. See the comments of the
| Down_Neighbor_Field function to understand how
-| 'down' is defined.
+| 'down' is defined.
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int FN_Down_Field(FORM * form)
+static int
+FN_Down_Field(FORM *form)
{
- return _nc_Set_Current_Field(form,
- Down_Neighbor_Field(form->current));
+ T((T_CALLED("FN_Down_Field(%p)"), form));
+ returnCode(_nc_Set_Current_Field(form,
+ Down_Neighbor_Field(form->current)));
}
/*----------------------------------------------------------------------------
- END of Field Navigation routines
+ END of Field Navigation routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Helper routines for Page Navigation
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int _nc_Set_Form_Page(FORM * form,
| int page,
| FIELD * field)
-|
+|
| Description : Make the given page number the current page and make
| the given field the current field on the page. If
| for the field NULL is given, make the first field on
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-_nc_Set_Form_Page
-(FORM * form, int page, FIELD * field)
+_nc_Set_Form_Page(FORM *form, int page, FIELD *field)
{
int res = E_OK;
- if ((form->curpage!=page))
+ if ((form->curpage != page))
{
FIELD *last_field, *field_on_page;
do
{
if (field_on_page->opts & O_VISIBLE)
- if ((res=Display_Field(field_on_page))!=E_OK)
- return(res);
+ if ((res = Display_Field(field_on_page)) != E_OK)
+ return (res);
field_on_page = field_on_page->snext;
- } while(field_on_page != last_field);
+ }
+ while (field_on_page != last_field);
if (field)
- res = _nc_Set_Current_Field(form,field);
+ res = _nc_Set_Current_Field(form, field);
else
/* N.B.: we don't encapsulate this by Inter_Field_Navigation(),
because this is already executed in a page navigation
- context that contains field navigation
+ context that contains field navigation
*/
res = FN_First_Field(form);
}
- return(res);
+ return (res);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Next_Page_Number(const FORM * form)
-|
+|
| Description : Calculate the page number following the current page
| number. This cycles if the highest page number is
-| reached.
+| reached.
|
| Return Values : The next page number
+--------------------------------------------------------------------------*/
-INLINE static int Next_Page_Number(const FORM * form)
+INLINE static int
+Next_Page_Number(const FORM *form)
{
return (form->curpage + 1) % form->maxpage;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Previous_Page_Number(const FORM * form)
-|
+|
| Description : Calculate the page number before the current page
| number. This cycles if the first page number is
-| reached.
+| reached.
|
| Return Values : The previous page number
+--------------------------------------------------------------------------*/
-INLINE static int Previous_Page_Number(const FORM * form)
+INLINE static int
+Previous_Page_Number(const FORM *form)
{
- return (form->curpage!=0 ? form->curpage - 1 : form->maxpage - 1);
+ return (form->curpage != 0 ? form->curpage - 1 : form->maxpage - 1);
}
-\f
+
/*----------------------------------------------------------------------------
- Page Navigation routines
+ Page Navigation routines
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Page_Navigation(
| int (* const fct) (FORM *),
| FORM * form)
-|
+|
| Description : Generic behavior for changing a page. This means
| that the field is left and a new field is entered.
| So the field must be validated and the field init/term
| E_INVALID_FIELD - field is invalid
| some other - error from subordinate call
+--------------------------------------------------------------------------*/
-static int Page_Navigation(int (* const fct) (FORM *), FORM * form)
+static int
+Page_Navigation(int (*const fct) (FORM *), FORM *form)
{
int res;
- if (!_nc_Internal_Validation(form))
+ if (!_nc_Internal_Validation(form))
res = E_INVALID_FIELD;
else
{
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
+ Call_Hook(form, fieldterm);
+ Call_Hook(form, formterm);
res = fct(form);
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
+ Call_Hook(form, forminit);
+ Call_Hook(form, fieldinit);
}
return res;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int PN_Next_Page(FORM * form)
-|
+|
| Description : Move to the next page of the form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int PN_Next_Page(FORM * form)
-{
- return _nc_Set_Form_Page(form,Next_Page_Number(form),(FIELD *)0);
+static int
+PN_Next_Page(FORM *form)
+{
+ T((T_CALLED("PN_Next_Page(%p)"), form));
+ returnCode(_nc_Set_Form_Page(form, Next_Page_Number(form), (FIELD *)0));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int PN_Previous_Page(FORM * form)
-|
+|
| Description : Move to the previous page of the form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int PN_Previous_Page(FORM * form)
+static int
+PN_Previous_Page(FORM *form)
{
- return _nc_Set_Form_Page(form,Previous_Page_Number(form),(FIELD *)0);
+ T((T_CALLED("PN_Previous_Page(%p)"), form));
+ returnCode(_nc_Set_Form_Page(form, Previous_Page_Number(form), (FIELD *)0));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int PN_First_Page(FORM * form)
-|
+|
| Description : Move to the first page of the form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int PN_First_Page(FORM * form)
+static int
+PN_First_Page(FORM *form)
{
- return _nc_Set_Form_Page(form,0,(FIELD *)0);
+ T((T_CALLED("PN_First_Page(%p)"), form));
+ returnCode(_nc_Set_Form_Page(form, 0, (FIELD *)0));
}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int PN_Last_Page(FORM * form)
-|
+|
| Description : Move to the last page of the form
|
| Return Values : E_OK - success
| != E_OK - error from subordinate call
+--------------------------------------------------------------------------*/
-static int PN_Last_Page(FORM * form)
+static int
+PN_Last_Page(FORM *form)
{
- return _nc_Set_Form_Page(form,form->maxpage-1,(FIELD *)0);
+ T((T_CALLED("PN_Last_Page(%p)"), form));
+ returnCode(_nc_Set_Form_Page(form, form->maxpage - 1, (FIELD *)0));
}
+
/*----------------------------------------------------------------------------
- END of Field Navigation routines
+ END of Field Navigation routines
--------------------------------------------------------------------------*/
-\f
+
/*----------------------------------------------------------------------------
Helper routines for the core form driver.
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : static int Data_Entry(FORM * form,int c)
-|
+|
| Description : Enter character c into at the current position of the
| current field of the form.
|
| E_REQUEST_DENIED -
| E_SYSTEM_ERROR -
+--------------------------------------------------------------------------*/
-static int Data_Entry(FORM * form, int c)
+static int
+Data_Entry(FORM *form, int c)
{
- FIELD *field = form->current;
+ FIELD *field = form->current;
int result = E_REQUEST_DENIED;
- if ( (field->opts & O_EDIT)
+ T((T_CALLED("Data_Entry(%p,%s)"), form, _tracechtype(c)));
+ if ((field->opts & O_EDIT)
#if FIX_FORM_INACTIVE_BUG
- && (field->opts & O_ACTIVE)
+ && (field->opts & O_ACTIVE)
#endif
- )
+ )
{
- if ( (field->opts & O_BLANK) &&
- First_Position_In_Current_Field(form) &&
- !(form->status & _FCHECK_REQUIRED) &&
- !(form->status & _WINDOW_MODIFIED) )
+ if ((field->opts & O_BLANK) &&
+ First_Position_In_Current_Field(form) &&
+ !(form->status & _FCHECK_REQUIRED) &&
+ !(form->status & _WINDOW_MODIFIED))
werase(form->w);
if (form->status & _OVLMODE)
{
- waddch(form->w,(chtype)c);
- }
- else /* no _OVLMODE */
+ waddch(form->w, (chtype)c);
+ }
+ else
+ /* no _OVLMODE */
{
bool There_Is_Room = Is_There_Room_For_A_Char_In_Line(form);
if (!(There_Is_Room ||
((Single_Line_Field(field) && Growable(field)))))
- return E_REQUEST_DENIED;
+ RETURN(E_REQUEST_DENIED);
- if (!There_Is_Room && !Field_Grown(field,1))
- return E_SYSTEM_ERROR;
+ if (!There_Is_Room && !Field_Grown(field, 1))
+ RETURN(E_SYSTEM_ERROR);
- winsch(form->w,(chtype)c);
+ winsch(form->w, (chtype)c);
}
- if ((result=Wrapping_Not_Necessary_Or_Wrapping_Ok(form))==E_OK)
+ if ((result = Wrapping_Not_Necessary_Or_Wrapping_Ok(form)) == E_OK)
{
- bool End_Of_Field= (((field->drows-1)==form->currow) &&
- ((field->dcols-1)==form->curcol));
+ bool End_Of_Field = (((field->drows - 1) == form->currow) &&
+ ((field->dcols - 1) == form->curcol));
+
form->status |= _WINDOW_MODIFIED;
if (End_Of_Field && !Growable(field) && (field->opts & O_AUTOSKIP))
- result = Inter_Field_Navigation(FN_Next_Field,form);
+ result = Inter_Field_Navigation(FN_Next_Field, form);
else
{
- if (End_Of_Field && Growable(field) && !Field_Grown(field,1))
+ if (End_Of_Field && Growable(field) && !Field_Grown(field, 1))
result = E_SYSTEM_ERROR;
else
{
+#if USE_WIDEC_SUPPORT
+ /*
+ * We have just added a byte to the form field. It may have
+ * been part of a multibyte character. If it was, the
+ * addch_used field is nonzero and we should not try to move
+ * to a new column.
+ */
+ if (WINDOW_EXT(form->w, addch_used) == 0)
+ IFN_Next_Character(form);
+#else
IFN_Next_Character(form);
+#endif
result = E_OK;
}
}
}
}
- return result;
+ RETURN(result);
}
-\f
+
/* Structure to describe the binding of a request code to a function.
The member keycode codes the request value as well as the generic
routine to use for the request. The code for the generic routine
is coded in the upper 16 Bits while the request code is coded in
- the lower 16 bits.
+ the lower 16 bits.
In terms of C++ you might think of a request as a class with a
virtual method "perform". The different types of request are
derived from this base class and overload (or not) the base class
implementation of perform.
*/
-typedef struct {
- int keycode; /* must be at least 32 bit: hi:mode, lo: key */
- int (*cmd)(FORM *); /* low level driver routine for this key */
-} Binding_Info;
+typedef struct
+{
+ int keycode; /* must be at least 32 bit: hi:mode, lo: key */
+ int (*cmd) (FORM *); /* low level driver routine for this key */
+}
+Binding_Info;
/* You may see this is the class-id of the request type class */
-#define ID_PN (0x00000000) /* Page navigation */
-#define ID_FN (0x00010000) /* Inter-Field navigation */
-#define ID_IFN (0x00020000) /* Intra-Field navigation */
-#define ID_VSC (0x00030000) /* Vertical Scrolling */
-#define ID_HSC (0x00040000) /* Horizontal Scrolling */
-#define ID_FE (0x00050000) /* Field Editing */
-#define ID_EM (0x00060000) /* Edit Mode */
-#define ID_FV (0x00070000) /* Field Validation */
-#define ID_CH (0x00080000) /* Choice */
+#define ID_PN (0x00000000) /* Page navigation */
+#define ID_FN (0x00010000) /* Inter-Field navigation */
+#define ID_IFN (0x00020000) /* Intra-Field navigation */
+#define ID_VSC (0x00030000) /* Vertical Scrolling */
+#define ID_HSC (0x00040000) /* Horizontal Scrolling */
+#define ID_FE (0x00050000) /* Field Editing */
+#define ID_EM (0x00060000) /* Edit Mode */
+#define ID_FV (0x00070000) /* Field Validation */
+#define ID_CH (0x00080000) /* Choice */
#define ID_Mask (0xffff0000)
#define Key_Mask (0x0000ffff)
#define ID_Shft (16)
/* This array holds all the Binding Infos */
-static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
+/* *INDENT-OFF* */
+static const Binding_Info bindings[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
{
{ REQ_NEXT_PAGE |ID_PN ,PN_Next_Page},
{ REQ_PREV_PAGE |ID_PN ,PN_Previous_Page},
{ REQ_FIRST_PAGE |ID_PN ,PN_First_Page},
{ REQ_LAST_PAGE |ID_PN ,PN_Last_Page},
-
+
{ REQ_NEXT_FIELD |ID_FN ,FN_Next_Field},
{ REQ_PREV_FIELD |ID_FN ,FN_Previous_Field},
{ REQ_FIRST_FIELD |ID_FN ,FN_First_Field},
{ REQ_RIGHT_FIELD |ID_FN ,FN_Right_Field},
{ REQ_UP_FIELD |ID_FN ,FN_Up_Field},
{ REQ_DOWN_FIELD |ID_FN ,FN_Down_Field},
-
+
{ REQ_NEXT_CHAR |ID_IFN ,IFN_Next_Character},
{ REQ_PREV_CHAR |ID_IFN ,IFN_Previous_Character},
{ REQ_NEXT_LINE |ID_IFN ,IFN_Next_Line},
{ REQ_RIGHT_CHAR |ID_IFN ,IFN_Right_Character},
{ REQ_UP_CHAR |ID_IFN ,IFN_Up_Character},
{ REQ_DOWN_CHAR |ID_IFN ,IFN_Down_Character},
-
+
{ REQ_NEW_LINE |ID_FE ,FE_New_Line},
{ REQ_INS_CHAR |ID_FE ,FE_Insert_Character},
{ REQ_INS_LINE |ID_FE ,FE_Insert_Line},
{ REQ_CLR_EOL |ID_FE ,FE_Clear_To_End_Of_Line},
{ REQ_CLR_EOF |ID_FE ,FE_Clear_To_End_Of_Field},
{ REQ_CLR_FIELD |ID_FE ,FE_Clear_Field},
-
+
{ REQ_OVL_MODE |ID_EM ,EM_Overlay_Mode},
{ REQ_INS_MODE |ID_EM ,EM_Insert_Mode},
-
+
{ REQ_SCR_FLINE |ID_VSC ,VSC_Scroll_Line_Forward},
{ REQ_SCR_BLINE |ID_VSC ,VSC_Scroll_Line_Backward},
{ REQ_SCR_FPAGE |ID_VSC ,VSC_Scroll_Page_Forward},
{ REQ_SCR_BPAGE |ID_VSC ,VSC_Scroll_Page_Backward},
{ REQ_SCR_FHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Forward},
{ REQ_SCR_BHPAGE |ID_VSC ,VSC_Scroll_Half_Page_Backward},
-
+
{ REQ_SCR_FCHAR |ID_HSC ,HSC_Scroll_Char_Forward},
{ REQ_SCR_BCHAR |ID_HSC ,HSC_Scroll_Char_Backward},
{ REQ_SCR_HFLINE |ID_HSC ,HSC_Horizontal_Line_Forward},
{ REQ_SCR_HBLINE |ID_HSC ,HSC_Horizontal_Line_Backward},
{ REQ_SCR_HFHALF |ID_HSC ,HSC_Horizontal_Half_Line_Forward},
{ REQ_SCR_HBHALF |ID_HSC ,HSC_Horizontal_Half_Line_Backward},
-
+
{ REQ_VALIDATION |ID_FV ,FV_Validation},
{ REQ_NEXT_CHOICE |ID_CH ,CR_Next_Choice},
{ REQ_PREV_CHOICE |ID_CH ,CR_Previous_Choice}
};
+/* *INDENT-ON* */
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int form_driver(FORM * form,int c)
-|
+|
| Description : This is the workhorse of the forms system. It checks
| to determine whether the character c is a request or
| data. If it is a request, the form driver executes
| E_UNKNOWN_COMMAND - command not known
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-form_driver (FORM * form, int c)
+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;
+ T((T_CALLED("form_driver(%p,%d)"), form, c));
+
if (!form)
RETURN(E_BAD_ARGUMENT);
if (!(form->field))
RETURN(E_NOT_CONNECTED);
-
+
assert(form->page);
-
- if (c==FIRST_ACTIVE_MAGIC)
+
+ if (c == FIRST_ACTIVE_MAGIC)
{
form->current = _nc_First_Active_Field(form);
- return E_OK;
+ RETURN(E_OK);
}
-
- assert(form->current &&
- form->current->buf &&
+
+ assert(form->current &&
+ form->current->buf &&
(form->current->form == form)
- );
-
- if ( form->status & _IN_DRIVER )
+ );
+
+ if (form->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
- if ( !( form->status & _POSTED ) )
+ if (!(form->status & _POSTED))
RETURN(E_NOT_POSTED);
-
- if ((c>=MIN_FORM_COMMAND && c<=MAX_FORM_COMMAND) &&
- ((bindings[c-MIN_FORM_COMMAND].keycode & Key_Mask) == c))
- BI = &(bindings[c-MIN_FORM_COMMAND]);
-
+
+ if ((c >= MIN_FORM_COMMAND && c <= MAX_FORM_COMMAND) &&
+ ((bindings[c - MIN_FORM_COMMAND].keycode & Key_Mask) == c))
+ BI = &(bindings[c - MIN_FORM_COMMAND]);
+
if (BI)
{
- typedef int (*Generic_Method)(int (* const)(FORM *),FORM *);
- static const Generic_Method Generic_Methods[] =
- {
- Page_Navigation, /* overloaded to call field&form hooks */
- Inter_Field_Navigation, /* overloaded to call field hooks */
- NULL, /* Intra-Field is generic */
- Vertical_Scrolling, /* Overloaded to check multi-line */
- Horizontal_Scrolling, /* Overloaded to check single-line */
- Field_Editing, /* Overloaded to mark modification */
- NULL, /* Edit Mode is generic */
- NULL, /* Field Validation is generic */
- NULL /* Choice Request is generic */
- };
- size_t nMethods = (sizeof(Generic_Methods)/sizeof(Generic_Methods[0]));
- size_t method = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff;
-
- if ( (method >= nMethods) || !(BI->cmd) )
+ typedef int (*Generic_Method) (int (*const) (FORM *), FORM *);
+ static const Generic_Method Generic_Methods[] =
+ {
+ Page_Navigation, /* overloaded to call field&form hooks */
+ Inter_Field_Navigation, /* overloaded to call field hooks */
+ NULL, /* Intra-Field is generic */
+ Vertical_Scrolling, /* Overloaded to check multi-line */
+ Horizontal_Scrolling, /* Overloaded to check single-line */
+ Field_Editing, /* Overloaded to mark modification */
+ NULL, /* Edit Mode is generic */
+ NULL, /* Field Validation is generic */
+ NULL /* Choice Request is generic */
+ };
+ size_t nMethods = (sizeof(Generic_Methods) / sizeof(Generic_Methods[0]));
+ size_t method = ((BI->keycode & ID_Mask) >> ID_Shft) & 0xffff;
+
+ if ((method >= nMethods) || !(BI->cmd))
res = E_SYSTEM_ERROR;
else
{
Generic_Method fct = Generic_Methods[method];
+
if (fct)
- res = fct(BI->cmd,form);
+ res = fct(BI->cmd, form);
else
- res = (BI->cmd)(form);
+ res = (BI->cmd) (form);
}
- }
- else
+ }
+ else if (!(c & (~(int)MAX_REGULAR_CHARACTER)))
{
- if (!(c & (~(int)MAX_REGULAR_CHARACTER)) &&
- isprint((unsigned char)c) &&
- Check_Char(form->current->type,c,
+ /*
+ * If we're using 8-bit characters, iscntrl+isprint cover the whole set.
+ * But with multibyte characters, there is a third possibility, i.e.,
+ * parts of characters that build up into printable characters which are
+ * not considered printable.
+ *
+ * FIXME: the wide-character branch should also use Check_Char().
+ */
+#if USE_WIDEC_SUPPORT
+ if (!iscntrl(UChar(c)))
+#else
+ if (isprint(UChar(c)) &&
+ Check_Char(form->current->type, c,
(TypeArgument *)(form->current->arg)))
- res = Data_Entry(form,c);
+#endif
+ res = Data_Entry(form, c);
}
_nc_Refresh_Current_Field(form);
RETURN(res);
}
-\f
+
/*----------------------------------------------------------------------------
Field-Buffer manipulation routines.
- The effects of setting a buffer is tightly coupled to the core of the form
+ The effects of setting a buffer are tightly coupled to the core of the form
driver logic. This is especially true in the case of growable fields.
- So I don't separate this into an own module.
+ So I don't separate this into a separate module.
--------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_buffer(FIELD *field,
| int buffer, char *value)
-|
+|
| Description : Set the given buffer of the field to the given value.
| Buffer 0 stores the displayed content of the field.
| 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.
+| minated. 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)
-set_field_buffer
-(FIELD * field, int buffer, const char * value)
+set_field_buffer(FIELD *field, int buffer, const char *value)
{
- char *s, *p;
+ FIELD_CELL *p;
int res = E_OK;
+ unsigned int i;
unsigned int len;
- if ( !field || !value || ((buffer < 0)||(buffer > field->nbuf)) )
+#if USE_WIDEC_SUPPORT
+ FIELD_CELL *widevalue = 0;
+#endif
+
+ T((T_CALLED("set_field_buffer(%p,%d,%s)"), field, buffer, _nc_visbuf(value)));
+
+ if (!field || !value || ((buffer < 0) || (buffer > field->nbuf)))
RETURN(E_BAD_ARGUMENT);
- len = Buffer_Length(field);
+ len = Buffer_Length(field);
- if (buffer==0)
+ if (buffer == 0)
{
- const char *v;
- unsigned int i = 0;
-
- for(v=value; *v && (i<len); v++,i++)
+ for (i = 0; (value[i] != '\0') && (i < len); ++i)
{
- if (!isprint((unsigned char)*v))
+ if (iscntrl(UChar(value[i])))
RETURN(E_BAD_ARGUMENT);
}
}
if (Growable(field))
{
/* for a growable field we must assume zero terminated strings, because
- somehow we have to detect the length of what should be copied.
- */
+ somehow we have to detect the length of what should be copied.
+ */
unsigned int vlen = strlen(value);
+
if (vlen > len)
{
if (!Field_Grown(field,
- (int)(1 + (vlen-len)/((field->rows+field->nrow)*field->cols))))
+ (int)(1 + (vlen - len) / ((field->rows + field->nrow)
+ * field->cols))))
RETURN(E_SYSTEM_ERROR);
/* in this case we also have to check, whether or not the remaining
characters in value are also printable for buffer 0. */
- if (buffer==0)
+ if (buffer == 0)
{
- unsigned int i;
-
- for(i=len; i<vlen; i++)
- if (!isprint((unsigned char)value[i]))
+ for (i = len; i < vlen; i++)
+ if (iscntrl(UChar(value[i])))
RETURN(E_BAD_ARGUMENT);
}
len = vlen;
}
}
-
- p = Address_Of_Nth_Buffer(field,buffer);
-#if HAVE_MEMCCPY
- s = (char *) memccpy(p, value, 0, len);
+ p = Address_Of_Nth_Buffer(field, buffer);
+
+#if USE_WIDEC_SUPPORT
+ /*
+ * Use addstr's logic for converting a string to an array of cchar_t's.
+ * There should be a better way, but this handles nonspacing characters
+ * and other special cases that we really do not want to handle here.
+ */
+ wclear(field->working);
+ mvwaddstr(field->working, 0, 0, value);
+
+ if ((widevalue = (FIELD_CELL *)calloc(len, sizeof(FIELD_CELL))) == 0)
+ {
+ RETURN(E_SYSTEM_ERROR);
+ }
+ else
+ {
+ mvwin_wchnstr(field->working, 0, 0, widevalue, (int)len);
+ for (i = 0; i < len; ++i)
+ {
+ if (CharEq(myZEROS, widevalue[i]))
+ {
+ while (i < len)
+ p[i++] = myBLANK;
+ break;
+ }
+ p[i] = widevalue[i];
+ }
+ free(widevalue);
+ }
#else
- for(s=(char *)value; *s && (s < (value+len)); s++)
- p[s-value] = *s;
- if (s < (value+len))
+ for (i = 0; i < len; ++i)
{
- p[s-value] = *s++;
- s = p + (s-value);
+ if (value[i] == '\0')
+ {
+ while (i < len)
+ p[i++] = myBLANK;
+ break;
+ }
+ p[i] = value[i];
}
- else
- s=(char *)0;
#endif
- if (s)
- { /* this means, value was null terminated and not greater than the
- buffer. We have to pad with blanks. Please note that due to memccpy
- logic s points after the terminating null. */
- s--; /* now we point to the terminator. */
- assert(len >= (unsigned int)(s-p));
- if (len > (unsigned int)(s-p))
- memset(s,C_BLANK,len-(unsigned int)(s-p));
- }
-
- if (buffer==0)
+ if (buffer == 0)
{
int syncres;
- if (((syncres=Synchronize_Field( field ))!=E_OK) &&
- (res==E_OK))
+
+ if (((syncres = Synchronize_Field(field)) != E_OK) &&
+ (res == E_OK))
res = syncres;
- if (((syncres=Synchronize_Linked_Fields(field ))!=E_OK) &&
- (res==E_OK))
+ if (((syncres = Synchronize_Linked_Fields(field)) != E_OK) &&
+ (res == E_OK))
res = syncres;
}
RETURN(res);
-}
+}
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : char *field_buffer(const FIELD *field,int buffer)
-|
+|
| Description : Return the address of the buffer for the field.
|
| Return Values : Pointer to buffer or NULL if arguments were invalid.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(char *)
-field_buffer (const FIELD * field, int buffer)
+field_buffer(const FIELD *field, int buffer)
{
+ char *result = 0;
+
+ T((T_CALLED("field_buffer(%p,%d)"), field, buffer));
+
if (field && (buffer >= 0) && (buffer <= field->nbuf))
- return Address_Of_Nth_Buffer(field,buffer);
- else
- return (char *)0;
+ {
+#if USE_WIDEC_SUPPORT
+ FIELD_CELL *data = Address_Of_Nth_Buffer(field, buffer);
+ unsigned need = 0;
+ int size = Buffer_Length(field);
+ int n;
+
+ /* determine the number of bytes needed to store the expanded string */
+ for (n = 0; n < size; ++n)
+ {
+ if (!isWidecExt(data[n]))
+ {
+ mbstate_t state;
+ size_t next;
+
+ init_mb(state);
+ next = _nc_wcrtomb(0, data[n].chars[0], &state);
+ if (!isEILSEQ(next))
+ {
+ if (next != 0)
+ need += next;
+ }
+ }
+ }
+
+ /* allocate a place to store the expanded string */
+ if (field->expanded[buffer] != 0)
+ free(field->expanded[buffer]);
+ field->expanded[buffer] = typeMalloc(char, need + 1);
+
+ /* expand the multibyte data */
+ if ((result = field->expanded[buffer]) != 0)
+ {
+ wclear(field->working);
+ mvwadd_wchnstr(field->working, 0, 0, data, size);
+ mvwinnstr(field->working, 0, 0, result, (int)need + 1);
+ }
+#else
+ result = Address_Of_Nth_Buffer(field, buffer);
+#endif
+ }
+ returnPtr(result);
+}
+
+#if USE_WIDEC_SUPPORT
+
+/* FIXME: see lib_get_wch.c */
+#if HAVE_MBTOWC && HAVE_MBLEN
+#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
+#define count_mbytes(buffer,length,state) mblen(buffer,length)
+#define trans_mbytes(wch,buffer,length,state) \
+ (int) mbtowc(&wch, buffer, length)
+#elif HAVE_MBRTOWC && HAVE_MBRLEN
+#define NEED_STATE
+#define reset_mbytes(state) init_mb(state)
+#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
+#define trans_mbytes(wch,buffer,length,state) \
+ (int) mbrtowc(&wch, buffer, length, &state)
+#else
+make an error
+#endif
+
+/*---------------------------------------------------------------------------
+| Convert a multibyte string to a wide-character string. The result must be
+| freed by the caller.
++--------------------------------------------------------------------------*/
+NCURSES_EXPORT(wchar_t *)
+_nc_Widen_String(char *source, int *lengthp)
+{
+ wchar_t *result = 0;
+ wchar_t wch;
+ size_t given = strlen(source);
+ size_t tries;
+ int pass;
+ int status;
+
+#ifdef NEED_STATE
+ mbstate_t state;
+#endif
+
+ for (pass = 0; pass < 2; ++pass)
+ {
+ unsigned need = 0;
+ size_t passed = 0;
+
+ while (passed < given)
+ {
+ bool found = FALSE;
+
+ for (tries = 1, status = 0; tries <= (given - passed); ++tries)
+ {
+ int save = source[passed + tries];
+
+ source[passed + tries] = 0;
+ reset_mbytes(state);
+ status = trans_mbytes(wch, source + passed, tries, state);
+ source[passed + tries] = save;
+
+ if (status > 0)
+ {
+ found = TRUE;
+ break;
+ }
+ }
+ if (found)
+ {
+ if (pass)
+ {
+ result[need] = wch;
+ }
+ passed += status;
+ ++need;
+ }
+ else
+ {
+ if (pass)
+ {
+ result[need] = source[passed];
+ }
+ ++need;
+ ++passed;
+ }
+ }
+
+ if (!pass)
+ {
+ if (!need)
+ break;
+ result = typeCalloc(wchar_t, need);
+
+ *lengthp = need;
+ if (result == 0)
+ break;
+ }
+ }
+
+ return result;
}
+#endif
/* frm_driver.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_hook.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_hook.c,v 1.14 2004/12/25 22:37:27 tom 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)\
{\
+ T((T_CALLED("set_" #typ"_"#name"(%p,%p)"), form, func));\
(Normalize_Form( form ) -> typ ## name) = func ;\
RETURN(E_OK);\
}
#define GEN_HOOK_GET_FUNCTION( typ, name ) \
NCURSES_IMPEXP Form_Hook NCURSES_API typ ## _ ## name ( const FORM *form )\
{\
- return ( Normalize_Form( form ) -> typ ## name );\
+ T((T_CALLED(#typ "_" #name "(%p)"), form));\
+ returnFormHook( Normalize_Form( form ) -> typ ## name );\
}
-\f
+
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_init(FORM *form, Form_Hook f)
-|
+|
| Description : Assigns an application defined initialization function
| to be called when the form is posted and just after
| the current field changes.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,init)
+GEN_HOOK_SET_FUNCTION(field, init)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : Form_Hook field_init(const FORM *form)
-|
+|
| Description : Retrieve field initialization routine address.
|
| Return Values : The address or NULL if no hook defined.
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,init)
+GEN_HOOK_GET_FUNCTION(field, init)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_field_term(FORM *form, Form_Hook f)
-|
+|
| Description : Assigns an application defined finalization function
| to be called when the form is unposted and just before
| the current field changes.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(field,term)
+GEN_HOOK_SET_FUNCTION(field, term)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : Form_Hook field_term(const FORM *form)
-|
+|
| Description : Retrieve field finalization routine address.
|
| Return Values : The address or NULL if no hook defined.
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(field,term)
+GEN_HOOK_GET_FUNCTION(field, term)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_init(FORM *form, Form_Hook f)
-|
+|
| Description : Assigns an application defined initialization function
| to be called when the form is posted and just after
| a page change.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,init)
+GEN_HOOK_SET_FUNCTION(form, init)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : Form_Hook form_init(const FORM *form)
-|
+|
| Description : Retrieve form initialization routine address.
|
| Return Values : The address or NULL if no hook defined.
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,init)
+GEN_HOOK_GET_FUNCTION(form, init)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : int set_form_term(FORM *form, Form_Hook f)
-|
+|
| Description : Assigns an application defined finalization function
| to be called when the form is unposted and just before
| a page change.
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION(form,term)
+GEN_HOOK_SET_FUNCTION(form, term)
/*---------------------------------------------------------------------------
-| Facility : libnform
+| Facility : libnform
| Function : Form_Hook form_term(const FORM *form)
-|
+|
| Description : Retrieve form finalization routine address.
|
| Return Values : The address or NULL if no hook defined.
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION(form,term)
+GEN_HOOK_GET_FUNCTION(form, term)
/* frm_hook.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_opts.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_opts.c,v 1.14 2005/04/16 16:59:18 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_BAD_ARGUMENT - invalid options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_form_opts (FORM * form, Form_Options opts)
+set_form_opts(FORM *form, Form_Options opts)
{
+ T((T_CALLED("set_form_opts(%p,%d)"), form, opts));
+
opts &= ALL_FORM_OPTS;
if (opts & ~ALL_FORM_OPTS)
RETURN(E_BAD_ARGUMENT);
else
{
- Normalize_Form( form )->opts = opts;
+ Normalize_Form(form)->opts = opts;
RETURN(E_OK);
}
}
| Return Values : The option flags.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(Form_Options)
-form_opts (const FORM * form)
+form_opts(const FORM *form)
{
- return (Normalize_Form(form)->opts & ALL_FORM_OPTS);
+ T((T_CALLED("form_opts(%p)"), form));
+ returnCode((int)(Normalize_Form(form)->opts & ALL_FORM_OPTS));
}
/*---------------------------------------------------------------------------
| E_BAD_ARGUMENT - invalid options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-form_opts_on (FORM * form, Form_Options opts)
+form_opts_on(FORM *form, Form_Options opts)
{
+ T((T_CALLED("form_opts_on(%p,%d)"), form, opts));
+
opts &= ALL_FORM_OPTS;
if (opts & ~ALL_FORM_OPTS)
RETURN(E_BAD_ARGUMENT);
else
{
- Normalize_Form( form )->opts |= opts;
+ Normalize_Form(form)->opts |= opts;
RETURN(E_OK);
}
}
| E_BAD_ARGUMENT - invalid options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-form_opts_off (FORM * form, Form_Options opts)
+form_opts_off(FORM *form, Form_Options opts)
{
+ T((T_CALLED("form_opts_off(%p,%d)"), form, opts));
+
opts &= ALL_FORM_OPTS;
if (opts & ~ALL_FORM_OPTS)
RETURN(E_BAD_ARGUMENT);
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_page.c,v 1.8 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_page.c,v 1.10 2004/12/11 22:08:21 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_form_page (FORM * form, int page)
+set_form_page(FORM *form, int page)
{
int err = E_OK;
- if ( !form || (page<0) || (page>=form->maxpage) )
+ T((T_CALLED("set_form_page(%p,%d)"), form, page));
+
+ if (!form || (page < 0) || (page >= form->maxpage))
RETURN(E_BAD_ARGUMENT);
if (!(form->status & _POSTED))
{
form->curpage = page;
form->current = _nc_First_Active_Field(form);
- }
+ }
else
{
- if (form->status & _IN_DRIVER)
+ if (form->status & _IN_DRIVER)
err = E_BAD_STATE;
else
{
if (form->curpage != page)
{
- if (!_nc_Internal_Validation(form))
+ if (!_nc_Internal_Validation(form))
err = E_INVALID_FIELD;
else
{
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
- err = _nc_Set_Form_Page(form,page,(FIELD *)0);
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
+ Call_Hook(form, fieldterm);
+ Call_Hook(form, formterm);
+ err = _nc_Set_Form_Page(form, page, (FIELD *)0);
+ Call_Hook(form, forminit);
+ Call_Hook(form, fieldinit);
_nc_Refresh_Current_Field(form);
}
}
| -1 : invalid form pointer
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-form_page (const FORM * form)
+form_page(const FORM *form)
{
- return Normalize_Form(form)->curpage;
+ T((T_CALLED("form_page(%p)"), form));
+
+ returnCode(Normalize_Form(form)->curpage);
}
/* frm_page.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_post.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_post.c,v 1.9 2004/12/11 22:19:06 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_SYSTEM_ERROR - system error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-post_form (FORM * form)
+post_form(FORM *form)
{
WINDOW *formwin;
int err;
int page;
+ T((T_CALLED("post_form(%p)"), form));
+
if (!form)
RETURN(E_BAD_ARGUMENT);
- if (form->status & _POSTED)
+ if (form->status & _POSTED)
RETURN(E_POSTED);
if (!(form->field))
RETURN(E_NOT_CONNECTED);
-
+
formwin = Get_Form_Window(form);
- if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin)))
+ if ((form->cols > getmaxx(formwin)) || (form->rows > getmaxy(formwin)))
RETURN(E_NO_ROOM);
/* reset form->curpage to an invald value. This forces Set_Form_Page
to do the page initialization which is required by post_form.
- */
+ */
page = form->curpage;
form->curpage = -1;
- if ((err = _nc_Set_Form_Page(form,page,form->current))!=E_OK)
+ if ((err = _nc_Set_Form_Page(form, page, form->current)) != E_OK)
RETURN(err);
form->status |= _POSTED;
- Call_Hook(form,forminit);
- Call_Hook(form,fieldinit);
+ Call_Hook(form, forminit);
+ Call_Hook(form, fieldinit);
_nc_Refresh_Current_Field(form);
RETURN(E_OK);
| E_BAD_STATE - called from a hook routine
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-unpost_form (FORM * form)
+unpost_form(FORM *form)
{
+ T((T_CALLED("unpost_form(%p)"), form));
+
if (!form)
RETURN(E_BAD_ARGUMENT);
- if (!(form->status & _POSTED))
+ if (!(form->status & _POSTED))
RETURN(E_NOT_POSTED);
- if (form->status & _IN_DRIVER)
+ if (form->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
- Call_Hook(form,fieldterm);
- Call_Hook(form,formterm);
+ Call_Hook(form, fieldterm);
+ Call_Hook(form, formterm);
werase(Get_Form_Window(form));
delwin(form->w);
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_req_name.c,v 1.10 2003/10/25 15:17:08 tom Exp $")
-
-static const char *request_names[ MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1 ] = {
- "NEXT_PAGE" ,
- "PREV_PAGE" ,
- "FIRST_PAGE" ,
- "LAST_PAGE" ,
-
- "NEXT_FIELD" ,
- "PREV_FIELD" ,
- "FIRST_FIELD" ,
- "LAST_FIELD" ,
- "SNEXT_FIELD" ,
- "SPREV_FIELD" ,
- "SFIRST_FIELD" ,
- "SLAST_FIELD" ,
- "LEFT_FIELD" ,
- "RIGHT_FIELD" ,
- "UP_FIELD" ,
- "DOWN_FIELD" ,
-
- "NEXT_CHAR" ,
- "PREV_CHAR" ,
- "NEXT_LINE" ,
- "PREV_LINE" ,
- "NEXT_WORD" ,
- "PREV_WORD" ,
- "BEG_FIELD" ,
- "END_FIELD" ,
- "BEG_LINE" ,
- "END_LINE" ,
- "LEFT_CHAR" ,
- "RIGHT_CHAR" ,
- "UP_CHAR" ,
- "DOWN_CHAR" ,
-
- "NEW_LINE" ,
- "INS_CHAR" ,
- "INS_LINE" ,
- "DEL_CHAR" ,
- "DEL_PREV" ,
- "DEL_LINE" ,
- "DEL_WORD" ,
- "CLR_EOL" ,
- "CLR_EOF" ,
- "CLR_FIELD" ,
- "OVL_MODE" ,
- "INS_MODE" ,
- "SCR_FLINE" ,
- "SCR_BLINE" ,
- "SCR_FPAGE" ,
- "SCR_BPAGE" ,
- "SCR_FHPAGE" ,
- "SCR_BHPAGE" ,
- "SCR_FCHAR" ,
- "SCR_BCHAR" ,
- "SCR_HFLINE" ,
- "SCR_HBLINE" ,
- "SCR_HFHALF" ,
- "SCR_HBHALF" ,
-
- "VALIDATION" ,
- "NEXT_CHOICE" ,
- "PREV_CHOICE"
+MODULE_ID("$Id: frm_req_name.c,v 1.15 2005/04/16 16:59:27 tom Exp $")
+
+static const char *request_names[MAX_FORM_COMMAND - MIN_FORM_COMMAND + 1] =
+{
+ "NEXT_PAGE",
+ "PREV_PAGE",
+ "FIRST_PAGE",
+ "LAST_PAGE",
+
+ "NEXT_FIELD",
+ "PREV_FIELD",
+ "FIRST_FIELD",
+ "LAST_FIELD",
+ "SNEXT_FIELD",
+ "SPREV_FIELD",
+ "SFIRST_FIELD",
+ "SLAST_FIELD",
+ "LEFT_FIELD",
+ "RIGHT_FIELD",
+ "UP_FIELD",
+ "DOWN_FIELD",
+
+ "NEXT_CHAR",
+ "PREV_CHAR",
+ "NEXT_LINE",
+ "PREV_LINE",
+ "NEXT_WORD",
+ "PREV_WORD",
+ "BEG_FIELD",
+ "END_FIELD",
+ "BEG_LINE",
+ "END_LINE",
+ "LEFT_CHAR",
+ "RIGHT_CHAR",
+ "UP_CHAR",
+ "DOWN_CHAR",
+
+ "NEW_LINE",
+ "INS_CHAR",
+ "INS_LINE",
+ "DEL_CHAR",
+ "DEL_PREV",
+ "DEL_LINE",
+ "DEL_WORD",
+ "CLR_EOL",
+ "CLR_EOF",
+ "CLR_FIELD",
+ "OVL_MODE",
+ "INS_MODE",
+ "SCR_FLINE",
+ "SCR_BLINE",
+ "SCR_FPAGE",
+ "SCR_BPAGE",
+ "SCR_FHPAGE",
+ "SCR_BHPAGE",
+ "SCR_FCHAR",
+ "SCR_BCHAR",
+ "SCR_HFLINE",
+ "SCR_HBLINE",
+ "SCR_HFHALF",
+ "SCR_HBHALF",
+
+ "VALIDATION",
+ "NEXT_CHOICE",
+ "PREV_CHOICE"
};
+
#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
/*---------------------------------------------------------------------------
| NULL - on invalid request code
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(const char *)
-form_request_name ( int request )
+form_request_name(int request)
{
- if ( (request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND) )
+ T((T_CALLED("form_request_name(%d)"), request));
+
+ if ((request < MIN_FORM_COMMAND) || (request > MAX_FORM_COMMAND))
{
- SET_ERROR (E_BAD_ARGUMENT);
- return (const char *)0;
+ SET_ERROR(E_BAD_ARGUMENT);
+ returnCPtr((const char *)0);
}
else
- return request_names[ request - MIN_FORM_COMMAND ];
+ returnCPtr(request_names[request - MIN_FORM_COMMAND]);
}
-
/*---------------------------------------------------------------------------
| Facility : libnform
| Function : int form_request_by_name (const char *str);
| E_NO_MATCH - request not found
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-form_request_by_name ( const char *str )
-{
+form_request_by_name(const char *str)
+{
/* because the table is so small, it doesn't really hurt
to run sequentially through it.
- */
+ */
unsigned int i = 0;
char buf[16];
-
+
+ T((T_CALLED("form_request_by_name(%s)"), _nc_visbuf(str)));
+
if (str)
{
- strncpy(buf,str,sizeof(buf));
- while( (i<sizeof(buf)) && (buf[i] != '\0') )
+ strncpy(buf, str, sizeof(buf));
+ while ((i < sizeof(buf)) && (buf[i] != '\0'))
{
buf[i] = toupper(buf[i]);
i++;
}
-
- for (i=0; i < A_SIZE; i++)
+
+ for (i = 0; i < A_SIZE; i++)
{
- if (strncmp(request_names[i],buf,sizeof(buf))==0)
- return MIN_FORM_COMMAND + i;
- }
+ if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
+ returnCode(MIN_FORM_COMMAND + (int) i);
+ }
}
RETURN(E_NO_MATCH);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_scale.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_scale.c,v 1.9 2004/12/11 22:12:34 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_NOT_CONNECTED - no fields connected to form
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-scale_form (const FORM * form, int * rows, int * cols)
+scale_form(const FORM *form, int *rows, int *cols)
{
- if ( !form )
+ T((T_CALLED("scale_form(%p,%p,%p)"), form, rows, cols));
+
+ if (!form)
RETURN(E_BAD_ARGUMENT);
- if ( !(form->field) )
+ if (!(form->field))
RETURN(E_NOT_CONNECTED);
-
- if (rows)
+
+ if (rows)
*rows = form->rows;
- if (cols)
+ if (cols)
*cols = form->cols;
-
+
RETURN(E_OK);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_sub.c,v 1.7 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_sub.c,v 1.9 2004/12/11 22:13:39 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_POSTED - form is posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_form_sub (FORM * form, WINDOW * win)
+set_form_sub(FORM *form, WINDOW *win)
{
- if (form && (form->status & _POSTED))
+ T((T_CALLED("set_form_sub(%p,%p)"), form, win));
+
+ if (form && (form->status & _POSTED))
RETURN(E_POSTED);
- Normalize_Form( form )->sub = win;
+ Normalize_Form(form)->sub = win;
RETURN(E_OK);
-}
+}
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : The pointer to the Subwindow.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(WINDOW *)
-form_sub (const FORM * form)
+form_sub(const FORM *form)
{
- const FORM* f = Normalize_Form( form );
- return Get_Form_Window(f);
+ const FORM *f;
+
+ T((T_CALLED("form_sub(%p)"), form));
+
+ f = Normalize_Form(form);
+ returnWin(Get_Form_Window(f));
}
/* frm_sub.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_user.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_user.c,v 1.14 2004/12/25 22:37:56 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : E_OK - on success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_form_userptr (FORM * form, void *usrptr)
+set_form_userptr(FORM *form, void *usrptr)
{
+ T((T_CALLED("set_form_userptr(%p,%p)"), form, usrptr));
+
Normalize_Form(form)->usrptr = usrptr;
RETURN(E_OK);
}
| NULL is returned
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void *)
-form_userptr (const FORM * form)
+form_userptr(const FORM *form)
{
- return Normalize_Form(form)->usrptr;
+ T((T_CALLED("form_userptr(%p)"), form));
+ returnVoidPtr(Normalize_Form(form)->usrptr);
}
/* frm_user.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "form.priv.h"
-MODULE_ID("$Id: frm_win.c,v 1.11 2003/10/25 15:17:08 tom Exp $")
+MODULE_ID("$Id: frm_win.c,v 1.13 2004/12/11 22:15:27 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| E_POSTED - form is posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_form_win (FORM * form, WINDOW * win)
+set_form_win(FORM *form, WINDOW *win)
{
- if (form && (form->status & _POSTED))
+ T((T_CALLED("set_form_win(%p,%p)"), form, win));
+
+ if (form && (form->status & _POSTED))
RETURN(E_POSTED);
- Normalize_Form( form )->win = win;
+ Normalize_Form(form)->win = win;
RETURN(E_OK);
-}
+}
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : The pointer to the Window or stdscr if there is none.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(WINDOW *)
-form_win (const FORM * form)
+form_win(const FORM *form)
{
- const FORM* f = Normalize_Form( form );
- return (f->win ? f->win : stdscr);
+ const FORM *f;
+
+ T((T_CALLED("form_win(%p)"), form));
+
+ f = Normalize_Form(form);
+ returnWin(f->win ? f->win : stdscr);
}
/* frm_win.c ends here */
-
-
/*
* THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
* You may freely copy it for use as a template for your own field types.
#include "form.priv.h"
-MODULE_ID("$Id: fty_alnum.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_alnum.c,v 1.18 2005/08/20 18:26:16 tom Exp $")
+
+#define thisARG alnumARG
-typedef struct {
- int width;
-} alnumARG;
+typedef struct
+ {
+ int width;
+ }
+thisARG;
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_AlphaNumeric_Type(va_list *ap)
-|
+| Facility : libnform
+| Function : static void *Make_This_Type(va_list *ap)
+|
| Description : Allocate structure for alphanumeric type argument.
|
| Return Values : Pointer to argument structure or NULL on error
+--------------------------------------------------------------------------*/
-static void *Make_AlphaNumeric_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
{
- alnumARG *argp = (alnumARG *)malloc(sizeof(alnumARG));
+ thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
if (argp)
- argp->width = va_arg(*ap,int);
+ argp->width = va_arg(*ap, int);
return ((void *)argp);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_AlphaNumericType(const void *argp)
-|
-| Description : Copy structure for alphanumeric type argument.
+| Facility : libnform
+| Function : static void *Copy_ThisType(const void *argp)
+|
+| Description : Copy structure for alphanumeric type argument.
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
-static void *Copy_AlphaNumeric_Type(const void *argp)
+static void *
+Copy_This_Type(const void *argp)
{
- const alnumARG *ap = (const alnumARG *)argp;
- alnumARG *result = (alnumARG *)malloc(sizeof(alnumARG));
+ const thisARG *ap = (const thisARG *)argp;
+ thisARG *result = (thisARG *) malloc(sizeof(thisARG));
if (result)
*result = *ap;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_AlphaNumeric_Type(void *argp)
-|
+| Facility : libnform
+| Function : static void Free_This_Type(void *argp)
+|
| Description : Free structure for alphanumeric type argument.
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Free_AlphaNumeric_Type(void * argp)
+static void
+Free_This_Type(void *argp)
{
- if (argp)
+ if (argp)
free(argp);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_AlphaNumeric_Field(
-| FIELD *field,
+| Facility : libnform
+| Function : static bool Check_This_Character(
+| int c,
| const void *argp)
-|
-| Description : Validate buffer content to be a valid alphanumeric value
|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
+| Description : Check a character for the alphanumeric type.
+|
+| Return Values : TRUE - character is valid
+| FALSE - character is invalid
+--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Character(int c, const void *argp GCC_UNUSED)
{
- int width = ((const alnumARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- int l = -1;
- unsigned char *s;
-
- while(*bp && *bp==' ')
- bp++;
- if (*bp)
- {
- s = bp;
- while(*bp && isalnum(*bp))
- bp++;
- l = (int)(bp-s);
- while(*bp && *bp==' ')
- bp++;
- }
- return ((*bp || (l < width)) ? FALSE : TRUE);
+#if USE_WIDEC_SUPPORT
+ if (iswalnum((wint_t) c))
+ return TRUE;
+#endif
+ return (isalnum(UChar(c)) ? TRUE : FALSE);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_AlphaNumeric_Character(
-| int c,
-| const void *argp )
-|
-| Description : Check a character for the alphanumeric type.
+| Facility : libnform
+| Function : static bool Check_This_Field(
+| FIELD *field,
+| const void *argp)
|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
+| Description : Validate buffer content to be a valid alphanumeric value
+|
+| Return Values : TRUE - field is valid
+| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-static bool Check_AlphaNumeric_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
{
- return (isalnum(c) ? TRUE : FALSE);
+ int width = ((const thisARG *)argp)->width;
+ unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+ bool result = (width < 0);
+
+ Check_CTYPE_Field(result, bp, width, Check_This_Character);
+ return (result);
}
-static FIELDTYPE typeALNUM = {
+static FIELDTYPE typeTHIS =
+{
_HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
+ 1, /* this is mutable, so we can't be const */
(FIELDTYPE *)0,
(FIELDTYPE *)0,
- Make_AlphaNumeric_Type,
- Copy_AlphaNumeric_Type,
- Free_AlphaNumeric_Type,
- Check_AlphaNumeric_Field,
- Check_AlphaNumeric_Character,
+ Make_This_Type,
+ Copy_This_Type,
+ Free_This_Type,
+ Check_This_Field,
+ Check_This_Character,
NULL,
NULL
};
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeALNUM;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALNUM = &typeTHIS;
/* fty_alnum.c ends here */
-
/*
* THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
* You may freely copy it for use as a template for your own field types.
#include "form.priv.h"
-MODULE_ID("$Id: fty_alpha.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_alpha.c,v 1.20 2005/08/20 18:37:48 tom Exp $")
+
+#define thisARG alphaARG
-typedef struct {
- int width;
-} alphaARG;
+typedef struct
+ {
+ int width;
+ }
+thisARG;
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Alpha_Type(va_list *ap)
-|
+| Facility : libnform
+| Function : static void *Make_This_Type(va_list *ap)
+|
| Description : Allocate structure for alpha type argument.
|
| Return Values : Pointer to argument structure or NULL on error
+--------------------------------------------------------------------------*/
-static void *Make_Alpha_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
{
- alphaARG *argp = (alphaARG *)malloc(sizeof(alphaARG));
+ thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
+
if (argp)
- {
- argp->width = va_arg(*ap,int);
- }
+ argp->width = va_arg(*ap, int);
+
return ((void *)argp);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Alpha_Type(const void * argp)
-|
-| Description : Copy structure for alpha type argument.
+| Facility : libnform
+| Function : static void *Copy_This_Type(const void * argp)
+|
+| Description : Copy structure for alpha type argument.
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
-static void *Copy_Alpha_Type(const void * argp)
+static void *
+Copy_This_Type(const void *argp)
{
- const alphaARG *ap = (const alphaARG *)argp;
- alphaARG *result = (alphaARG *)malloc(sizeof(alphaARG));
-
+ const thisARG *ap = (const thisARG *)argp;
+ thisARG *result = (thisARG *) malloc(sizeof(thisARG));
+
if (result)
- {
- *result = *ap;
- }
+ *result = *ap;
+
return ((void *)result);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Alpha_Type( void * argp )
-|
+| Facility : libnform
+| Function : static void Free_This_Type(void *argp)
+|
| Description : Free structure for alpha type argument.
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Free_Alpha_Type(void * argp)
+static void
+Free_This_Type(void *argp)
{
- if (argp)
+ if (argp)
free(argp);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Alpha_Field(
-| FIELD * field,
-| const void * argp)
-|
-| Description : Validate buffer content to be a valid alpha value
+| Facility : libnform
+| Function : static bool Check_This_Character(
+| int c,
+| const void *argp)
|
-| Return Values : TRUE - field is valid
-| FALSE - field is invalid
+| Description : Check a character for the alpha type.
+|
+| Return Values : TRUE - character is valid
+| FALSE - character is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Alpha_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Character(int c, const void *argp GCC_UNUSED)
{
- int width = ((const alphaARG *)argp)->width;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- int l = -1;
- unsigned char *s;
-
- while(*bp && *bp==' ')
- bp++;
- if (*bp)
- {
- s = bp;
- while(*bp && isalpha(*bp))
- bp++;
- l = (int)(bp-s);
- while(*bp && *bp==' ')
- bp++;
- }
- return ((*bp || (l < width)) ? FALSE : TRUE);
+#if USE_WIDEC_SUPPORT
+ if (iswalpha((wint_t) c))
+ return TRUE;
+#endif
+ return (isalpha(UChar(c)) ? TRUE : FALSE);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Alpha_Character(
-| int c,
-| const void * argp)
-|
-| Description : Check a character for the alpha type.
+| Facility : libnform
+| Function : static bool Check_This_Field(
+| FIELD *field,
+| const void *argp)
|
-| Return Values : TRUE - character is valid
-| FALSE - character is invalid
+| Description : Validate buffer content to be a valid alpha value
+|
+| Return Values : TRUE - field is valid
+| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Alpha_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
{
- return (isalpha(c) ? TRUE : FALSE);
+ int width = ((const thisARG *)argp)->width;
+ unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+ bool result = (width < 0);
+
+ Check_CTYPE_Field(result, bp, width, Check_This_Character);
+ return (result);
}
-static FIELDTYPE typeALPHA = {
+static FIELDTYPE typeTHIS =
+{
_HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
+ 1, /* this is mutable, so we can't be const */
(FIELDTYPE *)0,
(FIELDTYPE *)0,
- Make_Alpha_Type,
- Copy_Alpha_Type,
- Free_Alpha_Type,
- Check_Alpha_Field,
- Check_Alpha_Character,
+ Make_This_Type,
+ Copy_This_Type,
+ Free_This_Type,
+ Check_This_Field,
+ Check_This_Character,
NULL,
NULL
};
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeALPHA;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ALPHA = &typeTHIS;
/* fty_alpha.c ends here */
#include "form.priv.h"
-MODULE_ID("$Id: fty_enum.c,v 1.18 2003/11/08 20:25:29 tom Exp $")
+MODULE_ID("$Id: fty_enum.c,v 1.19 2004/05/29 19:05:20 tom Exp $")
-typedef struct {
- char **kwds;
- int count;
- bool checkcase;
- bool checkunique;
-} enumARG;
+typedef struct
+ {
+ char **kwds;
+ int count;
+ bool checkcase;
+ bool checkunique;
+ }
+enumARG;
/*---------------------------------------------------------------------------
| Facility : libnform
|
| Return Values : Pointer to argument structure or NULL on error
+--------------------------------------------------------------------------*/
-static void *Make_Enum_Type(va_list * ap)
+static void *
+Make_Enum_Type(va_list *ap)
{
enumARG *argp = (enumARG *)malloc(sizeof(enumARG));
char **kp = (char **)0;
int ccase, cunique;
- argp->kwds = va_arg(*ap,char **);
- ccase = va_arg(*ap,int);
- cunique = va_arg(*ap,int);
- argp->checkcase = ccase ? TRUE : FALSE;
+ argp->kwds = va_arg(*ap, char **);
+ ccase = va_arg(*ap, int);
+ cunique = va_arg(*ap, int);
+
+ argp->checkcase = ccase ? TRUE : FALSE;
argp->checkunique = cunique ? TRUE : FALSE;
kp = argp->kwds;
- while( kp && (*kp++) ) cnt++;
+ while (kp && (*kp++))
+ cnt++;
argp->count = cnt;
}
return (void *)argp;
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
-static void *Copy_Enum_Type(const void * argp)
+static void *
+Copy_Enum_Type(const void *argp)
{
enumARG *result = (enumARG *)0;
const enumARG *ap = (const enumARG *)argp;
result = (enumARG *)malloc(sizeof(enumARG));
+
if (result)
*result = *ap;
}
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Free_Enum_Type(void * argp)
+static void
+Free_Enum_Type(void *argp)
{
- if (argp)
+ if (argp)
free(argp);
}
| PARTIAL - buffer matches partially
| EXACT - buffer matches exactly
+--------------------------------------------------------------------------*/
-static int Compare(const unsigned char *s, const unsigned char *buf,
- bool ccase)
+static int
+Compare(const unsigned char *s, const unsigned char *buf,
+ bool ccase)
{
- SKIP_SPACE(buf); /* Skip leading spaces in both texts */
+ SKIP_SPACE(buf); /* Skip leading spaces in both texts */
SKIP_SPACE(s);
- if (*buf=='\0')
+ if (*buf == '\0')
{
- return (((*s)!='\0') ? NOMATCH : EXACT);
- }
- else
+ return (((*s) != '\0') ? NOMATCH : EXACT);
+ }
+ else
{
if (ccase)
{
- while(*s++ == *buf)
+ while (*s++ == *buf)
{
- if (*buf++=='\0') return EXACT;
- }
- }
- else
+ if (*buf++ == '\0')
+ return EXACT;
+ }
+ }
+ else
{
- while(toupper(*s++)==toupper(*buf))
+ while (toupper(*s++) == toupper(*buf))
{
- if (*buf++=='\0') return EXACT;
+ if (*buf++ == '\0')
+ return EXACT;
}
}
}
matches with s. So if only blanks are following, we have a partial
match otherwise there is no match */
SKIP_SPACE(buf);
- if (*buf)
+ if (*buf)
return NOMATCH;
/* If it happens that the reference buffer is at its end, the partial
match is actually an exact match. */
- return ((s[-1]!='\0') ? PARTIAL : EXACT);
+ return ((s[-1] != '\0') ? PARTIAL : EXACT);
}
/*---------------------------------------------------------------------------
| Return Values : TRUE - field is valid
| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Enum_Field(FIELD * field, const void * argp)
+static bool
+Check_Enum_Field(FIELD *field, const void *argp)
{
- char **kwds = ((const enumARG *)argp)->kwds;
- bool ccase = ((const enumARG *)argp)->checkcase;
- bool unique = ((const enumARG *)argp)->checkunique;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
+ char **kwds = ((const enumARG *)argp)->kwds;
+ bool ccase = ((const enumARG *)argp)->checkcase;
+ bool unique = ((const enumARG *)argp)->checkunique;
+ unsigned char *bp = (unsigned char *)field_buffer(field, 0);
char *s, *t, *p;
int res;
-
- while( kwds && (s=(*kwds++)) )
+
+ while (kwds && (s = (*kwds++)))
{
- if ((res=Compare((unsigned char *)s,bp,ccase))!=NOMATCH)
+ if ((res = Compare((unsigned char *)s, bp, ccase)) != NOMATCH)
{
- p=t=s; /* t is at least a partial match */
- if ((unique && res!=EXACT))
+ p = t = s; /* t is at least a partial match */
+ if ((unique && res != EXACT))
{
- while( kwds && (p = *kwds++) )
+ while (kwds && (p = *kwds++))
{
- if ((res=Compare((unsigned char *)p,bp,ccase))!=NOMATCH)
+ if ((res = Compare((unsigned char *)p, bp, ccase)) != NOMATCH)
{
- if (res==EXACT)
+ if (res == EXACT)
{
t = p;
break;
t = (char *)0;
}
}
- }
+ }
if (t)
{
- set_field_buffer(field,0,t);
+ set_field_buffer(field, 0, t);
return TRUE;
}
if (!p)
return FALSE;
}
-static const char *dummy[] = { (char *)0 };
+static const char *dummy[] =
+{(char *)0};
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : TRUE - next value found and loaded
| FALSE - no next value loaded
+--------------------------------------------------------------------------*/
-static bool Next_Enum(FIELD * field, const void * argp)
+static bool
+Next_Enum(FIELD *field, const void *argp)
{
const enumARG *args = (const enumARG *)argp;
- char **kwds = args->kwds;
- bool ccase = args->checkcase;
- int cnt = args->count;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
+ char **kwds = args->kwds;
+ bool ccase = args->checkcase;
+ int cnt = args->count;
+ unsigned char *bp = (unsigned char *)field_buffer(field, 0);
- if (kwds) {
- while(cnt--)
- {
- if (Compare((unsigned char *)(*kwds++),bp,ccase)==EXACT)
- break;
- }
- if (cnt<=0)
- kwds = args->kwds;
- if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
- {
- set_field_buffer(field,0,*kwds);
- return TRUE;
- }
- }
+ if (kwds)
+ {
+ while (cnt--)
+ {
+ if (Compare((unsigned char *)(*kwds++), bp, ccase) == EXACT)
+ break;
+ }
+ if (cnt <= 0)
+ kwds = args->kwds;
+ if ((cnt >= 0) || (Compare((const unsigned char *)dummy, bp, ccase) == EXACT))
+ {
+ set_field_buffer(field, 0, *kwds);
+ return TRUE;
+ }
+ }
return FALSE;
}
| Return Values : TRUE - previous value found and loaded
| FALSE - no previous value loaded
+--------------------------------------------------------------------------*/
-static bool Previous_Enum(FIELD * field, const void * argp)
+static bool
+Previous_Enum(FIELD *field, const void *argp)
{
const enumARG *args = (const enumARG *)argp;
- int cnt = args->count;
- char **kwds = &args->kwds[cnt-1];
- bool ccase = args->checkcase;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
+ int cnt = args->count;
+ char **kwds = &args->kwds[cnt - 1];
+ bool ccase = args->checkcase;
+ unsigned char *bp = (unsigned char *)field_buffer(field, 0);
- if (kwds) {
- while(cnt--)
- {
- if (Compare((unsigned char *)(*kwds--),bp,ccase)==EXACT)
- break;
- }
-
- if (cnt<=0)
- kwds = &args->kwds[args->count-1];
-
- if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT))
- {
- set_field_buffer(field,0,*kwds);
- return TRUE;
- }
- }
+ if (kwds)
+ {
+ while (cnt--)
+ {
+ if (Compare((unsigned char *)(*kwds--), bp, ccase) == EXACT)
+ break;
+ }
+
+ if (cnt <= 0)
+ kwds = &args->kwds[args->count - 1];
+
+ if ((cnt >= 0) || (Compare((const unsigned char *)dummy, bp, ccase) == EXACT))
+ {
+ set_field_buffer(field, 0, *kwds);
+ return TRUE;
+ }
+ }
return FALSE;
}
-
-static FIELDTYPE typeENUM = {
+static FIELDTYPE typeENUM =
+{
_HAS_ARGS | _HAS_CHOICE | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
+ 1, /* this is mutable, so we can't be const */
(FIELDTYPE *)0,
(FIELDTYPE *)0,
Make_Enum_Type,
Previous_Enum
};
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_ENUM = &typeENUM;
+NCURSES_EXPORT_VAR(FIELDTYPE *)
+TYPE_ENUM = &typeENUM;
/* fty_enum.c ends here */
-
/*
* THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
* You may freely copy it for use as a template for your own field types.
#include "form.priv.h"
-MODULE_ID("$Id: fty_int.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_int.c,v 1.19 2005/08/20 18:26:16 tom Exp $")
+
+#if USE_WIDEC_SUPPORT
+#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
+#else
+#define isDigit(c) isdigit(UChar(c))
+#endif
-typedef struct {
- int precision;
- long low;
- long high;
-} integerARG;
+#define thisARG integerARG
+
+typedef struct
+ {
+ int precision;
+ long low;
+ long high;
+ }
+thisARG;
/*---------------------------------------------------------------------------
| Facility : libnform
-| Function : static void *Make_Integer_Type( va_list * ap )
+| Function : static void *Make_This_Type( va_list * ap )
|
| Description : Allocate structure for integer type argument.
|
| Return Values : Pointer to argument structure or NULL on error
+--------------------------------------------------------------------------*/
-static void *Make_Integer_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
{
- integerARG *argp = (integerARG *)malloc(sizeof(integerARG));
+ thisARG *argp = (thisARG *) malloc(sizeof(thisARG));
if (argp)
{
- argp->precision = va_arg(*ap,int);
- argp->low = va_arg(*ap,long);
- argp->high = va_arg(*ap,long);
+ argp->precision = va_arg(*ap, int);
+ argp->low = va_arg(*ap, long);
+ argp->high = va_arg(*ap, long);
}
return (void *)argp;
}
/*---------------------------------------------------------------------------
| Facility : libnform
-| Function : static void *Copy_Integer_Type(const void * argp)
+| Function : static void *Copy_This_Type(const void * argp)
|
| Description : Copy structure for integer type argument.
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
-static void *Copy_Integer_Type(const void * argp)
+static void *
+Copy_This_Type(const void *argp)
{
- const integerARG *ap = (const integerARG *)argp;
- integerARG *result = (integerARG *)0;
+ const thisARG *ap = (const thisARG *)argp;
+ thisARG *result = (thisARG *) 0;
if (argp)
{
- result = (integerARG *)malloc(sizeof(integerARG));
+ result = (thisARG *) malloc(sizeof(thisARG));
if (result)
*result = *ap;
}
/*---------------------------------------------------------------------------
| Facility : libnform
-| Function : static void Free_Integer_Type(void * argp)
+| Function : static void Free_This_Type(void * argp)
|
| Description : Free structure for integer type argument.
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Free_Integer_Type(void * argp)
+static void
+Free_This_Type(void *argp)
{
- if (argp)
+ if (argp)
free(argp);
}
/*---------------------------------------------------------------------------
| Facility : libnform
-| Function : static bool Check_Integer_Field(
-| FIELD * field,
-| const void * argp)
+| Function : static bool Check_This_Field(
+| FIELD * field,
+| const void * argp)
|
| Description : Validate buffer content to be a valid integer value
|
| Return Values : TRUE - field is valid
| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Integer_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
{
- const integerARG *argi = (const integerARG *)argp;
- long low = argi->low;
- long high = argi->high;
- int prec = argi->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s = (char *)bp;
+ const thisARG *argi = (const thisARG *)argp;
+ long low = argi->low;
+ long high = argi->high;
+ int prec = argi->precision;
+ unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+ char *s = (char *)bp;
long val;
char buf[100];
+ bool result = FALSE;
- while( *bp && *bp==' ') bp++;
+ while (*bp && *bp == ' ')
+ bp++;
if (*bp)
{
- if (*bp=='-') bp++;
+ if (*bp == '-')
+ bp++;
+#if USE_WIDEC_SUPPORT
+ if (*bp)
+ {
+ bool blank = FALSE;
+ int len;
+ int n;
+ wchar_t *list = _nc_Widen_String((char *)bp, &len);
+
+ if (list != 0)
+ {
+ result = TRUE;
+ for (n = 0; n < len; ++n)
+ {
+ if (blank)
+ {
+ if (list[n] != ' ')
+ {
+ result = FALSE;
+ break;
+ }
+ }
+ else if (list[n] == ' ')
+ {
+ blank = TRUE;
+ }
+ else if (!isDigit(list[n]))
+ {
+ result = FALSE;
+ break;
+ }
+ }
+ free(list);
+ }
+ }
+#else
while (*bp)
{
- if (!isdigit(*bp)) break;
+ if (!isdigit(UChar(*bp)))
+ break;
bp++;
}
- while(*bp && *bp==' ') bp++;
- if (*bp=='\0')
+ while (*bp && *bp == ' ')
+ bp++;
+ result = (*bp == '\0');
+#endif
+ if (result)
{
val = atol(s);
- if (low<high)
+ if (low < high)
{
- if (val<low || val>high) return FALSE;
+ if (val < low || val > high)
+ result = FALSE;
+ }
+ if (result)
+ {
+ sprintf(buf, "%.*ld", (prec > 0 ? prec : 0), val);
+ set_field_buffer(field, 0, buf);
}
- sprintf(buf,"%.*ld",(prec>0?prec:0),val);
- set_field_buffer(field,0,buf);
- return TRUE;
}
}
- return FALSE;
+ return (result);
}
/*---------------------------------------------------------------------------
| Facility : libnform
-| Function : static bool Check_Integer_Character(
+| Function : static bool Check_This_Character(
| int c,
| const void * argp)
|
| Return Values : TRUE - character is valid
| FALSE - character is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Integer_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_This_Character(int c, const void *argp GCC_UNUSED)
{
- return ((isdigit(c) || (c=='-')) ? TRUE : FALSE);
+ return ((isDigit(UChar(c)) || (c == '-')) ? TRUE : FALSE);
}
-static FIELDTYPE typeINTEGER = {
+static FIELDTYPE typeTHIS =
+{
_HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
+ 1, /* this is mutable, so we can't be const */
(FIELDTYPE *)0,
(FIELDTYPE *)0,
- Make_Integer_Type,
- Copy_Integer_Type,
- Free_Integer_Type,
- Check_Integer_Field,
- Check_Integer_Character,
+ Make_This_Type,
+ Copy_This_Type,
+ Free_This_Type,
+ Check_This_Field,
+ Check_This_Character,
NULL,
NULL
};
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeINTEGER;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_INTEGER = &typeTHIS;
/* fty_int.c ends here */
#include "form.priv.h"
-MODULE_ID("$Id: fty_ipv4.c,v 1.4 2000/12/09 23:46:12 tom Exp $")
+MODULE_ID("$Id: fty_ipv4.c,v 1.6 2004/05/29 19:13:48 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnform
| Return Values : TRUE - field is valid
| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-static bool Check_IPV4_Field(FIELD * field, const void * argp GCC_UNUSED)
+static bool
+Check_IPV4_Field(FIELD *field, const void *argp GCC_UNUSED)
{
- char *bp = field_buffer(field,0);
+ char *bp = field_buffer(field, 0);
int num = 0, len;
unsigned int d1, d2, d3, d4;
- if(isdigit((unsigned char)*bp)) /* Must start with digit */
+ if (isdigit(UChar(*bp))) /* Must start with digit */
{
num = sscanf(bp, "%u.%u.%u.%u%n", &d1, &d2, &d3, &d4, &len);
if (num == 4)
- {
- bp += len; /* Make bp point to what sscanf() left */
- while (*bp && isspace((unsigned char)*bp))
- bp++; /* Allow trailing whitespace */
- }
+ {
+ bp += len; /* Make bp point to what sscanf() left */
+ while (*bp && isspace(UChar(*bp)))
+ bp++; /* Allow trailing whitespace */
+ }
}
return ((num != 4 || *bp || d1 > 255 || d2 > 255
- || d3 > 255 || d4 > 255) ? FALSE : TRUE);
+ || d3 > 255 || d4 > 255) ? FALSE : TRUE);
}
/*---------------------------------------------------------------------------
| Return Values : TRUE - character is valid
| FALSE - character is invalid
+--------------------------------------------------------------------------*/
-static bool Check_IPV4_Character(int c, const void * argp GCC_UNUSED)
+static bool
+Check_IPV4_Character(int c, const void *argp GCC_UNUSED)
{
- return ((isdigit(c) || (c=='.')) ? TRUE : FALSE);
+ return ((isdigit(UChar(c)) || (c == '.')) ? TRUE : FALSE);
}
-static FIELDTYPE typeIPV4 = {
+static FIELDTYPE typeIPV4 =
+{
_RESIDENT,
- 1, /* this is mutable, so we can't be const */
+ 1, /* this is mutable, so we can't be const */
(FIELDTYPE *)0,
(FIELDTYPE *)0,
NULL,
-
/*
* THIS CODE IS SPECIFICALLY EXEMPTED FROM THE NCURSES PACKAGE COPYRIGHT.
* You may freely copy it for use as a template for your own field types.
#include "form.priv.h"
-MODULE_ID("$Id: fty_num.c,v 1.16 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_num.c,v 1.22 2005/08/20 18:26:16 tom Exp $")
#if HAVE_LOCALE_H
#include <locale.h>
#endif
-typedef struct {
- int precision;
- double low;
- double high;
- struct lconv* L;
-} numericARG;
+#if HAVE_LOCALE_H
+#define isDecimalPoint(c) ((c) == ((L && L->decimal_point) ? *(L->decimal_point) : '.'))
+#else
+#define isDecimalPoint(c) ((c) == '.')
+#endif
+
+#if USE_WIDEC_SUPPORT
+#define isDigit(c) (iswdigit((wint_t)(c)) || isdigit(UChar(c)))
+#else
+#define isDigit(c) isdigit(UChar(c))
+#endif
+
+#define thisARG numericARG
+
+typedef struct
+ {
+ int precision;
+ double low;
+ double high;
+ struct lconv *L;
+ }
+thisARG;
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Make_Numeric_Type(va_list * ap)
-|
+| Facility : libnform
+| Function : static void *Make_This_Type(va_list * ap)
+|
| Description : Allocate structure for numeric type argument.
|
| Return Values : Pointer to argument structure or NULL on error
+--------------------------------------------------------------------------*/
-static void *Make_Numeric_Type(va_list * ap)
+static void *
+Make_This_Type(va_list *ap)
{
- numericARG *argn = (numericARG *)malloc(sizeof(numericARG));
+ thisARG *argn = (thisARG *) malloc(sizeof(thisARG));
if (argn)
{
- argn->precision = va_arg(*ap,int);
- argn->low = va_arg(*ap,double);
- argn->high = va_arg(*ap,double);
+ argn->precision = va_arg(*ap, int);
+ argn->low = va_arg(*ap, double);
+ argn->high = va_arg(*ap, double);
+
#if HAVE_LOCALE_H
- argn->L = localeconv();
+ argn->L = localeconv();
#else
- argn->L = NULL;
+ argn->L = NULL;
#endif
}
return (void *)argn;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void *Copy_Numeric_Type(const void * argp)
-|
-| Description : Copy structure for numeric type argument.
+| Facility : libnform
+| Function : static void *Copy_This_Type(const void * argp)
+|
+| Description : Copy structure for numeric type argument.
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
-static void *Copy_Numeric_Type(const void * argp)
+static void *
+Copy_This_Type(const void *argp)
{
- const numericARG *ap = (const numericARG *)argp;
- numericARG *result = (numericARG *)0;
+ const thisARG *ap = (const thisARG *)argp;
+ thisARG *result = (thisARG *) 0;
if (argp)
{
- result = (numericARG *)malloc(sizeof(numericARG));
+ result = (thisARG *) malloc(sizeof(thisARG));
if (result)
- *result = *ap;
+ *result = *ap;
}
return (void *)result;
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static void Free_Numeric_Type(void * argp)
-|
+| Facility : libnform
+| Function : static void Free_This_Type(void * argp)
+|
| Description : Free structure for numeric type argument.
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Free_Numeric_Type(void * argp)
+static void
+Free_This_Type(void *argp)
{
- if (argp)
+ if (argp)
free(argp);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Numeric_Field(FIELD * field,
-| const void * argp)
-|
+| Facility : libnform
+| Function : static bool Check_This_Field(FIELD * field,
+| const void * argp)
+|
| Description : Validate buffer content to be a valid numeric value
|
| Return Values : TRUE - field is valid
| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Numeric_Field(FIELD * field, const void * argp)
+static bool
+Check_This_Field(FIELD *field, const void *argp)
{
- const numericARG *argn = (const numericARG *)argp;
- double low = argn->low;
- double high = argn->high;
- int prec = argn->precision;
- unsigned char *bp = (unsigned char *)field_buffer(field,0);
- char *s = (char *)bp;
- double val = 0.0;
- struct lconv* L = argn->L;
+ const thisARG *argn = (const thisARG *)argp;
+ double low = argn->low;
+ double high = argn->high;
+ int prec = argn->precision;
+ unsigned char *bp = (unsigned char *)field_buffer(field, 0);
+ char *s = (char *)bp;
+ double val = 0.0;
+ struct lconv *L = argn->L;
char buf[64];
+ bool result = FALSE;
- while(*bp && *bp==' ') bp++;
+ while (*bp && *bp == ' ')
+ bp++;
if (*bp)
{
- if (*bp=='-' || *bp=='+')
+ if (*bp == '-' || *bp == '+')
bp++;
- while(*bp)
+#if USE_WIDEC_SUPPORT
+ if (*bp)
+ {
+ bool blank = FALSE;
+ int state = 0;
+ int len;
+ int n;
+ wchar_t *list = _nc_Widen_String((char *)bp, &len);
+
+ if (list != 0)
+ {
+ result = TRUE;
+ for (n = 0; n < len; ++n)
+ {
+ if (blank)
+ {
+ if (list[n] != ' ')
+ {
+ result = FALSE;
+ break;
+ }
+ }
+ else if (list[n] == ' ')
+ {
+ blank = TRUE;
+ }
+ else if (isDecimalPoint(list[n]))
+ {
+ if (++state > 1)
+ {
+ result = FALSE;
+ break;
+ }
+ }
+ else if (!isDigit(list[n]))
+ {
+ result = FALSE;
+ break;
+ }
+ }
+ free(list);
+ }
+ }
+#else
+ while (*bp)
{
- if (!isdigit(*bp)) break;
+ if (!isdigit(UChar(*bp)))
+ break;
bp++;
}
- if (*bp==(
-#if HAVE_LOCALE_H
- (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
- '.'))
+ if (isDecimalPoint(*bp))
{
bp++;
- while(*bp)
+ while (*bp)
{
- if (!isdigit(*bp)) break;
+ if (!isdigit(UChar(*bp)))
+ break;
bp++;
}
}
- while(*bp && *bp==' ') bp++;
- if (*bp=='\0')
+ while (*bp && *bp == ' ')
+ bp++;
+ result = (*bp == '\0');
+#endif
+ if (result)
{
val = atof(s);
- if (low<high)
+ if (low < high)
+ {
+ if (val < low || val > high)
+ result = FALSE;
+ }
+ if (result)
{
- if (val<low || val>high) return FALSE;
+ sprintf(buf, "%.*f", (prec > 0 ? prec : 0), val);
+ set_field_buffer(field, 0, buf);
}
- sprintf(buf,"%.*f",(prec>0?prec:0),val);
- set_field_buffer(field,0,buf);
- return TRUE;
}
}
- return FALSE;
+ return (result);
}
/*---------------------------------------------------------------------------
-| Facility : libnform
-| Function : static bool Check_Numeric_Character(
+| Facility : libnform
+| Function : static bool Check_This_Character(
| int c,
| const void * argp)
-|
+|
| Description : Check a character for the numeric type.
|
| Return Values : TRUE - character is valid
| FALSE - character is invalid
+--------------------------------------------------------------------------*/
-static bool Check_Numeric_Character(int c, const void * argp)
+static bool
+Check_This_Character(int c, const void *argp)
{
- const numericARG *argn = (const numericARG *)argp;
- struct lconv* L = argn->L;
+ const thisARG *argn = (const thisARG *)argp;
+ struct lconv *L = argn->L;
- return (isdigit(c) ||
- c == '+' ||
- c == '-' ||
- c == (
-#if HAVE_LOCALE_H
- (L && L->decimal_point) ? *(L->decimal_point) :
-#endif
- '.')
- ) ? TRUE : FALSE;
+ return ((isDigit(c) ||
+ c == '+' ||
+ c == '-' ||
+ isDecimalPoint(c))
+ ? TRUE
+ : FALSE);
}
-static FIELDTYPE typeNUMERIC = {
+static FIELDTYPE typeTHIS =
+{
_HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
+ 1, /* this is mutable, so we can't be const */
(FIELDTYPE *)0,
(FIELDTYPE *)0,
- Make_Numeric_Type,
- Copy_Numeric_Type,
- Free_Numeric_Type,
- Check_Numeric_Field,
- Check_Numeric_Character,
+ Make_This_Type,
+ Copy_This_Type,
+ Free_This_Type,
+ Check_This_Field,
+ Check_This_Character,
NULL,
NULL
};
-NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeNUMERIC;
+NCURSES_EXPORT_VAR(FIELDTYPE*) TYPE_NUMERIC = &typeTHIS;
/* fty_num.c ends here */
#include "form.priv.h"
-MODULE_ID("$Id: fty_regex.c,v 1.17 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: fty_regex.c,v 1.18 2004/05/29 19:19:09 tom Exp $")
-#if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
+#if HAVE_REGEX_H_FUNCS /* We prefer POSIX regex */
#include <regex.h>
typedef struct
-{
- regex_t *pRegExp;
- unsigned long *refCount;
-} RegExp_Arg;
+ {
+ regex_t *pRegExp;
+ unsigned long *refCount;
+ }
+RegExp_Arg;
#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
#undef RETURN
static int reg_errno;
-static char *RegEx_Init(char *instring)
+static char *
+RegEx_Init(char *instring)
{
- reg_errno = 0;
- return instring;
+ reg_errno = 0;
+ return instring;
}
-static char *RegEx_Error(int code)
+static char *
+RegEx_Error(int code)
{
- reg_errno = code;
- return 0;
+ reg_errno = code;
+ return 0;
}
#define INIT register char *sp = RegEx_Init(instring);
{
char *compiled_expression;
unsigned long *refCount;
-} RegExp_Arg;
+}
+RegExp_Arg;
/* Maximum Length we allow for a compiled regular expression */
#define MAX_RX_LEN (2048)
|
| Return Values : Pointer to argument structure or NULL on error
+--------------------------------------------------------------------------*/
-static void *Make_RegularExpression_Type(va_list * ap)
+static void *
+Make_RegularExpression_Type(va_list *ap)
{
#if HAVE_REGEX_H_FUNCS
- char *rx = va_arg(*ap,char *);
+ char *rx = va_arg(*ap, char *);
RegExp_Arg *preg;
- preg = (RegExp_Arg*)malloc(sizeof(RegExp_Arg));
+ preg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
+
if (preg)
{
- if (((preg->pRegExp = (regex_t*)malloc(sizeof(regex_t))) != (regex_t*)0)
- && !regcomp(preg->pRegExp,rx,
- (REG_EXTENDED | REG_NOSUB | REG_NEWLINE) ))
+ if (((preg->pRegExp = (regex_t *) malloc(sizeof(regex_t))) != 0)
+ && !regcomp(preg->pRegExp, rx,
+ (REG_EXTENDED | REG_NOSUB | REG_NEWLINE)))
{
preg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
+
*(preg->refCount) = 1;
}
else
if (preg->pRegExp)
free(preg->pRegExp);
free(preg);
- preg = (RegExp_Arg*)0;
+ preg = (RegExp_Arg *)0;
}
}
- return((void *)preg);
+ return ((void *)preg);
#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
- char *rx = va_arg(*ap,char *);
+ char *rx = va_arg(*ap, char *);
RegExp_Arg *pArg;
pArg = (RegExp_Arg *)malloc(sizeof(RegExp_Arg));
if (pArg)
{
int blen = RX_INCREMENT;
+
pArg->compiled_expression = NULL;
pArg->refCount = (unsigned long *)malloc(sizeof(unsigned long));
+
*(pArg->refCount) = 1;
- do {
- char *buf = (char *)malloc(blen);
- if (buf)
- {
+ do
+ {
+ char *buf = (char *)malloc(blen);
+
+ if (buf)
+ {
#if HAVE_REGEXP_H_FUNCS
- char *last_pos = compile (rx, buf, &buf[blen], '\0');
+ char *last_pos = compile(rx, buf, &buf[blen], '\0');
+
#else /* HAVE_REGEXPR_H_FUNCS */
- char *last_pos = compile (rx, buf, &buf[blen]);
+ char *last_pos = compile(rx, buf, &buf[blen]);
#endif
- if (reg_errno)
- {
- free(buf);
- if (reg_errno==50)
- blen += RX_INCREMENT;
- else
- {
- free(pArg);
- pArg = NULL;
- break;
- }
- }
- else
- {
- pArg->compiled_expression = buf;
- break;
- }
- }
- } while( blen <= MAX_RX_LEN );
+ if (reg_errno)
+ {
+ free(buf);
+ if (reg_errno == 50)
+ blen += RX_INCREMENT;
+ else
+ {
+ free(pArg);
+ pArg = NULL;
+ break;
+ }
+ }
+ else
+ {
+ pArg->compiled_expression = buf;
+ break;
+ }
+ }
+ }
+ while (blen <= MAX_RX_LEN);
}
if (pArg && !pArg->compiled_expression)
{
|
| Return Values : Pointer to argument structure or NULL on error.
+--------------------------------------------------------------------------*/
-static void *Copy_RegularExpression_Type(const void * argp)
+static void *
+Copy_RegularExpression_Type(const void *argp)
{
#if (HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS)
const RegExp_Arg *ap = (const RegExp_Arg *)argp;
|
| Return Values : -
+--------------------------------------------------------------------------*/
-static void Free_RegularExpression_Type(void * argp)
+static void
+Free_RegularExpression_Type(void *argp)
{
#if HAVE_REGEX_H_FUNCS | HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
RegExp_Arg *ap = (RegExp_Arg *)argp;
+
if (ap)
{
if (--(*(ap->refCount)) == 0)
| Return Values : TRUE - field is valid
| FALSE - field is invalid
+--------------------------------------------------------------------------*/
-static bool Check_RegularExpression_Field(FIELD * field, const void * argp)
+static bool
+Check_RegularExpression_Field(FIELD *field, const void *argp)
{
bool match = FALSE;
+
#if HAVE_REGEX_H_FUNCS
- const RegExp_Arg *ap = (const RegExp_Arg*)argp;
+ const RegExp_Arg *ap = (const RegExp_Arg *)argp;
+
if (ap && ap->pRegExp)
- match = (regexec(ap->pRegExp,field_buffer(field,0),0,NULL,0) ? FALSE:TRUE);
+ match = (regexec(ap->pRegExp, field_buffer(field, 0), 0, NULL, 0)
+ ? FALSE
+ : TRUE);
#elif HAVE_REGEXP_H_FUNCS | HAVE_REGEXPR_H_FUNCS
RegExp_Arg *ap = (RegExp_Arg *)argp;
+
if (ap && ap->compiled_expression)
- match = (step(field_buffer(field,0),ap->compiled_expression) ? TRUE:FALSE);
+ match = (step(field_buffer(field, 0), ap->compiled_expression)
+ ? TRUE
+ : FALSE);
#endif
return match;
}
-static FIELDTYPE typeREGEXP = {
+static FIELDTYPE typeREGEXP =
+{
_HAS_ARGS | _RESIDENT,
- 1, /* this is mutable, so we can't be const */
+ 1, /* this is mutable, so we can't be const */
(FIELDTYPE *)0,
(FIELDTYPE *)0,
Make_RegularExpression_Type,
/****************************************************************************
- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996,1997,2002 *
+ * Author: Thomas E. Dickey 1996,1997,2002,2005 *
****************************************************************************/
/* LINTLIBRARY */
-/* ./fld_arg.c */
+/* ./f_trace.c */
#include "form.priv.h"
+#undef _nc_retrace_field_ptr
+FIELD **_nc_retrace_field_ptr(
+ FIELD **code)
+ { return(*(FIELD ***)0); }
+
+#undef _nc_retrace_field
+FIELD *_nc_retrace_field(
+ FIELD *code)
+ { return(*(FIELD **)0); }
+
+#undef _nc_retrace_field_type
+FIELDTYPE *_nc_retrace_field_type(
+ FIELDTYPE *code)
+ { return(*(FIELDTYPE **)0); }
+
+#undef _nc_retrace_form
+FORM *_nc_retrace_form(
+ FORM *code)
+ { return(*(FORM **)0); }
+
+#undef _nc_retrace_form_hook
+Form_Hook _nc_retrace_form_hook(
+ Form_Hook code)
+ { return(*(Form_Hook *)0); }
+
+/* ./fld_arg.c */
+
#undef set_fieldtype_arg
int set_fieldtype_arg(
FIELDTYPE *typ,
FIELD *field)
{ return(*(int *)0); }
-typedef struct {
- int keycode;
- int (*cmd)(FORM *);
-} Binding_Info;
+typedef struct
+{
+ int keycode;
+ int (*cmd) (FORM *);
+}
+Binding_Info;
#undef form_driver
int form_driver(
/* ./fty_alnum.c */
-typedef struct {
- int width;
-} alnumARG;
+typedef struct
+ {
+ int width;
+ }
+alnumARG;
#undef TYPE_ALNUM
FIELDTYPE *TYPE_ALNUM;
/* ./fty_alpha.c */
-typedef struct {
- int width;
-} alphaARG;
+typedef struct
+ {
+ int width;
+ }
+alphaARG;
#undef TYPE_ALPHA
FIELDTYPE *TYPE_ALPHA;
/* ./fty_enum.c */
-typedef struct {
- char **kwds;
- int count;
- NCURSES_BOOL checkcase;
- NCURSES_BOOL checkunique;
-} enumARG;
+typedef struct
+ {
+ char **kwds;
+ int count;
+ NCURSES_BOOL checkcase;
+ NCURSES_BOOL checkunique;
+ }
+enumARG;
#undef TYPE_ENUM
FIELDTYPE *TYPE_ENUM;
/* ./fty_int.c */
-typedef struct {
- int precision;
- long low;
- long high;
-} integerARG;
+typedef struct
+ {
+ int precision;
+ long low;
+ long high;
+ }
+integerARG;
#undef TYPE_INTEGER
FIELDTYPE *TYPE_INTEGER;
#include <locale.h>
-typedef struct {
- int precision;
- double low;
- double high;
- struct lconv* L;
-} numericARG;
+typedef struct
+ {
+ int precision;
+ double low;
+ double high;
+ struct lconv *L;
+ }
+numericARG;
#undef TYPE_NUMERIC
FIELDTYPE *TYPE_NUMERIC;
#include <regex.h>
typedef struct
-{
- regex_t *pRegExp;
- unsigned long *refCount;
-} RegExp_Arg;
+ {
+ regex_t *pRegExp;
+ unsigned long *refCount;
+ }
+RegExp_Arg;
#undef TYPE_REGEXP
FIELDTYPE *TYPE_REGEXP;
/****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 2002 *
+ * Author: Thomas E. Dickey 2002,2005 *
****************************************************************************/
/* LINTLIBRARY */
-/* ./fld_arg.c */
+/* ./f_trace.c */
#include "form.priv.h"
+#undef _nc_retrace_field_ptr
+FIELD **_nc_retrace_field_ptr(
+ FIELD **code)
+ { return(*(FIELD ***)0); }
+
+#undef _nc_retrace_field
+FIELD *_nc_retrace_field(
+ FIELD *code)
+ { return(*(FIELD **)0); }
+
+#undef _nc_retrace_field_type
+FIELDTYPE *_nc_retrace_field_type(
+ FIELDTYPE *code)
+ { return(*(FIELDTYPE **)0); }
+
+#undef _nc_retrace_form
+FORM *_nc_retrace_form(
+ FORM *code)
+ { return(*(FORM **)0); }
+
+#undef _nc_retrace_form_hook
+Form_Hook _nc_retrace_form_hook(
+ Form_Hook code)
+ { return(*(Form_Hook *)0); }
+
+/* ./fld_arg.c */
+
#undef set_fieldtype_arg
int set_fieldtype_arg(
FIELDTYPE *typ,
FIELD *field)
{ return(*(int *)0); }
-typedef struct {
- int keycode;
- int (*cmd)(FORM *);
-} Binding_Info;
+typedef struct
+{
+ int keycode;
+ int (*cmd) (FORM *);
+}
+Binding_Info;
#undef form_driver
int form_driver(
int buffer)
{ return(*(char **)0); }
+#undef _nc_Widen_String
+wchar_t *_nc_Widen_String(
+ char *source,
+ int *lengthp)
+ { return(*(wchar_t **)0); }
+
/* ./frm_hook.c */
#undef set_field_init
/* ./fty_alnum.c */
-typedef struct {
- int width;
-} alnumARG;
+typedef struct
+ {
+ int width;
+ }
+alnumARG;
#undef TYPE_ALNUM
FIELDTYPE *TYPE_ALNUM;
/* ./fty_alpha.c */
-typedef struct {
- int width;
-} alphaARG;
+typedef struct
+ {
+ int width;
+ }
+alphaARG;
#undef TYPE_ALPHA
FIELDTYPE *TYPE_ALPHA;
/* ./fty_enum.c */
-typedef struct {
- char **kwds;
- int count;
- NCURSES_BOOL checkcase;
- NCURSES_BOOL checkunique;
-} enumARG;
+typedef struct
+ {
+ char **kwds;
+ int count;
+ NCURSES_BOOL checkcase;
+ NCURSES_BOOL checkunique;
+ }
+enumARG;
#undef TYPE_ENUM
FIELDTYPE *TYPE_ENUM;
/* ./fty_int.c */
-typedef struct {
- int precision;
- long low;
- long high;
-} integerARG;
+typedef struct
+ {
+ int precision;
+ long low;
+ long high;
+ }
+integerARG;
#undef TYPE_INTEGER
FIELDTYPE *TYPE_INTEGER;
/* ./fty_num.c */
-typedef struct {
- int precision;
- double low;
- double high;
- struct lconv* L;
-} numericARG;
+#include <locale.h>
+
+typedef struct
+ {
+ int precision;
+ double low;
+ double high;
+ struct lconv *L;
+ }
+numericARG;
#undef TYPE_NUMERIC
FIELDTYPE *TYPE_NUMERIC;
#include <regex.h>
typedef struct
-{
- regex_t *pRegExp;
- unsigned long *refCount;
-} RegExp_Arg;
+ {
+ regex_t *pRegExp;
+ unsigned long *refCount;
+ }
+RegExp_Arg;
#undef TYPE_REGEXP
FIELDTYPE *TYPE_REGEXP;
-# $Id: modules,v 1.13 1999/02/19 00:27:47 juergen Exp $
+# $Id: modules,v 1.14 2004/12/25 23:29:22 tom Exp $
##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc. #
+# Copyright (c) 1998,2004 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"), #
# authorization. #
##############################################################################
#
-# Author: Thomas E. Dickey <dickey@clark.net> 1996,1997
+# Author: Thomas E. Dickey
#
@ base
# Library objects
+f_trace lib $(srcdir) $(FORM_PRIV_H)
fld_arg lib $(srcdir) $(FORM_PRIV_H)
fld_attr lib $(srcdir) $(FORM_PRIV_H)
fld_current lib $(srcdir) $(FORM_PRIV_H)
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-on *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
-/* $Id: curses.h.in,v 1.148 2004/01/14 23:50:12 tom Exp $ */
+/* $Id: curses.h.in,v 1.157 2005/07/02 16:58:28 tom Exp $ */
#ifndef __NCURSES_H
#define __NCURSES_H
#undef NCURSES_VERSION
#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
+/*
+ * Identify the mouse encoding version.
+ */
+#define NCURSES_MOUSE_VERSION @NCURSES_MOUSE_VERSION@
+
+/*
+ * Definitions to facilitate DLL's.
+ */
#include <ncurses_dll.h>
+/*
+ * User-definable tweak to disable the include of <stdbool.h>.
+ */
+#ifndef NCURSES_ENABLE_STDBOOL_H
+#define NCURSES_ENABLE_STDBOOL_H @cf_cv_header_stdbool_h@
+#endif
+
/*
* NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses
* configured using --disable-macros.
#undef NCURSES_CH_T
#define NCURSES_CH_T @NCURSES_CH_T@
+#if @cf_cv_enable_lp64@ && defined(_LP64)
+typedef unsigned chtype;
+typedef unsigned mmask_t;
+#else
typedef unsigned @cf_cv_typeof_chtype@ chtype;
+typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t;
+#endif
#include <stdio.h>
#include <unctrl.h>
#else /* c89, c99, etc. */
-#if @cf_cv_header_stdbool_h@
+#if NCURSES_ENABLE_STDBOOL_H
#include <stdbool.h>
/* use whatever the C compiler decides bool really is */
#define NCURSES_BOOL bool
#ifdef __cplusplus
extern "C" {
+#define NCURSES_CAST(type,value) static_cast<type>(value)
+#else
+#define NCURSES_CAST(type,value) (type)(value)
#endif
/*
extern NCURSES_EXPORT_VAR(chtype) acs_map[];
#endif
-#define NCURSES_ACS(c) (acs_map[(unsigned char)c])
+#define NCURSES_ACS(c) (acs_map[NCURSES_CAST(unsigned char,c)])
/* VT100 symbols begin here */
#define ACS_ULCORNER NCURSES_ACS('l') /* upper left corner */
{
attr_t attr;
wchar_t chars[CCHARW_MAX];
+#if @NCURSES_EXT_COLORS@
+ int ext_color; /* color pair, must be more than 16-bits */
+#endif
}
cchar_t;
#ifdef _XOPEN_SOURCE_EXTENDED
cchar_t _bkgrnd; /* current background char/attribute pair */
+#if @NCURSES_EXT_COLORS@
+ int _color; /* current color-pair for non-space character */
+#endif
#endif
};
#define NCURSES_ATTR_SHIFT 8
#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT))
-#define A_NORMAL 0L
+#define A_NORMAL (@cf_cv_1UL@ - @cf_cv_1UL@)
#define A_ATTRIBUTES NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
#define A_CHARTEXT (NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@)
#define A_COLOR NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0)
#define A_TOP NCURSES_BITS(@cf_cv_1UL@,21)
#define A_VERTICAL NCURSES_BITS(@cf_cv_1UL@,22)
+/*
+ * These apply to the first 256 color pairs.
+ */
#define COLOR_PAIR(n) NCURSES_BITS(n, 0)
-#define PAIR_NUMBER(a) ((int)(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT))
+#define PAIR_NUMBER(a) (NCURSES_CAST(int,(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
/*
* pseudo functions
#define wstandout(win) (wattrset(win,A_STANDOUT))
#define wstandend(win) (wattrset(win,A_NORMAL))
-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
-#define wattron(win,at) wattr_on(win, (attr_t) at, (void *)0)
-#define wattroff(win,at) wattr_off(win, (attr_t) at, (void *)0)
+#define wattron(win,at) wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
+#define wattroff(win,at) wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
+
+#if @NCURSES_EXT_COLORS@
+#define wattrset(win,at) ((win)->_color = PAIR_NUMBER(at), \
+ (win)->_attrs = (at))
+#else
#define wattrset(win,at) ((win)->_attrs = (at))
+#endif
#define scroll(win) wscrl(win,1)
#define mvwgetnstr(win,y,x,str,n) (wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
#define mvwgetstr(win,y,x,str) (wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
#define mvwhline(win,y,x,c,n) (wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
-#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? (chtype)ERR : winch(win))
+#define mvwinch(win,y,x) (wmove(win,y,x) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
#define mvwinchnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
#define mvwinchstr(win,y,x,s) (wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
#define mvwinnstr(win,y,x,s,n) (wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
#define mvvline(y,x,c,n) mvwvline(stdscr,y,x,c,n)
/*
- * Some wide-character functions do not depend on the extensions.
+ * Some wide-character functions can be implemented without the extensions.
*/
#define getbkgd(win) ((win)->_bkgd)
#define slk_attr_off(a,v) ((v) ? ERR : slk_attroff(a))
#define slk_attr_on(a,v) ((v) ? ERR : slk_attron(a))
+#if @NCURSES_EXT_COLORS@
+#define wattr_set(win,a,p,opts) ((win)->_attrs = ((a) & ~A_COLOR), \
+ (win)->_color = (p), \
+ OK)
+#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
+ (void)((p) != 0 && (*(p) = (win)->_color)), \
+ OK)
+#else
+#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
#define wattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), \
(void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
OK)
+#endif
/*
* XSI curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
-/* $Id: curses.tail,v 1.8 2002/11/02 20:26:26 tom Exp $ */
+/* $Id: curses.tail,v 1.12 2005/03/27 00:09:51 tom Exp $ */
/* mouse interface */
-#define NCURSES_MOUSE_VERSION 1
+
+#if NCURSES_MOUSE_VERSION > 1
+#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5))
+#else
+#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6))
+#endif
+
+#define NCURSES_BUTTON_RELEASED 001L
+#define NCURSES_BUTTON_PRESSED 002L
+#define NCURSES_BUTTON_CLICKED 004L
+#define NCURSES_DOUBLE_CLICKED 010L
+#define NCURSES_TRIPLE_CLICKED 020L
+#define NCURSES_RESERVED_EVENT 040L
/* event masks */
-#define BUTTON1_RELEASED 000000000001L
-#define BUTTON1_PRESSED 000000000002L
-#define BUTTON1_CLICKED 000000000004L
-#define BUTTON1_DOUBLE_CLICKED 000000000010L
-#define BUTTON1_TRIPLE_CLICKED 000000000020L
-#define BUTTON1_RESERVED_EVENT 000000000040L
-#define BUTTON2_RELEASED 000000000100L
-#define BUTTON2_PRESSED 000000000200L
-#define BUTTON2_CLICKED 000000000400L
-#define BUTTON2_DOUBLE_CLICKED 000000001000L
-#define BUTTON2_TRIPLE_CLICKED 000000002000L
-#define BUTTON2_RESERVED_EVENT 000000004000L
-#define BUTTON3_RELEASED 000000010000L
-#define BUTTON3_PRESSED 000000020000L
-#define BUTTON3_CLICKED 000000040000L
-#define BUTTON3_DOUBLE_CLICKED 000000100000L
-#define BUTTON3_TRIPLE_CLICKED 000000200000L
-#define BUTTON3_RESERVED_EVENT 000000400000L
-#define BUTTON4_RELEASED 000001000000L
-#define BUTTON4_PRESSED 000002000000L
-#define BUTTON4_CLICKED 000004000000L
-#define BUTTON4_DOUBLE_CLICKED 000010000000L
-#define BUTTON4_TRIPLE_CLICKED 000020000000L
-#define BUTTON4_RESERVED_EVENT 000040000000L
-#define BUTTON_CTRL 000100000000L
-#define BUTTON_SHIFT 000200000000L
-#define BUTTON_ALT 000400000000L
-#define ALL_MOUSE_EVENTS 000777777777L
-#define REPORT_MOUSE_POSITION 001000000000L
+#define BUTTON1_RELEASED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
+#define BUTTON1_PRESSED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)
+#define BUTTON1_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED)
+#define BUTTON1_DOUBLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)
+#define BUTTON1_TRIPLE_CLICKED NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)
+
+#define BUTTON2_RELEASED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED)
+#define BUTTON2_PRESSED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED)
+#define BUTTON2_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED)
+#define BUTTON2_DOUBLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED)
+#define BUTTON2_TRIPLE_CLICKED NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED)
+
+#define BUTTON3_RELEASED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED)
+#define BUTTON3_PRESSED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED)
+#define BUTTON3_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED)
+#define BUTTON3_DOUBLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED)
+#define BUTTON3_TRIPLE_CLICKED NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED)
+
+#define BUTTON4_RELEASED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED)
+#define BUTTON4_PRESSED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED)
+#define BUTTON4_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED)
+#define BUTTON4_DOUBLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED)
+#define BUTTON4_TRIPLE_CLICKED NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED)
+
+/*
+ * In 32 bits the version-1 scheme does not provide enough space for a 5th
+ * button, unless we choose to change the ABI by omitting the reserved-events.
+ */
+#if NCURSES_MOUSE_VERSION > 1
+
+#define BUTTON5_RELEASED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
+#define BUTTON5_PRESSED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED)
+#define BUTTON5_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
+#define BUTTON5_DOUBLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
+#define BUTTON5_TRIPLE_CLICKED NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
+
+#define BUTTON_CTRL NCURSES_MOUSE_MASK(6, 0001L)
+#define BUTTON_SHIFT NCURSES_MOUSE_MASK(6, 0002L)
+#define BUTTON_ALT NCURSES_MOUSE_MASK(6, 0004L)
+#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(6, 0010L)
+
+#else
+
+#define BUTTON1_RESERVED_EVENT NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT)
+#define BUTTON2_RESERVED_EVENT NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT)
+#define BUTTON3_RESERVED_EVENT NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT)
+#define BUTTON4_RESERVED_EVENT NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT)
+
+#define BUTTON_CTRL NCURSES_MOUSE_MASK(5, 0001L)
+#define BUTTON_SHIFT NCURSES_MOUSE_MASK(5, 0002L)
+#define BUTTON_ALT NCURSES_MOUSE_MASK(5, 0004L)
+#define REPORT_MOUSE_POSITION NCURSES_MOUSE_MASK(5, 0010L)
+
+#endif
+
+#define ALL_MOUSE_EVENTS (REPORT_MOUSE_POSITION - 1)
/* macros to extract single event-bits from masks */
#define BUTTON_RELEASE(e, x) ((e) & (001 << (6 * ((x) - 1))))
#define BUTTON_TRIPLE_CLICK(e, x) ((e) & (020 << (6 * ((x) - 1))))
#define BUTTON_RESERVED_EVENT(e, x) ((e) & (040 << (6 * ((x) - 1))))
-typedef unsigned long mmask_t;
-
typedef struct
{
short id; /* ID to distinguish multiple devices */
extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
extern NCURSES_EXPORT(int) mouseinterval (int);
-extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW* win,int* y, int* x, bool to_screen);
+extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool);
extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool); /* generated */
#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; /* enable optimizations */
#ifdef _XOPEN_SOURCE_EXTENDED
extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
#endif
extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
#define OPTIMIZE_MVCUR 0x01 /* cursor movement optimization */
#ifdef _XOPEN_SOURCE_EXTENDED
-/* $Id: curses.wide,v 1.28 2004/01/03 20:35:14 tom Exp $ */
+/* $Id: curses.wide,v 1.29 2005/01/28 21:11:53 tom Exp $ */
extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
#define ins_wch(c) wins_wch(stdscr,c)
#define ins_wstr(t) wins_wstr(stdscr,t)
#define inwstr(c) winwstr(stdscr,c)
-#define vid_attr(a,pair,opts) vidattr(a)
#define vline_set(c,n) wvline_set(stdscr,c,n)
#define wadd_wchstr(win,str) wadd_wchnstr(win,str,-1)
#define waddwstr(win,wstr) waddnwstr(win,wstr,-1)
-#define wattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
#define wget_wstr(w,t) wgetn_wstr(w,t,-1)
#define wgetbkgrnd(win,wch) (*wch = win->_bkgrnd, OK)
#define win_wchstr(w,c) win_wchnstr(w,c,-1)
/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Thomas E. Dickey <dickey@clark.net> 1996,1997 *
****************************************************************************/
-/* $Id: nc_alloc.h,v 1.11 2002/07/20 13:16:40 tom Exp $ */
+/* $Id: nc_alloc.h,v 1.13 2005/01/16 00:27:35 tom Exp $ */
#ifndef NC_ALLOC_included
#define NC_ALLOC_included 1
#define HAVE_LIBDBMALLOC 0
#endif
+#if HAVE_LIBMPATROL
+#include <mpatrol.h> /* Memory-Patrol library */
+#else
+#undef HAVE_LIBMPATROL
+#define HAVE_LIBMPATROL 0
+#endif
+
#ifndef NO_LEAKS
#define NO_LEAKS 0
#endif
#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
#define HAVE_NC_FREEALL 1
struct termtype;
-extern void _nc_free_and_exit(int) GCC_NORETURN;
-extern void _nc_free_tparm(void);
-extern void _nc_leaks_dump_entry(void);
+extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_free_tparm(void);
+extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
#define ExitProgram(code) _nc_free_and_exit(code)
#endif
/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
* Author: Thomas E. Dickey <dickey@clark.net> 1997 *
****************************************************************************/
/*
- * $Id: ncurses_cfg.hin,v 1.4 2002/09/07 16:55:14 tom Exp $
+ * $Id: ncurses_cfg.hin,v 1.7 2005/01/02 01:26:58 tom Exp $
*
* This is a template-file used to generate the "ncurses_cfg.h" file.
*
#undef inline
#define inline /* nothing */
#endif
+#endif
+
+ /* On HP-UX, the C compiler doesn't grok mbstate_t without
+ -D_XOPEN_SOURCE=500. However, this causes problems on
+ IRIX. So, we #define mbstate_t to int in configure.in
+ only for the C compiler if needed. */
+#ifndef __cplusplus
+#ifdef NEED_MBSTATE_T_DEF
+#define mbstate_t int
+#endif
#endif
#endif /* NC_CONFIG_H */
-# $Id: ncurses_defs,v 1.21 2004/01/18 01:03:24 tom Exp $
+# $Id: ncurses_defs,v 1.27 2005/01/28 21:11:53 tom Exp $
##############################################################################
-# Copyright (c) 2000-2003,2004 Free Software Foundation, Inc. #
+# Copyright (c) 2000-2004,2005 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"), #
HAVE_GETOPT_H
HAVE_GETTIMEOFDAY
HAVE_GETTTYNAM
+HAVE_GPM_H
HAVE_GPP_BUILTIN_H
HAVE_GXX_BUILTIN_H
HAVE_HAS_KEY
HAVE_ISASCII
HAVE_ISSETUGID
+HAVE_LANGINFO_CODESET
HAVE_LIBC_H
HAVE_LIBDBMALLOC
HAVE_LIBDMALLOC
HAVE_LIBFORM
HAVE_LIBGPM
HAVE_LIBMENU
+HAVE_LIBMPATROL
HAVE_LIBPANEL
HAVE_LIMITS_H
HAVE_LINK
HAVE_MBRLEN
HAVE_MBRTOWC
HAVE_MBTOWC
-HAVE_MEMCCPY
HAVE_MENU_H
HAVE_MKSTEMP
HAVE_NANOSLEEP
HAVE_VSSCANF
HAVE_WCTOB
HAVE_WCTOMB
+HAVE_WCTYPE_H
HAVE_WORKING_POLL
HAVE_WRESIZE
HAVE__DOSCAN
MIXEDCASE_FILENAMES
NCURSES_EXPANDED
+NCURSES_EXT_COLORS
NCURSES_EXT_FUNCS
NCURSES_NOMACROS
NCURSES_NO_PADDING
/****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2004 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1998-2004 *
****************************************************************************/
-/* $Id: term_entry.h,v 1.32 2001/03/24 21:53:10 tom Exp $ */
+/* $Id: term_entry.h,v 1.34 2005/07/16 21:15:07 tom Exp $ */
/*
* term_entry.h -- interface to entry-manipulation code
{
char *name;
struct entry *link;
- long line;
+ long line;
}
uses[MAX_USES];
int ncrosslinks;
/* lib_acs.c */
extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */
+/* lib_termcap.c: trim sgr0 string for termcap users */
+extern NCURSES_EXPORT(char *) _nc_trim_sgr0 (TERMTYPE *);
+
/* parse_entry.c: entry-parsing code */
#if NCURSES_XNAMES
extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
/* comp_parse.c: entry list handling */
extern NCURSES_EXPORT(void) _nc_read_entry_source (FILE*, char*, int, bool, bool (*)(ENTRY*));
extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *);
-extern NCURSES_EXPORT(int) _nc_resolve_uses (bool);
+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 *);
+extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */
+extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype2)(TERMTYPE *, bool);
/* trace_xnames.c */
extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
/****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996 on *
****************************************************************************/
/*
- * $Id: tic.h,v 1.46 2003/12/27 19:05:32 tom Exp $
+ * $Id: tic.h,v 1.50 2005/08/20 19:41:40 tom Exp $
* tic.h - Global variables and structures for the terminfo
* compiler.
*/
#define DEBUG_LEVEL(n) ((n) << TRACE_SHIFT)
#define set_trace_level(n) \
- _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
+ _nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
_nc_tracing |= DEBUG_LEVEL(n)
#ifdef TRACE
#define NOTFOUND ((struct name_table_entry *) 0)
/* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN (char)(-1) /* 255 */
+#define ABSENT_BOOLEAN ((signed char)-1) /* 255 */
#define ABSENT_NUMERIC (-1)
#define ABSENT_STRING (char *)0
/* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN (char)(-2) /* 254 */
+#define CANCELLED_BOOLEAN ((signed char)-2) /* 254 */
#define CANCELLED_NUMERIC (-2)
#define CANCELLED_STRING (char *)(-1)
#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
#define VALID_NUMERIC(s) ((s) >= 0)
-#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
+#define VALID_STRING(s) ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
/* termcap entries longer than this may break old binaries */
#define MAX_TERMCAP_LENGTH 1023
#define SYN_TERMCAP 1
/* comp_error.c: warning & abort messages */
-extern NCURSES_EXPORT(void) _nc_set_source (const char *const name);
+extern NCURSES_EXPORT(const char *) _nc_get_source (void);
+extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
extern NCURSES_EXPORT(void) _nc_get_type (char *name);
-extern NCURSES_EXPORT(void) _nc_set_type (const char *const name);
+extern NCURSES_EXPORT(void) _nc_set_source (const char *const);
+extern NCURSES_EXPORT(void) _nc_set_type (const char *const);
extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
-extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2);
extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
/* comp_scan.c: decode string from readable form */
-extern NCURSES_EXPORT(char) _nc_trans_string (char *, char *);
+extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *);
/* captoinfo.c: capability conversion */
extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const);
extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
-extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *string, char *p_is_s[NUM_PARM], int *popcount);
+extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *, char **, int *);
/* lib_tputs.c */
extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent; /* Add one for every null sent */
echo "install: no input file specified"
exit 1
else
- true
+ :
fi
if [ x"$dir_arg" != x ]; then
dst=$src
src=""
-
+
if [ -d $dst ]; then
instcmd=:
+ chmodcmd=""
else
- instcmd=mkdir
+ instcmd=$mkdirprog
fi
else
# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad
+# might cause directories to be created, which would be especially bad
# if $src (and thus $dsttmp) contains '*'.
if [ -f $src -o -d $src ]
then
- true
+ :
else
echo "install: $src does not exist"
exit 1
fi
-
+
if [ x"$dst" = x ]
then
echo "install: no destination specified"
exit 1
else
- true
+ :
fi
# If destination is a directory, append the input filename; if your system
then
dst="$dst"/`basename $src`
else
- true
+ :
fi
fi
# Skip lots of stat calls in the usual case.
if [ ! -d "$dstdir" ]; then
-defaultIFS='
-'
+defaultIFS='
+ '
IFS="${IFS-${defaultIFS}}"
oIFS="${IFS}"
then
$mkdirprog "${pathcomp}"
else
- true
+ :
fi
pathcomp="${pathcomp}/"
then
$doit $instcmd $dst &&
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
else
# If we're going to rename the final executable, determine the name now.
- if [ x"$transformarg" = x ]
+ if [ x"$transformarg" = x ]
then
dstfile=`basename $dst`
else
- dstfile=`basename $dst $transformbasename |
+ dstfile=`basename $dst $transformbasename |
sed $transformarg`$transformbasename
fi
# don't allow the sed command to completely eliminate the filename
- if [ x"$dstfile" = x ]
+ if [ x"$dstfile" = x ]
then
dstfile=`basename $dst`
else
- true
+ :
fi
# Make a temp file name in the proper directory.
# ignore errors from any of these, just make sure not to ignore
# errors from the above "$doit $instcmd $src $dsttmp" command.
- if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
- if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
- if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
- if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
+ if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
+ if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
+ if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
+ if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
# Now rename the file to the real destination.
$doit $rmcmd -f $dstdir/$dstfile &&
- $doit $mvcmd $dsttmp $dstdir/$dstfile
+ $doit $mvcmd $dsttmp $dstdir/$dstfile
fi &&
-# $Id: Makefile.in,v 1.35 2003/12/20 18:41:10 tom Exp $
+# $Id: Makefile.in,v 1.39 2005/07/16 17:26:45 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2005 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"), #
all \
sources : terminfo.5
depend :
+tags :
$(DESTDIR)$(mandir) :
sh $(srcdir)/../mkinstalldirs $@
EDITARGS = $(DESTDIR)$(mandir) $(srcdir) terminfo.5 $(srcdir)/*.[0-9]*
install install.man : terminfo.5 $(DESTDIR)$(mandir)
- sh ./edit_man.sh normal installing $(EDITARGS)
+ sh ../edit_man.sh normal installing $(EDITARGS)
uninstall uninstall.man :
- -sh ./edit_man.sh normal removing $(EDITARGS)
+ -sh ../edit_man.sh normal removing $(EDITARGS)
# We compose terminfo.5 from the real sources...
CAPLIST=$(srcdir)/../include/@TERMINFO_CAPS@
clean: mostlyclean
rm -f terminfo.5
-edit_man.sed : make_sed.sh @MANPAGE_RENAMES@
- sh $srcdir/make_sed.sh @MANPAGE_RENAMES@ >edit_man.sed
+../edit_man.sed : make_sed.sh @MANPAGE_RENAMES@
+ sh $(srcdir)/make_sed.sh @MANPAGE_RENAMES@ >../edit_man.sed
distclean realclean: clean
- rm -f Makefile edit_man.*
+ rm -f Makefile ../edit_man.*
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: captoinfo.1m,v 1.17 2003/05/11 00:32:53 tom Exp $
+.\" $Id: captoinfo.1m,v 1.18 2004/07/05 13:16:08 tom Exp $
.TH captoinfo 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBcaptoinfo\fR - convert a \fItermcap\fR description into a \fIterminfo\fR description
.SH SYNOPSIS
-\fBcaptoinfo\fR [\fB\-v\fR\fIn\fR \fIwidth\fR] [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR . . .
+\fBcaptoinfo\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
.SH DESCRIPTION
\fBcaptoinfo\fR looks in \fIfile\fR for \fBtermcap\fR descriptions. For each
one found, an equivalent \fBterminfo\fR description is written to standard
extracted from that file. If the environment variable \fBTERMCAP\fR is not
set, then the file \fB\*d\fR is read.
.TP 5
-\fB\-v\fR
+\fB-v\fR
print out tracing information on standard error as the program runs.
.TP 5
-\fB\-V\fR
+\fB-V\fR
print out the version of the program in use on standard error and exit.
.TP 5
-\fB\-1\fR
+\fB-1\fR
cause the fields to print out one to a line. Otherwise, the fields
will be printed several to a line to a maximum width of 60
characters.
.TP 5
-\fB\-w\fR
+\fB-w\fR
change the output to \fIwidth\fR characters.
.SH FILES
.TP 20
capabilities \fBmeml\fR (memory lock) and \fBmemu\fR (memory unlock).
These will be discarded with a warning message.
.SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI\-I\fR mode.
-You can use other \fItic\fR options such as \fB\-f\fR and \fB\-x\fR.
+This utility is actually a link to \fItic\fR(1M), running in \fI-I\fR mode.
+You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
The trace option isn't identical to SVr4's. Under SVr4, instead of following
-the \fB\-v\fR with a trace level n, you repeat it n times.
+the \fB-v\fR with a trace level n, you repeat it n times.
.SH SEE ALSO
\fBcurses\fR(3X), \fB@INFOCMP@\fR(1M), \fBterminfo\fR(\*n)
.SH AUTHOR
.\"***************************************************************************
-.\" Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_add_wchstr.3x,v 1.2 2003/12/27 18:53:41 tom Exp $
+.\" $Id: curs_add_wchstr.3x,v 1.6 2005/01/02 01:28:49 tom Exp $
.TH curs_add_wchstr 3X ""
.SH NAME
-.PP
\fBadd_wchstr\fR,
\fBadd_wchnstr\fR,
\fBwadd_wchstr\fR,
they do not advance the current cursor position,
they do not expand other control characters to ^-escapes,
and they truncate the string if it crosses the right margin,
-rather then wrapping it around to the new line.
+rather than wrapping it around to the new line.
.PP
These routines end successfully
on encountering a null \fIcchar_t\fR, or
All these entry points are described in the XSI Curses standard, Issue 4.
.SH SEE ALSO
\fBcurses\fR(3X),
-\fBcurs_addchstr\fR(3X)
+\fBcurs_addchstr\fR(3X),
\fBcurs_addwstr\fR(3X)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addchstr.3x,v 1.8 2003/12/27 18:51:24 tom Exp $
+.\" $Id: curs_addchstr.3x,v 1.10 2005/05/15 16:17:07 tom Exp $
.TH curs_addchstr 3X ""
+.na
+.hy 0
.SH NAME
-\fBaddchstr\fR, \fBaddchnstr\fR, \fBwaddchstr\fR,
-\fBwaddchnstr\fR, \fBmvaddchstr\fR, \fBmvaddchnstr\fR, \fBmvwaddchstr\fR,
+\fBaddchstr\fR,
+\fBaddchnstr\fR,
+\fBwaddchstr\fR,
+\fBwaddchnstr\fR,
+\fBmvaddchstr\fR,
+\fBmvaddchnstr\fR,
+\fBmvwaddchstr\fR,
\fBmvwaddchnstr\fR - add a string of characters (and attributes) to a \fBcurses\fR window
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.PP
characters that will fit on the line.
.PP
The window cursor is \fInot\fR advanced, and these routines work faster than
-\fBwaddnstr\fR. On the other hand, they don't perform any kind of checking
-(such as for the newline, backspace, or carriage return characters), they don't
-advance the current cursor position, they don't expand other control characters
+\fBwaddnstr\fR. On the other hand, they do not perform any kind of checking
+(such as for the newline, backspace, or carriage return characters), they do not
+advance the current cursor position, they do not expand other control characters
to ^-escapes, and they truncate the string if it crosses the right margin,
rather then wrapping it around to the new line.
.SH RETURN VALUES
(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
successful completion, unless otherwise noted in the preceding routine
descriptions.
+.PP
+X/Open does not define any error conditions.
+This implementation returns an error
+if the window pointer is null.
.SH NOTES
Note that all routines except \fBwaddchnstr\fR may be macros.
.SH PORTABILITY
-All these entry points are described in the XSI Curses standard, Issue 4.
+These entry points are described in the XSI Curses standard, Issue 4.
.SH SEE ALSO
\fBcurses\fR(3X).
.\"#
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addstr.3x,v 1.11 2003/12/27 18:51:15 tom Exp $
+.\" $Id: curs_addstr.3x,v 1.13 2005/05/15 16:17:14 tom Exp $
.TH curs_addstr 3X ""
+.na
+.hy 0
.SH NAME
\fBaddstr\fR,
\fBaddnstr\fR,
\fBmvaddnstr\fR,
\fBmvwaddstr\fR,
\fBmvwaddnstr\fR - add a string of characters to a \fBcurses\fR window and advance cursor
+.ad
+.hy
.SH SYNOPSIS
.nf
\fB#include <curses.h>\fR
All routines return the integer \fBERR\fR upon failure and \fBOK\fR on success
(the SVr4 manuals specify only "an integer value other than \fBERR\fR") upon
successful completion.
+.PP
+X/Open does not define any error conditions.
+This implementation returns an error
+if the window pointer is null or
+if the string pointer is null or
+if the corresponding calls to \fBwaddch\fP return an error.
.SH NOTES
Note that all of these routines except \fBwaddstr\fR and \fBwaddnstr\fR may be
macros.
.\"***************************************************************************
-.\" Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_addwstr.3x,v 1.3 2003/12/27 18:51:01 tom Exp $
+.\" $Id: curs_addwstr.3x,v 1.6 2005/05/15 17:02:54 tom Exp $
.TH curs_addwstr 3X ""
+.na
+.hy 0
.SH NAME
\fBaddwstr\fR,
\fBaddnwstr\fR,
\fBmvaddnwstr\fR,
\fBmvwaddwstr\fR,
\fBmvwaddnwstr\fR \- add a string of wide characters to a \fBcurses\fR window and advance cursor
+.ad
+.hy
.SH SYNOPSIS
.nf
\fB#include <curses.h>\fR
\fBint mvwaddnwstr(WINDOW *\fR\fIwin\fR\fB, int \fR\fIy\fR\fB, int \fR\fIx\fR\fB, const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
.fi
.SH DESCRIPTION
-These routines write the characters of the (null-terminated) \fBwchar_t\fRcharacter string
+These routines write the characters of the
+(null-terminated) \fBwchar_t\fR character string
\fIwstr\fR on the given window.
It is similar to constructing a \fBcchar_t\fR for each wchar_t in the string,
then calling \fBwadd_wch\fR for the resulting \fBcchar_t\fR.
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_attr.3x,v 1.27 2003/12/27 18:50:51 tom Exp $
+.\" $Id: curs_attr.3x,v 1.29 2005/05/15 16:17:25 tom Exp $
.TH curs_attr 3X ""
+.na
+.hy 0
.SH NAME
-\fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
-\fBattrset\fR, \fBwattrset\fR, \fBcolor_set\fR, \fBwcolor_set\fR,
-\fBstandend\fR, \fBwstandend\fR, \fBstandout\fR, \fBwstandout\fR,
-\fBattr_get\fR, \fBwattr_get\fR,
-\fBattr_off\fR, \fBwattr_off\fR,
-\fBattr_on\fR, \fBwattr_on\fR,
-\fBattr_set\fR, \fBwattr_set\fR,
-\fBchgat\fR, \fBwchgat\fR,
-\fBmvchgat\fR, \fBmvwchgat\fR,
+\fBattroff\fR,
+\fBwattroff\fR,
+\fBattron\fR,
+\fBwattron\fR,
+\fBattrset\fR,
+\fBwattrset\fR,
+\fBcolor_set\fR,
+\fBwcolor_set\fR,
+\fBstandend\fR,
+\fBwstandend\fR,
+\fBstandout\fR,
+\fBwstandout\fR,
+\fBattr_get\fR,
+\fBwattr_get\fR,
+\fBattr_off\fR,
+\fBwattr_off\fR,
+\fBattr_on\fR,
+\fBwattr_on\fR,
+\fBattr_set\fR,
+\fBwattr_set\fR,
+\fBchgat\fR,
+\fBwchgat\fR,
+\fBmvchgat\fR,
+\fBmvwchgat\fR,
\fBPAIR_NUMBER\fR - \fBcurses\fR character and window attribute control routines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.br
Use \fBtouchwin\fR to force the screen to match the updated attributes.
.SS Attributes
The following video attributes, defined in \fB<curses.h>\fR, can be passed to
-the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'ed with the
+the routines \fBattron\fR, \fBattroff\fR, and \fBattrset\fR, or OR'd with the
characters passed to \fBaddch\fR.
.PP
.TS
.SH NOTES
Note that \fBattroff\fR, \fBwattroff\fR, \fBattron\fR, \fBwattron\fR,
\fBattrset\fR, \fBwattrset\fR, \fBstandend\fR and \fBstandout\fR may be macros.
+.PP
+\fBCOLOR_PAIR\fP values can only be OR'd with attributes if the pair
+number is less than 256.
+The alternate functions such as \fBcolor_set\fP can pass a color pair
+value directly.
+However, ncurses ABI 4 and 5 simply OR this value within the alternate functions.
+You must use ncurses ABI 6 to support more than 256 color pairs.
.SH PORTABILITY
-All these functions are supported in the XSI Curses standard, Issue 4. The
+These functions are supported in the XSI Curses standard, Issue 4. The
standard defined the dedicated type for highlights, \fBattr_t\fR, which is not
defined in SVr4 curses. The functions taking \fBattr_t\fR arguments are
not supported under SVr4.
The XSI standard extended conformance level adds new highlights
\fBA_HORIZONTAL\fR, \fBA_LEFT\fR, \fBA_LOW\fR, \fBA_RIGHT\fR, \fBA_TOP\fR,
\fBA_VERTICAL\fR (and corresponding \fBWA_\fR macros for each) which this
-curses does not yet support.
+implementation does not yet support.
+.SH RETURN VALUE
+All routines return the integer \fBOK\fR on success, or \fBERR\fP on failure.
+.PP
+X/Open does not define any error conditions.
+.PP
+This implementation returns an error
+if the window pointer is null.
+The \fBwcolor_set\fP function returns an error if the color pair parameter
+is outside the range 0..COLOR_PAIRS-1.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_addch\fR(3X),
.\"***************************************************************************
-.\" Copyright (c) 1998,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_beep.3x,v 1.9 2003/12/27 18:44:30 tom Exp $
+.\" $Id: curs_beep.3x,v 1.10 2005/01/08 17:55:51 tom Exp $
.TH curs_beep 3X ""
.SH NAME
\fBbeep\fR, \fBflash\fR - \fBcurses\fR bell and screen flash routines
SVr4's beep and flash routines always returned \fBOK\fR, so it was not
possible to tell when the beep or flash failed.
.SH PORTABILITY
-These functions are defined in the XSI Curses standard, Issue 4. Like SVr4, it
-specifies that they always return \fBOK\fR.
+These functions are described in the XSI Curses standard, Issue 4.
+Like SVr4, it specifies that they always return \fBOK\fR.
.SH SEE ALSO
\fBcurses\fR(3X)
.\"#
.\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_bkgrnd.3x,v 1.1 2002/02/23 23:23:42 tom Exp $
+.\" $Id: curs_bkgrnd.3x,v 1.2 2004/03/13 19:39:10 tom Exp $
.TH curs_bkgrnd 3X ""
.SH NAME
-.PP
\fBbkgrnd\fR,
\fBwbkgrnd\fR,
\fBbkgrndset\fR,
.\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_border.3x,v 1.15 2002/02/16 22:21:47 tom Exp $
+.\" $Id: curs_border.3x,v 1.17 2005/05/15 16:17:31 tom Exp $
.TH curs_border 3X ""
+.na
+.hy 0
.SH NAME
-\fBborder\fR, \fBwborder\fR, \fBbox\fR,
-\fBhline\fR, \fBwhline\fR,
-\fBvline\fR, \fBwvline\fR,
-\fBmvhline\fR, \fBmvwhline\fR,
-\fBmvvline\fR, \fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
+\fBborder\fR,
+\fBwborder\fR,
+\fBbox\fR,
+\fBhline\fR,
+\fBwhline\fR,
+\fBvline\fR,
+\fBwvline\fR,
+\fBmvhline\fR,
+\fBmvwhline\fR,
+\fBmvvline\fR,
+\fBmvwvline\fR - create \fBcurses\fR borders, horizontal and vertical lines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.br
.SH RETURN VALUE
All routines return the integer \fBOK\fR. 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 does not define any error conditions.
+This implementation returns an error
+if the window pointer is null.
.SH NOTES
The borders generated by these functions are \fIinside\fR borders (this
is also true of SVr4 curses, though the fact is not documented).
.\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_border_set.3x,v 1.3 2002/04/20 16:49:13 tom Exp $
+.\" $Id: curs_border_set.3x,v 1.6 2005/05/15 16:17:37 tom Exp $
.TH curs_border_set 3X ""
+.na
+.hy 0
.SH NAME
-.PP
\fBborder_set\fR,
\fBwborder_set\fR,
\fBbox_set\fR,
\fBwvline_set\fR,
\fBmvvline_set\fR,
\fBmvwvline_set\fR \- create \fBcurses\fR borders or lines using complex characters and renditions
+.ad
+.hy
.SH SYNOPSIS
.PP
\fB#include <curses.h>\fR
\fBOK\fR.
Otherwise, they return
\fBERR\fR.
+.PP
+Functions using a window parameter return an error if it is null.
.SH SEE ALSO
\fBncurses\fR(3X),
\fBcurs_border\fR(3X),
.\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_clear.3x,v 1.7 1998/03/11 21:12:53 juergen Exp $
+.\" $Id: curs_clear.3x,v 1.10 2005/10/01 19:34:43 tom Exp $
.TH curs_clear 3X ""
+.na
+.hy 0
.SH NAME
-\fBerase\fR, \fBwerase\fR, \fBclear\fR,
-\fBwclear\fR, \fBclrtobot\fR, \fBwclrtobot\fR, \fBclrtoeol\fR,
+\fBerase\fR,
+\fBwerase\fR,
+\fBclear\fR,
+\fBwclear\fR,
+\fBclrtobot\fR,
+\fBwclrtobot\fR,
+\fBclrtoeol\fR,
\fBwclrtoeol\fR - clear all or part of a \fBcurses\fR window
+.ad
+.hy
.SH SYNOPSIS
\fB# include <curses.h>\fR
-
+.sp
\fBint erase(void);\fR
.br
\fBint werase(WINDOW *win);\fR
.SH DESCRIPTION
The \fBerase\fR and \fBwerase\fR routines copy blanks to every
position in the window, clearing the screen.
-
+.PP
The \fBclear\fR and \fBwclear\fR routines are like \fBerase\fR and
\fBwerase\fR, but they also call \fBclearok\fR, so that the screen is
cleared completely on the next call to \fBwrefresh\fR for that window
and repainted from scratch.
-
+.PP
The \fBclrtobot\fR and \fBwclrtobot\fR routines erase from the cursor to the
end of screen. That is, they erase all lines below the cursor in the window.
Also, the current line to the right of the cursor, inclusive, is erased.
-
+.PP
The \fBclrtoeol\fR and \fBwclrtoeol\fR routines erase the current line
to the right of the cursor, inclusive, to the end of the current line.
-
+.PP
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. The SVr4.0 manual says "or a
+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.
.SH NOTES
Note that \fBerase\fR, \fBwerase\fR, \fBclear\fR, \fBwclear\fR,
\fBclrtobot\fR, and \fBclrtoeol\fR may be macros.
These functions are described in the XSI Curses standard, Issue 4. The
standard specifies that they return \fBERR\fR on failure, but specifies no
error conditions.
-
+.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. This will not work under
ncurses.
+.PP
+This implementation, and others such as Solaris,
+sets the current position to 0,0 after erasing
+via \fBwerase()\fP and \fBwclear()\fP.
+That fact is not documented in other implementations,
+and may not be true of implementations
+which were not derived from SVr4 source.
.SH SEE ALSO
\fBcurses\fR(3X), \fBcurs_outopts\fR(3X), \fBcurs_refresh\fR(3X)
.\"#
.\"***************************************************************************
-.\" Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_color.3x,v 1.19 2002/02/16 22:38:32 tom Exp $
+.\" $Id: curs_color.3x,v 1.27 2005/05/15 16:55:36 tom Exp $
.TH curs_color 3X ""
+.na
+.hy 0
.SH NAME
\fBstart_color\fR,
\fBinit_pair\fR,
\fBcolor_content\fR,
\fBpair_content\fR,
\fBCOLOR_PAIR\fR - \fBcurses\fR color manipulation routines
+.ad
+.hy
.SH SYNOPSIS
\fB# include <curses.h>\fR
.br
programmer initializes a color-pair with the routine \fBinit_pair\fR. After it
has been initialized, \fBCOLOR_PAIR\fR(\fIn\fR), a macro defined in
\fB<curses.h>\fR, can be used as a new video attribute.
-
+.SP
If a terminal is capable of redefining colors, the programmer can use the
routine \fBinit_color\fR to change the definition of a color. The routines
\fBhas_colors\fR and \fBcan_change_color\fR return \fBTRUE\fR or \fBFALSE\fR,
and color-pairs the terminal can support). It also restores the
colors on the terminal to the values they had when the terminal was
just turned on.
-
+.SP
The \fBinit_pair\fR routine changes the definition of a color-pair. It takes
three arguments: the number of the color-pair to be changed, the foreground
color number, and the background color number.
.TP 5
-
The value of the second and
-third arguments must be between 0 and \fBCOLORS\fR (the 0 color pair is wired
-to white on black and cannot be changed).
+third arguments must be between 0 and \fBCOLORS\fR.
+Color pair 0 is assumed to be white on black,
+but is actually whatever the terminal implements before color is initialized.
+It cannot be modified by the application.
.PP
If the color-pair was previously
initialized, the screen is refreshed and all occurrences of that color-pair
are changed to the new definition.
-
+.SP
As an extension, ncurses allows you to set color pair 0 via
the \fBassume_default_colors\fR routine, or to specify the use of
default colors (color number \fB-1\fR) if you first invoke the
\fBuse_default_colors\fR routine.
-
+.SP
The \fBinit_color\fR routine changes the definition of a color. It takes four
arguments: the number of the color to be changed followed by three RGB values
(for the amounts of red, green, and blue components). The value of the first
must be a value between 0 and 1000. When \fBinit_color\fR is used, all
occurrences of that color on the screen immediately change to the new
definition.
-
+.SP
The \fBhas_colors\fR routine requires no arguments. It returns \fBTRUE\fR if
the terminal can manipulate colors; otherwise, it returns \fBFALSE\fR. This
routine facilitates writing terminal-independent programs. For example, a
programmer can use it to decide whether to use color or some other video
attribute.
-
+.SP
The \fBcan_change_color\fR routine requires no arguments. It returns
\fBTRUE\fR if the terminal supports colors and can change their definitions;
other, it returns \fBFALSE\fR. This routine facilitates writing
terminal-independent programs.
-
+.SP
The \fBcolor_content\fR routine gives programmers a way to find the intensity
of the red, green, and blue (RGB) components in a color. It requires four
arguments: the color number, and three addresses of \fBshort\fRs for storing
\fBCOLORS\fR. The values that are stored at the addresses pointed to by the
last three arguments are between 0 (no component) and 1000 (maximum amount of
component).
-
+.SP
The \fBpair_content\fR routine allows programmers to find out what colors a
given color-pair consists of. It requires three arguments: the color-pair
number, and two addresses of \fBshort\fRs for storing the foreground and the
In \fB<curses.h>\fR the following macros are defined. These are the default
colors. \fBcurses\fR also assumes that \fBCOLOR_BLACK\fR is the default
background color for all terminals.
-
+.SP
.nf
\fBCOLOR_BLACK\fR
\fBCOLOR_RED\fR
.SH RETURN VALUE
The routines \fBcan_change_color()\fR and \fBhas_colors()\fR return \fBTRUE\fR
or \fBFALSE\fR.
-
+.SP
All other routines return the integer \fBERR\fR upon failure and an \fBOK\fR
(SVr4 specifies only "an integer value other than \fBERR\fR") upon successful
completion.
+.PP
+X/Open defines no error conditions.
+This implementation will return \fBERR\fR on attempts to
+use color values outside the range 0 to COLORS-1
+(except for the default colors extension),
+or use color pairs outside the range 0 to COLOR_PAIR-1.
+Color values used in \fBinit_color\fP must be in the range 0 to 1000.
+An error is returned from all functions
+if the terminal has not been initialized.
+An error is returned from secondary functions such as \fBinit_pair\fP
+if \fBstart_color\fP was not called.
+.RS
+.TP 5
+\fBinit_color\fP
+returns an error if the terminal does not support
+this feature, e.g., if the \fIinitialize_color\fP capability is absent
+from the terminal description.
+.TP 5
+\fBstart_color\fP
+returns an error
+If the color table cannot be allocated.
+.RE
.SH NOTES
In the \fIncurses\fR implementation, there is a separate color activation flag,
color palette, color pairs table, and associated COLORS and COLOR_PAIRS counts
for each screen; the \fBstart_color\fR function only affects the current
screen. The SVr4/XSI interface is not really designed with this in mind, and
historical implementations may use a single shared color palette.
-
+.SP
Note that setting an implicit background color via a color pair affects only
character cells that a character write operation explicitly touches. To change
the background color used when parts of a window are blanked by erasing or
scrolling operations, see \fBcurs_bkgd\fR(3X).
-
+.SP
Several caveats apply on 386 and 486 machines with VGA-compatible graphics:
.TP 5
-
.PP
The assumption that \fBCOLOR_BLACK\fR is the default
background color for all terminals can be modified using the
-\fBassume_default_colors\fP extension,
-
+\fBassume_default_colors\fP extension.
+.PP
+This implementation checks the pointers,
+e.g., for the values returned by
+\fBcolor_content\fP and \fBpair_content\fP,
+and will treat those as optional parameters when null.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_initscr\fR(3X),
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_deleteln.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_deleteln.3x,v 1.9 2005/05/15 16:53:35 tom Exp $
.TH curs_deleteln 3X ""
.SH NAME
\fBdeleteln\fR,
All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
specifies only "an integer value other than \fBERR\fR") upon successful
completion.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+if the window parameter is null, an error is returned.
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4. The
standard specifies that they return \fBERR\fR on failure, but specifies no
.\"***************************************************************************
-.\" Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1999-2003,2004 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 *
.\"
.\" Author: Thomas E. Dickey 1999
.\"
-.\" $Id: curs_extend.3x,v 1.12 2003/10/25 20:33:16 tom Exp $
+.\" $Id: curs_extend.3x,v 1.13 2004/07/05 13:16:08 tom Exp $
.TH curs_extend 3X ""
.SH NAME
\fBcurses_version\fP,
which may be compiled into the terminfo
description, i.e., via the terminfo or termcap interfaces.
Normally these names are available for use, since the essential decision
-is made by using the \fB\-x\fP option of \fItic\fP to compile
+is made by using the \fB-x\fP option of \fItic\fP to compile
extended terminal definitions.
However you can disable this feature
to ensure compatibility with other implementations of curses.
.\"***************************************************************************
-.\" Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_get_wstr.3x,v 1.3 2003/07/05 11:15:28 tom Exp $
+.\" $Id: curs_get_wstr.3x,v 1.5 2005/05/15 16:17:44 tom Exp $
.TH curs_get_wstr 3X ""
+.na
+.hy 0
.SH NAME
\fBget_wstr\fR,
\fBgetn_wstr\fR,
\fBmvgetn_wstr\fR,
\fBmvwget_wstr\fR,
\fBmvwgetn_wstr\fR \- get an array of wide characters from a curses terminal keyboard
+.ad
+.hy
.SH SYNOPSIS
.nf
\fB#include <curses.h>\fR
.SH RETURN VALUES
All of these functions return \fBOK\fR upon successful completion.
Otherwise, they return \fBERR\fR.
+.PP
+Functions using a window parameter return an error if it is null.
+.RS
+.TP 5
+\fBwgetn_wstr\fP
+returns an error if the associated call to \fBwget_wch\fP failed.
+.RE
.SH PORTABILITY
These functions are described in The Single Unix Specification, Version 2.
No error conditions are defined.
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getch.3x,v 1.24 2003/12/27 18:46:06 tom Exp $
+.\" $Id: curs_getch.3x,v 1.29 2005/06/25 22:03:09 tom Exp $
.TH curs_getch 3X ""
+.na
+.hy 0
.SH NAME
\fBgetch\fR,
\fBwgetch\fR,
\fBmvwgetch\fR,
\fBungetch\fR,
\fBhas_key\fR \- get (or push back) characters from \fBcurses\fR terminal keyboard
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.PP
l l
l l .
\fIName\fR/\fIKey\fR \fIname\fR
-.PP
KEY_BREAK/Break key
KEY_DOWN/The four arrow keys ...
KEY_UP
returns TRUE or FALSE according to whether
the current terminal type recognizes a key with that value.
Note that a few values do not correspond to a real key,
-e.g., KEY_RESIZE and KEY_MOUSE.
+e.g., \fBKEY_RESIZE\fP and \fBKEY_MOUSE\fP.
+See \fBresizeterm\fR(3X) for more details about \fBKEY_RESIZE\fP, and
+\fBcurs_mouse\fR(3X) for a discussion of \fBKEY_MOUSE\fP.
.PP
.SH RETURN VALUE
All routines return the integer \fBERR\fR upon failure and an integer value
other than \fBERR\fR (\fBOK\fR in the case of ungetch()) upon successful
completion.
+.RS
+.TP 5
+\fBungetch\fP
+returns an error
+if there is no more room in the FIFO.
+.TP 5
+\fBwgetch\fP
+returns an error
+if the window pointer is null, or
+if its timeout expires without having any data.
+.RE
.SH NOTES
Use of the escape key by a programmer for a single character function is
discouraged, as it will cause a delay of up to one second while the
keypad code looks for a following function-key sequence.
.PP
Note that some keys may be the same as commonly used control
-keys, e.g., KEY_ENTER versus control/M, KEY_BACKSPACE versus control/H.
+keys, e.g., \fBKEY_ENTER\fP versus control/M, \fBKEY_BACKSPACE\fP versus control/H.
Some curses implementations may differ according to whether they
treat these control keys specially (and ignore the terminfo), or
use the terminfo definitions.
\fBNcurses\fR uses the terminfo definition.
-If it says that KEY_ENTER is control/M, \fBgetch\fR will return KEY_ENTER
+If it says that \fBKEY_ENTER\fP is control/M,
+\fBgetch\fR will return \fBKEY_ENTER\fP
when you press control/M.
.PP
When using \fBgetch\fR, \fBwgetch\fR, \fBmvgetch\fR, or
\fBcurs_inopts\fR(3X),
\fBcurs_mouse\fR(3X),
\fBcurs_move\fR(3X),
-\fBcurs_refresh\fR(3X).
+\fBcurs_refresh\fR(3X),
\fBresizeterm\fR(3X).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_getstr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_getstr.3x,v 1.14 2005/05/15 16:17:55 tom Exp $
.TH curs_getstr 3X ""
+.na
+.hy 0
.SH NAME
\fBgetstr\fR,
\fBgetnstr\fR,
\fBmvgetnstr\fR,
\fBmvwgetstr\fR,
\fBmvwgetnstr\fR - accept character strings from \fBcurses\fR terminal keyboard
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
All routines return the integer \fBERR\fR upon failure and an \fBOK\fR (SVr4
specifies only "an integer value other than \fBERR\fR") upon successful
completion.
+.PP
+X/Open defines no error conditions.
+.PP
+In this implementation,
+these functions return an error
+if the window pointer is null, or
+if its timeout expires without having any data.
.SH NOTES
Note that \fBgetstr\fR, \fBmvgetstr\fR, and \fBmvwgetstr\fR may be macros.
.SH PORTABILITY
.\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_in_wchstr.3x,v 1.2 2002/05/18 21:48:30 tom Exp $
+.\" $Id: curs_in_wchstr.3x,v 1.5 2005/05/15 16:57:17 tom Exp $
.TH curs_in_wchstr 3X ""
+.na
+.hy 0
.SH NAME
\fBin_wchstr\fR,
\fBin_wchnstr\fR,
\fBmvin_wchnstr\fR,
\fBmvwin_wchstr\fR,
\fBmvwin_wchnstr\fR \- get an array of complex characters and renditions from a curses window
+.ad
+.hy
.SH SYNOPSIS
.nf
\fB#include <curses.h>\fR
-
+.sp
\fBint in_wchstr(cchar_t *\fR\fIwchstr\fR\fB);\fR
.br
\fBint in_wchnstr(cchar_t *\fR\fIwchstr\fR\fB, int \fR\fIn\fR\fB);\fR
.SH SEE ALSO
Functions:
\fBcurses\fR(3X),
-\fBcurs_in_wch\fR(3X)
+\fBcurs_in_wch\fR(3X),
\fBcurs_instr\fR(3X),
\fBcurs_inwstr\fR(3X)
.\"#
.\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inchstr.3x,v 1.8 2000/07/01 20:16:18 tom Exp $
+.\" $Id: curs_inchstr.3x,v 1.10 2005/05/15 16:54:53 tom Exp $
.TH curs_inchstr 3X ""
+.na
+.hy 0
.SH NAME
\fBinchstr\fR,
\fBinchnstr\fR,
\fBmvinchnstr\fR,
\fBmvwinchstr\fR,
\fBmvwinchnstr\fR - get a string of characters (and attributes) from a \fBcurses\fR window
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
All routines return the integer \fBERR\fR upon failure and an integer value
other than \fBERR\fR upon successful completion (the number of characters
retrieved, exclusive of the trailing 0).
+.PP
+No error conditions are defined.
+If the \fIchstr\fP parameter is null,
+no data is returned,
+and the return value is zero.
.SH NOTES
Note that all routines except \fBwinchnstr\fR may be macros. SVr4 does not
document whether the result string is 0-terminated; it does not document
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_initscr.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_initscr.3x,v 1.14 2005/05/15 16:18:01 tom Exp $
.TH curs_initscr 3X ""
+.na
+.hy 0
.SH NAME
\fBinitscr\fR,
\fBnewterm\fR,
\fBisendwin\fR,
\fBset_term\fR,
\fBdelscreen\fR - \fBcurses\fR screen initialization and manipulation routines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
-
+.sp
\fBWINDOW *initscr(void);\fR
.br
\fBint endwin(void);\fR
called before it; these are \fBslk_init\fR, \fBfilter\fR, \fBripoffline\fR,
\fBuse_env\fR. For multiple-terminal applications, \fBnewterm\fR may be
called before \fBinitscr\fR.
-
+.PP
The initscr code determines the terminal type and initializes all \fBcurses\fR
data structures. \fBinitscr\fR also causes the first call to \fBrefresh\fR to
clear the screen. If errors occur, \fBinitscr\fR writes an appropriate error
message to standard error and exits; otherwise, a pointer is returned to
\fBstdscr\fR.
-
+.PP
A program that outputs to more than one terminal should use the \fBnewterm\fR
routine for each terminal instead of \fBinitscr\fR. A program that needs to
inspect capabilities, so it can continue to run in a line-oriented mode if the
\fBendwin\fR for each terminal being used before exiting from \fBcurses\fR.
If \fBnewterm\fR is called more than once for the same terminal, the first
terminal referred to must be the last one for which \fBendwin\fR is called.
-
+.PP
A program should always call \fBendwin\fR before exiting or escaping from
\fBcurses\fR mode temporarily. This routine restores tty modes, moves the
cursor to the lower left-hand corner of the screen and resets the terminal into
the proper non-visual mode. Calling \fBrefresh\fR or \fBdoupdate\fR after a
temporary escape causes the program to resume visual mode.
-
+.PP
The \fBisendwin\fR routine returns \fBTRUE\fR if \fBendwin\fR has been
called without any subsequent calls to \fBwrefresh\fR, and \fBFALSE\fR
otherwise.
-
+.PP
The \fBset_term\fR routine is used to switch between different
terminals. The screen reference \fBnew\fR becomes the new current
terminal. The previous terminal is returned by the routine. This is
the only routine which manipulates \fBSCREEN\fR pointers; all other
routines affect only the current terminal.
-
+.PP
The \fBdelscreen\fR routine frees storage associated with the
\fBSCREEN\fR data structure. The \fBendwin\fR routine does not do
this, so \fBdelscreen\fR should be called after \fBendwin\fR if a
.SH RETURN VALUE
\fBendwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
upon successful completion.
-
+.PP
Routines that return pointers always return \fBNULL\fR on error.
+.PP
+X/Open defines no error conditions.
+In this implementation
+\fBendwin\fP returns an error if the terminal was not initialized.
.SH NOTES
Note that \fBinitscr\fR and \fBnewterm\fR may be macros.
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4. It
specifies that portable applications must not call \fBinitscr\fR more than
once.
-
+.PP
Old versions of curses, e.g., BSD 4.4, may have returned a null pointer
from \fBinitscr\fR when an error is detected, rather than exiting.
It is safe but redundant to check the return value of \fBinitscr\fR
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inopts.3x,v 1.11 2003/12/27 18:45:42 tom Exp $
+.\" $Id: curs_inopts.3x,v 1.13 2005/05/15 16:18:07 tom Exp $
.TH curs_inopts 3X ""
+.na
+.hy 0
.SH NAME
-\fBcbreak\fR, \fBnocbreak\fR, \fBecho\fR,
-\fBnoecho\fR, \fBhalfdelay\fR, \fBintrflush\fR, \fBkeypad\fR,
-\fBmeta\fR, \fBnodelay\fR, \fBnotimeout\fR, \fBraw\fR, \fBnoraw\fR,
-\fBnoqiflush\fR, \fBqiflush\fR, \fBtimeout\fR, \fBwtimeout\fR,
+\fBcbreak\fR,
+\fBnocbreak\fR,
+\fBecho\fR,
+\fBnoecho\fR,
+\fBhalfdelay\fR,
+\fBintrflush\fR,
+\fBkeypad\fR,
+\fBmeta\fR,
+\fBnodelay\fR,
+\fBnotimeout\fR,
+\fBraw\fR,
+\fBnoraw\fR,
+\fBnoqiflush\fR,
+\fBqiflush\fR,
+\fBtimeout\fR,
+\fBwtimeout\fR,
\fBtypeahead\fR - \fBcurses\fR input options
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.PP
All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
specifies only "an integer value other than \fBERR\fR") upon successful
completion, unless otherwise noted in the preceding routine descriptions.
+.PP
+X/Open does not define any error conditions.
+In this implementation,
+functions with a window parameter will return an error if it is null.
+Any function will also return an error if the terminal was not initialized.
+Also,
+.RS
+.TP 5
+\fBhalfdelay\fP
+returns an error
+if its parameter is outside the range 1..255.
+.RE
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4.
.PP
.\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_ins_wstr.3x,v 1.2 2002/03/10 23:43:27 tom Exp $
+.\" $Id: curs_ins_wstr.3x,v 1.4 2005/05/15 17:02:54 tom Exp $
.TH curs_ins_wstr 3X ""
+.na
+.hy 0
.SH NAME
\fBins_wstr\fR,
\fBins_nwstr\fR,
\fBmvins_nwstr\fR,
\fBmvwins_wstr\fR,
\fBmvwins_nwstr\fR \- insert a wide-character string into a curses window
+.ad
+.hy
.SH SYNOPSIS
.nf
\fB#include <curses.h>\fR
-
+.sp
\fBint ins_wstr(const wchar_t *\fR\fIwstr);\fR
.br
\fBint ins_nwstr(const wchar_t *\fR\fIwstr\fR\fB, int \fR\fIn\fR\fB);\fR
The four routines with \fIn\fR as the last argument
insert a leading substring of at most \fIn\fR \fBwchar_t\fR characters.
If \fIn\fR is less than 1, the entire string is inserted.
-
+.PP
If a character in \fIwstr\fR is a tab, newline, carriage return or
backspace, the cursor is moved appropriately within the window.
A newline also does a \fBclrtoeol\fR before moving.
of the control character.
.SH NOTES
Note that all but wins_nwstr may be macros.
-
+.PP
If the first character in the string is a nonspacing character, these
functions will fail.
XSI does not define what will happen if a nonspacing character follows
.\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_insstr.3x,v 1.12 2001/11/03 19:59:03 tom Exp $
+.\" $Id: curs_insstr.3x,v 1.16 2005/05/15 17:48:33 tom Exp $
.TH curs_insstr 3X ""
.SH NAME
\fBinsstr\fR,
\fBint mvwinsnstr(WINDOW *win, int y, int x, const char *str, int n);\fR
.br
.SH DESCRIPTION
-These routines insert a character string (as many characters as will fit on the
-line) before the character under the cursor. All characters to the right of
-the cursor are shifted right, with the possibility of the rightmost characters
-on the line being lost. The cursor position does not change (after moving to
-\fIy\fR, \fIx\fR, if specified). The four routines with \fIn\fR as the last
-argument insert a leading substring of at most \fIn\fR characters. If
-\fIn\fR<=0, then the entire string is inserted.
+These routines insert a character string
+(as many characters as will fit on the line)
+before the character under the cursor.
+All characters to the right of the cursor are shifted right
+with the possibility of the rightmost characters on the line being lost.
+The cursor position does not change
+(after moving to \fIy\fR, \fIx\fR, if specified).
+The functions with \fIn\fR as the last argument
+insert a leading substring of at most \fIn\fR characters.
+If \fIn\fR<=0, then the entire string is inserted.
-If a character in \fIstr\fR is a tab, newline, carriage return or
-backspace, the cursor is moved appropriately within the window. A
-newline also does a \fBclrtoeol\fR before moving. Tabs are considered
-to be at every eighth column. If a character in \fIstr\fR is another
-control character, it is drawn in the \fB^\fR\fIX\fR notation.
-Calling \fBwinch\fR after adding a control character (and moving to
-it, if necessary) does not return the control character, but instead
-returns a character in the ^-representation of the control character.
+Special characters are handled as in \fBaddch\fP.
.SH RETURN VALUE
All routines that return an integer return \fBERR\fR upon failure and OK (SVr4
specifies only "an integer value other than \fBERR\fR") upon successful
completion, unless otherwise noted in the preceding routine descriptions.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+if the window parameter is null or the str parameter is null,
+an error is returned.
.SH NOTES
Note that all but \fBwinsnstr\fR may be macros.
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4, which adds
-const qualifiers to the arguments. The XSI Curses error conditions
-\fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with extended-level conformance
-are not yet detected (this implementation does not yet support XPG4 multibyte
-characters).
+const qualifiers to the arguments.
+.LP
+The Single Unix Specification, Version 2 states that
+\fBinsnstr\fP and \fBwinsnstr\fP perform wrapping.
+This is probably an error, since it makes this group of functions inconsistent.
+Also, no implementation of curses documents this inconsistency.
.SH SEE ALSO
-\fBcurses\fR(3X), \fBcurs_clear\fR(3X), \fBcurs_inch\fR(3X).
+\fBcurses\fR(3X),
+\fBunctrl\fR(3X),
+\fBcurs_clear\fR(3X),
+\fBcurs_inch\fR(3X).
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998,2001,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_instr.3x,v 1.10 2001/11/03 19:58:56 tom Exp $
+.\" $Id: curs_instr.3x,v 1.12 2005/05/15 17:48:23 tom Exp $
.TH curs_instr 3X ""
.SH NAME
\fBinstr\fR,
.SH RETURN VALUE
All of the functions return \fBERR\fR upon failure,
or the number of characters actually read into the string.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+if the window parameter is null or the str parameter is null,
+a zero is returned.
.SH NOTES
Note that all routines except \fBwinnstr\fR may be macros.
.SH PORTABILITY
-The XSI Curses
-error conditions \fBEILSEQ\fR and \fBEILOVERFLOW\fR associated with
-extended-level conformance are not yet detected (this implementation does not
-yet support XPG4 multibyte characters).
SVr4 does not
document whether a length limit includes or excludes the trailing NUL.
.PP
.\"***************************************************************************
-.\" Copyright (c) 2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 2002-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_inwstr.3x,v 1.2 2002/04/13 20:25:35 tom Exp $
-.TH curs_inwstr 3 ""
+.\" $Id: curs_inwstr.3x,v 1.4 2005/06/25 18:31:26 Daniel.Jacobowitz Exp $
+.TH curs_inwstr 3X ""
.SH NAME
-.PP
\fBinwstr\fR,
\fBinnwstr\fR,
\fBwinwstr\fR,
.\"***************************************************************************
-.\" Copyright (c) 1998 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_kernel.3x,v 1.13 2001/12/08 18:01:25 tom Exp $
+.\" $Id: curs_kernel.3x,v 1.15 2005/05/15 16:18:13 tom Exp $
.TH curs_kernel 3X ""
+.na
+.hy 0
.SH NAME
-\fBdef_prog_mode\fR, \fBdef_shell_mode\fR,
-\fBreset_prog_mode\fR, \fBreset_shell_mode\fR, \fBresetty\fR,
-\fBsavetty\fR, \fBgetsyx\fR, \fBsetsyx\fR, \fBripoffline\fR,
-\fBcurs_set\fR, \fBnapms\fR - low-level \fBcurses\fR routines
+\fBdef_prog_mode\fR,
+\fBdef_shell_mode\fR,
+\fBreset_prog_mode\fR,
+\fBreset_shell_mode\fR,
+\fBresetty\fR,
+\fBsavetty\fR,
+\fBgetsyx\fR,
+\fBsetsyx\fR,
+\fBripoffline\fR,
+\fBcurs_set\fR,
+\fBnapms\fR - low-level \fBcurses\fR routines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
-
+.sp
\fBint def_prog_mode(void);\fR
.br
\fBint def_shell_mode(void);\fR
The following routines give low-level access to various \fBcurses\fR
capabilities. Theses routines typically are used inside library
routines.
-
+.PP
The \fBdef_prog_mode\fR and \fBdef_shell_mode\fR routines save the
current terminal modes as the "program" (in \fBcurses\fR) or "shell"
(not in \fBcurses\fR) state for use by the \fBreset_prog_mode\fR and
\fBreset_shell_mode\fR routines. This is done automatically by
\fBinitscr\fR. There is one such save area for each screen context
allocated by \fBnewterm()\fR.
-
+.PP
The \fBreset_prog_mode\fR and \fBreset_shell_mode\fR routines restore
the terminal to "program" (in \fBcurses\fR) or "shell" (out of
\fBcurses\fR) state. These are done automatically by \fBendwin\fR
and, after an \fBendwin\fR, by \fBdoupdate\fR, so they normally are
not called.
-
+.PP
The \fBresetty\fR and \fBsavetty\fR routines save and restore the
state of the terminal modes. \fBsavetty\fR saves the current state in
a buffer and \fBresetty\fR restores the state to what it was at the
last call to \fBsavetty\fR.
-
+.PP
The \fBgetsyx\fR routine returns the current coordinates of the virtual screen
cursor in \fIy\fR and \fIx\fR. If \fBleaveok\fR is currently \fBTRUE\fR, then
\fB-1\fR,\fB-1\fR is returned. If lines have been removed from the top of the
screen, using \fBripoffline\fR, \fIy\fR and \fIx\fR include these lines;
therefore, \fIy\fR and \fIx\fR should be used only as arguments for
\fBsetsyx\fR.
-
+.PP
The \fBsetsyx\fR routine sets the virtual screen cursor to
\fIy\fR, \fIx\fR. If \fIy\fR and \fIx\fR are both \fB-1\fR, then
\fBleaveok\fR is set. The two routines \fBgetsyx\fR and \fBsetsyx\fR
at the beginning, do its manipulation of its own windows, do a
\fBwnoutrefresh\fR on its windows, call \fBsetsyx\fR, and then call
\fBdoupdate\fR.
-
+.PP
The \fBripoffline\fR routine provides access to the same facility that
\fBslk_init\fR [see \fBcurs_slk\fR(3X)] uses to reduce the size of the
screen. \fBripoffline\fR must be called before \fBinitscr\fR or
accurate and \fBwrefresh\fR or \fBdoupdate\fR must not be called. It
is allowable to call \fBwnoutrefresh\fR during the initialization
routine.
-
+.PP
\fBripoffline\fR can be called up to five times before calling \fBinitscr\fR or
\fBnewterm\fR.
-
+.PP
The \fBcurs_set\fR routine sets the cursor state is set to invisible,
normal, or very visible for \fBvisibility\fR equal to \fB0\fR,
\fB1\fR, or \fB2\fR respectively. If the terminal supports the
\fIvisibility\fR requested, the previous \fIcursor\fR state is
returned; otherwise, \fBERR\fR is returned.
-
+.PP
The \fBnapms\fR routine is used to sleep for \fIms\fR milliseconds.
.SH RETURN VALUE
Except for \fBcurs_set\fR, these routines always return \fBOK\fR.
-\fBcurs_set\fR returns the previous cursor state, or \fBERR\fR if the
+.PP
+\fBcurs_set\fR
+returns the previous cursor state, or \fBERR\fR if the
requested \fIvisibility\fR is not supported.
+.PP
+X/Open defines no error conditions.
+In this implementation
+.RS
+.TP 5
+\fBdef_prog_mode\fR, \fBdef_shell_mode\fR, \fBreset_prog_mode\fR, \fBreset_shell_mode\fR
+return an error
+if the terminal was not initialized, or
+if the I/O call to obtain the terminal settings fails.
+.TP 5
+\fBripoffline\fP
+returns an error if the maximum number of ripped-off lines
+exceeds the maximum (NRIPS = 5).
+.RE
.SH NOTES
Note that \fBgetsyx\fR is a macro, so \fB&\fR is not necessary before
the variables \fIy\fR and \fIx\fR.
-
+.PP
Older SVr4 man pages warn that the return value of \fBcurs_set\fR "is currently
incorrect". This implementation gets it right, but it may be unwise to count
on the correctness of the return value anywhere else.
-
+.PP
Both ncurses and SVr4 will call \fBcurs_set\fR in \fBendwin\fR
if \fBcurs_set\fR
has been called to make the cursor other than normal, i.e., either
.SH PORTABILITY
The functions \fBsetsyx\fR and \fBgetsyx\fR are not described in the XSI
Curses standard, Issue 4. All other functions are as described in XSI Curses.
-
+.PP
The SVr4 documentation describes \fBsetsyx\fR and \fBgetsyx\fR as having return
type int. This is misleading, as they are macros with no documented semantics
for the return value.
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_mouse.3x,v 1.24 2003/12/27 18:47:54 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.28 2005/05/15 16:18:19 tom Exp $
.TH curs_mouse 3X ""
+.na
+.hy 0
.SH NAME
\fBgetmouse\fR, \fBungetmouse\fR,
\fBmousemask\fR, \fBwenclose\fR,
\fBmouse_trafo\fR, \fBwmouse_trafo\fR,
\fBmouseinterval\fR - mouse interface through curses
+.ad
+.hy
.SH SYNOPSIS
.nf
\fB#include <curses.h>
setting a nonzero mask may turn it on.
Whether this happens is device-dependent.
.PP
-Here are the mouse event type masks:
+Here are the mouse event type masks which may be defined:
.PP
.TS
l l
BUTTON1_CLICKED mouse button 1 clicked
BUTTON1_DOUBLE_CLICKED mouse button 1 double clicked
BUTTON1_TRIPLE_CLICKED mouse button 1 triple clicked
+_
BUTTON2_PRESSED mouse button 2 down
BUTTON2_RELEASED mouse button 2 up
BUTTON2_CLICKED mouse button 2 clicked
BUTTON2_DOUBLE_CLICKED mouse button 2 double clicked
BUTTON2_TRIPLE_CLICKED mouse button 2 triple clicked
+_
BUTTON3_PRESSED mouse button 3 down
BUTTON3_RELEASED mouse button 3 up
BUTTON3_CLICKED mouse button 3 clicked
BUTTON3_DOUBLE_CLICKED mouse button 3 double clicked
BUTTON3_TRIPLE_CLICKED mouse button 3 triple clicked
+_
BUTTON4_PRESSED mouse button 4 down
BUTTON4_RELEASED mouse button 4 up
BUTTON4_CLICKED mouse button 4 clicked
BUTTON4_DOUBLE_CLICKED mouse button 4 double clicked
BUTTON4_TRIPLE_CLICKED mouse button 4 triple clicked
+_
+BUTTON5_PRESSED mouse button 5 down
+BUTTON5_RELEASED mouse button 5 up
+BUTTON5_CLICKED mouse button 5 clicked
+BUTTON5_DOUBLE_CLICKED mouse button 5 double clicked
+BUTTON5_TRIPLE_CLICKED mouse button 5 triple clicked
+_
BUTTON_SHIFT shift was down during button state change
BUTTON_CTRL control was down during button state change
BUTTON_ALT alt was down during button state change
ALL_MOUSE_EVENTS report all button state changes
REPORT_MOUSE_POSITION report mouse movement
+_
.TE
.PP
Once a class of mouse events have been made visible in a window,
The \fBmouseinterval\fR function sets the maximum time (in thousands of a
second) that can elapse between press and release events for them to
be recognized as a click.
-Use \fBmouseinterval(-1)\fR to disable click resolution.
+Use \fBmouseinterval(0)\fR to disable click resolution.
This function returns the previous interval value.
+Use \fBmouseinterval(-1)\fR to obtain the interval without altering it.
The default is one sixth of a second.
.PP
Note that mouse events will be ignored when input is in cooked mode, and will
function such as \fBgetstr\fR that expects a linefeed for input-loop
termination.
.SH RETURN VALUE
-\fBgetmouse\fR, \fBungetmouse\fR and \fBmouseinterval\fR
+\fBgetmouse\fR and \fBungetmouse\fR
return the integer \fBERR\fR upon failure or \fBOK\fR
upon successful completion.
-\fBmousemask\fR returns the
-mask of reportable events.
+.RS
+.TP 5
+\fBgetmouse\fP
+returns an error.
+If no mouse driver was initialized, or
+if the mask parameter is zero,
+.TP 5
+\fBungetmouse\fP
+returns an error if the FIFO is full.
+.RE
+.PP
+\fBmousemask\fR
+returns the mask of reportable events.
+.PP
+\fBmouseinterval\fR
+returns the previous interval value, unless
+the terminal was not initialized.
+In that case, it returns the maximum interval value (166).
+.PP
\fBwenclose\fR and \fBwmouse_trafo\fR
are boolean functions returning \fBTRUE\fR or \fBFALSE\fR depending
on their test result.
curses, 4.4BSD curses, or any other previous version of curses.
.PP
The feature macro \fBNCURSES_MOUSE_VERSION\fR is provided so the preprocessor
-can be used to test whether these features are present (its value is 1).
+can be used to test whether these features are present.
If the interface is changed, the value of \fBNCURSES_MOUSE_VERSION\fR will be
incremented.
+These values for \fBNCURSES_MOUSE_VERSION\fR may be
+specified when configuring ncurses:
+.RS
+.TP 3
+1
+has definitions for reserved events.
+The mask uses 28 bits.
+.TP 3
+2
+adds definitions for button 5,
+removes the definitions for reserved events.
+The mask uses 29 bits.
+.RE
.PP
The order of the \fBMEVENT\fR structure members is not guaranteed.
Additional fields may be added to the structure in the future.
.\"***************************************************************************
-.\" Copyright (c) 1998,2001 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_move.3x,v 1.7 2001/11/03 19:58:47 tom Exp $
+.\" $Id: curs_move.3x,v 1.11 2005/05/15 17:36:19 tom Exp $
.TH curs_move 3X ""
+.na
+.hy 0
.SH NAME
-\fBmove\fR, \fBwmove\fR - move \fBcurses\fR window cursor
+\fBmove\fR,
+\fBwmove\fR - move \fBcurses\fR window cursor
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
These routines return \fBERR\fR upon failure and OK (SVr4
specifies only "an integer value other than \fBERR\fR") upon successful
completion.
+.PP
+Specifically, they return an error
+if the window pointer is null, or
+if the position is outside the window.
.SH NOTES
Note that \fBmove\fR may be a macro.
.SH PORTABILITY
-These functions are described in the XSI Curses standard, Issue 4. The
-standard specifies that if (y,x) is within a multi-column character, the cursor
-is moved to the first column of that character; however, this implementation
-does not yet support the extended-level XSI multibyte characters.
+These functions are described in the XSI Curses standard, Issue 4.
.SH SEE ALSO
\fBcurses\fR(3X), \fBcurs_refresh\fR(3X)
.\"#
.\"***************************************************************************
-.\" Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_outopts.3x,v 1.18 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_outopts.3x,v 1.20 2005/05/15 16:18:32 tom Exp $
.TH curs_outopts 3X ""
+.na
+.hy 0
.SH NAME
-\fBclearok\fR, \fBidlok\fR, \fBidcok\fR, \fBimmedok\fR,
-\fBleaveok\fR, \fBsetscrreg\fR, \fBwsetscrreg\fR, \fBscrollok\fR,
-\fBnl\fR, \fBnonl\fR - \fBcurses\fR output options
+\fBclearok\fR,
+\fBidlok\fR,
+\fBidcok\fR,
+\fBimmedok\fR,
+\fBleaveok\fR,
+\fBsetscrreg\fR,
+\fBwsetscrreg\fR,
+\fBscrollok\fR,
+\fBnl\fR,
+\fBnonl\fR - \fBcurses\fR output options
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
-
+.sp
\fBint clearok(WINDOW *win, bool bf);\fR
.br
\fBint idlok(WINDOW *win, bool bf);\fR
\fBcurses\fR.
All options are initially \fBFALSE\fR, unless otherwise stated.
It is not necessary to turn these options off before calling \fBendwin\fR.
-
+.PP
If \fBclearok\fR is called with \fBTRUE\fR as argument, the next
call to \fBwrefresh\fR with this window will clear the screen completely and
redraw the entire screen from scratch.
the \fIwin\fR argument to \fBclearok\fR is the global variable \fBcurscr\fR,
the next call to \fBwrefresh\fR with any window causes the screen to be cleared
and repainted from scratch.
-
+.PP
If \fBidlok\fR is called with \fBTRUE\fR as second argument, \fBcurses\fR
considers using the hardware insert/delete line feature of terminals so
equipped.
when used in applications where it isn't really needed.
If insert/delete line
cannot be used, \fBcurses\fR redraws the changed portions of all lines.
-
+.PP
If \fBidcok\fR is called with \fBFALSE\fR as second argument, \fBcurses\fR
no longer considers using the hardware insert/delete character feature of
terminals so equipped.
Use of character insert/delete is enabled by default.
Calling \fBidcok\fR with \fBTRUE\fR as second argument re-enables use
of character insertion and deletion.
-
+.PP
If \fBimmedok\fR is called with \fBTRUE as argument\fR, any change
in the window image, such as the ones caused by \fBwaddch, wclrtobot, wscrl\fR,
etc., automatically cause a call to \fBwrefresh\fR.
However, it may
degrade performance considerably, due to repeated calls to \fBwrefresh\fR.
It is disabled by default.
-
+.PP
Normally, the hardware cursor is left at the location of the window cursor
being refreshed.
The \fBleaveok\fR option allows the cursor to be left
wherever the update happens to leave it.
It is useful for applications where
the cursor is not used, since it reduces the need for cursor motions.
-
+.PP
The \fBsetscrreg\fR and \fBwsetscrreg\fR routines allow the application
programmer to set a software scrolling region in a window.
\fItop\fR and
If \fBidlok\fR is enabled and the terminal
has either a scrolling region or insert/delete line capability, they will
probably be used by the output routines.)
-
+.PP
The \fBscrollok\fR option controls what happens when the cursor of a window is
moved off the edge of the window or scrolling region, either as a result of a
newline action on the bottom line, or typing the last character of the last
If enabled, (\fIbf\fR is \fBTRUE\fR), the window is scrolled up one line
(Note that to get the physical scrolling effect on the terminal, it is
also necessary to call \fBidlok\fR).
-
+.PP
The \fBnl\fR and \fBnonl\fR routines control whether the underlying display
device translates the return key into newline on input, and whether it
translates newline into return and line-feed on output (in either case, the
and \fBERR\fR upon failure.
All other routines that return an integer always
return \fBOK\fR.
+.PP
+X/Open does not define any error conditions.
+.PP
+In this implementation, those functions that have a window pointer
+will return an error if the window pointer is null.
+.RS
+.TP 5
+.B wclrtoeol
+returns an error
+if the cursor position is about to wrap.
+.TP 5
+.B wsetscrreg
+returns an error if the scrolling region limits extend outside the window.
+.RE
+.PP
+X/Open does not define any error conditions.
+This implementation returns an error
+if the window pointer is null.
.SH PORTABILITY
These functions are described in the XSI Curses standard, Issue 4.
-
+.PP
The XSI Curses standard is ambiguous on the question of whether \fBraw\fR()
should disable the CRLF translations controlled by \fBnl\fR() and \fBnonl\fR().
BSD curses did turn off these translations; AT&T curses (at least as late as
SVr1) did not.
We choose to do so, on the theory that a programmer requesting
raw input wants a clean (ideally 8-bit clean) connection that the operating
-system does not mess with.
-
+system will not alter.
+.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.
This will not work under
ncurses.
-
+.PP
Earlier System V curses implementations specified that with \fBscrollok\fR
enabled, any window modification triggering a scroll also forced a physical
refresh.
XSI Curses does not require this, and \fBncurses\fR avoids doing
it to perform better vertical-motion optimization at \fBwrefresh\fR
time.
-
+.PP
The XSI Curses standard does not mention that the cursor should be
made invisible as a side-effect of \fBleaveok\fR.
SVr4 curses documentation does this, but the code does not.
.SH NOTES
Note that \fBclearok\fR, \fBleaveok\fR, \fBscrollok\fR, \fBidcok\fR, \fBnl\fR,
\fBnonl\fR and \fBsetscrreg\fR may be macros.
-
+.PP
The \fBimmedok\fR routine is useful for windows that are used as terminal
emulators.
.SH SEE ALSO
.\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_overlay.3x,v 1.11 2002/07/20 14:53:00 tom Exp $
+.\" $Id: curs_overlay.3x,v 1.13 2005/05/15 16:18:38 tom Exp $
.TH curs_overlay 3X ""
+.na
+.hy 0
.SH NAME
\fBoverlay\fR,
\fBoverwrite\fR,
\fBcopywin\fR - overlay and manipulate overlapped \fBcurses\fR windows
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR
(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
completion.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+\fBcopywin\fP,
+\fBoverlay\fP and \fBoverwrite\fP return an error
+if either of the window pointers are null, or
+if some part of the window would be placed off-screen.
.SH NOTES
Note that \fBoverlay\fR and \fBoverwrite\fR may be macros.
.SH PORTABILITY
.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_pad.3x,v 1.12 2004/01/04 01:36:49 tom Exp $
+.\" $Id: curs_pad.3x,v 1.14 2005/05/15 16:18:43 tom Exp $
.TH curs_pad 3X ""
+.na
+.hy 0
.SH NAME
-\fBnewpad\fR, \fBsubpad\fR, \fBprefresh\fR,
+\fBnewpad\fR,
+\fBsubpad\fR,
+\fBprefresh\fR,
\fBpnoutrefresh\fR,
-\fBpechochar\fR, \fBpecho_wchar\fR - create and display \fBcurses\fR pads
+\fBpechochar\fR,
+\fBpecho_wchar\fR - create and display \fBcurses\fR pads
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.sp
.PP
Routines that return pointers return \fBNULL\fR on error, and set \fBerrno\fR
to \fBENOMEM\fR.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBprefresh\fP and \fBpnoutrefresh\fP
+return an error
+if the window pointer is null, or
+if the window is not really a pad or
+if the area to refresh extends off-screen or
+if the minimum coordinates are greater than the maximum.
+.TP 5
+\fBpechochar\fP
+returns an error
+if the window is not really a pad, and the associated call
+to \fBwechochar\fP returns an error.
+.TP 5
+\fBpecho_wchar\fP
+returns an error
+if the window is not really a pad, and the associated call
+to \fBwecho_wchar\fP returns an error.
+.RE
.SH NOTES
Note that \fBpechochar\fR may be a macro.
.SH PORTABILITY
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_print.3x,v 1.6 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_print.3x,v 1.7 2005/05/15 15:59:36 tom Exp $
.TH curs_print 3X ""
.SH NAME
\fBmcprint\fR - ship binary data to printer
with \fBwrite(2)\fR or one of the following:
.TP 5
ENODEV
-Capabilities for printer redirection don't exist.
+Capabilities for printer redirection do not exist.
.TP 5
ENOMEM
Couldn't allocate sufficient memory to buffer the printer write.
.\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_printw.3x,v 1.13 2002/11/16 22:28:57 tom Exp $
+.\" $Id: curs_printw.3x,v 1.15 2005/05/15 16:55:16 tom Exp $
.TH curs_printw 3X ""
+.na
+.hy 0
.SH NAME
\fBprintw\fR,
\fBwprintw\fR,
\fBmvprintw\fR,
\fBmvwprintw\fR,
\fBvwprintw\fR, \fBvw_printw\fR - print formatted output in \fBcurses\fR windows
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
Routines that return an integer return \fBERR\fR upon failure and \fBOK\fR
(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
completion.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+an error may be returned if it cannot allocate enough memory for the
+buffer used to format the results.
+It will return an error if the window pointer is null.
.SH PORTABILITY
The XSI Curses standard, Issue 4 describes these functions. The function
\fBvwprintw\fR is marked TO BE WITHDRAWN, and is to be replaced by a function
.\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_refresh.3x,v 1.10 2001/11/03 18:57:12 tom Exp $
+.\" $Id: curs_refresh.3x,v 1.12 2005/05/15 16:18:49 tom Exp $
.TH curs_refresh 3X ""
+.na
+.hy 0
.SH NAME
\fBdoupdate\fR,
\fBredrawwin\fR,
\fBwnoutrefresh\fR,
\fBwredrawln\fR,
\fBwrefresh\fR - refresh \fBcurses\fR windows and lines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
-
+.sp
\fBint refresh(void);\fR
.br
\fBint wrefresh(WINDOW *win);\fR
Unless \fBleaveok\fR has been
enabled, the physical cursor of the terminal is left at the location of the
cursor for that window.
-
+.PP
The \fBwnoutrefresh\fR and \fBdoupdate\fR routines allow multiple updates with
more efficiency than \fBwrefresh\fR alone.
In addition to all the window
structures, \fBcurses\fR keeps two data structures representing the terminal
screen: a physical screen, describing what is actually on the screen, and a
virtual screen, describing what the programmer wants to have on the screen.
-
+.PP
The routine \fBwrefresh\fR works by first calling \fBwnoutrefresh\fR, which
copies the named window to the virtual screen, and then calling \fBdoupdate\fR,
which compares the virtual screen to the physical screen and does the actual
If the \fIwin\fR argument to
\fBwrefresh\fR is the global variable \fBcurscr\fR, the screen is immediately
cleared and repainted from scratch.
-
+.PP
The phrase "copies the named window to the virtual screen" above is ambiguous.
What actually happens is that all \fItouched\fR (changed) lines in the window
are copied to the virtual screen.
changed.
(But see the section on \fBPORTABILITY\fR below for a warning about
exploiting this behavior.)
-
+.PP
The \fBwredrawln\fR routine indicates to \fBcurses\fR that some screen lines
are corrupted and should be thrown away before anything is written over them.
It touches the indicated lines (marking them changed).
Routines that return an integer return \fBERR\fR upon failure, and \fBOK\fR
(SVr4 only specifies "an integer value other than \fBERR\fR") upon successful
completion.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBwnoutrefresh\fP
+returns an error
+if the window pointer is null, or
+if the window is really a pad.
+.TP 5
+\fBwredrawln\fP
+returns an error
+if the associated call to \fBtouchln\fP returns an error.
+.RE
.SH NOTES
Note that \fBrefresh\fR and \fBredrawwin\fR may be macros.
.SH PORTABILITY
The XSI Curses standard, Issue 4 describes these functions.
-
+.PP
Whether \fBwnoutrefresh()\fR copies to the virtual screen the entire contents
of a window or just its changed portions has never been well-documented in
historic curses versions (including SVr4).
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scr_dump.3x,v 1.3 2003/10/25 20:34:06 tom Exp $
+.\" $Id: curs_scr_dump.3x,v 1.5 2005/05/15 16:18:55 tom Exp $
.TH curs_scr_dump 3X ""
+.na
+.hy 0
.SH NAME
\fBscr_dump\fR,
\fBscr_restore\fR,
\fBscr_init\fR,
\fBscr_set\fR - read (write) a \fBcurses\fR screen from (to) a file
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.SH RETURN VALUE
All routines return the integer \fBERR\fR upon failure and \fBOK\fR
upon success.
+.PP
+X/Open defines no error conditions.
+In this implementation,
+each will return an error if the file cannot be opened.
.SH NOTES
Note that \fBscr_init\fR, \fBscr_set\fR, and \fBscr_restore\fR may be macros.
.SH PORTABILITY
qualifiers).
The SVr4 docs merely say under \fBscr_init\fR that the dump data is also
-considered invalid "if the time-stamp of the tty is old" but don't define
+considered invalid "if the time-stamp of the tty is old" but do not define
"old".
.SH SEE ALSO
\fBcurses\fR(3X), \fBcurs_initscr\fR(3X), \fBcurs_refresh\fR(3X),
.\"***************************************************************************
-.\" Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_scroll.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_scroll.3x,v 1.12 2005/05/15 16:19:01 tom Exp $
.TH curs_scroll 3X ""
+.na
+.hy 0
.SH NAME
-\fBscroll\fR, \fBscrl\fR, \fBwscrl\fR - scroll a \fBcurses\fR window
+\fBscroll\fR,
+\fBscrl\fR,
+\fBwscrl\fR - scroll a \fBcurses\fR window
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.SH RETURN VALUE
These routines return \fBERR\fR upon failure, and \fBOK\fR (SVr4 only specifies
"an integer value other than \fBERR\fR") upon successful completion.
+.PP
+X/Open defines no error conditions.
+.PP
+This implementation returns an error
+if the window pointer is null, or
+if scrolling is not enabled in the window, e.g., with \fBscrollok\fP.
.SH NOTES
Note that \fBscrl\fR and \fBscroll\fR may be macros.
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_slk.3x,v 1.12 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_slk.3x,v 1.14 2005/05/15 16:19:06 tom Exp $
.TH curs_slk 3X ""
+.na
+.hy 0
.SH NAME
-\fBslk_init\fR, \fBslk_set\fR, \fBslk_refresh\fR,
-\fBslk_noutrefresh\fR, \fBslk_label\fR,
-\fBslk_clear\fR, \fBslk_restore\fR, \fBslk_touch\fR,
-\fBslk_attron\fR, \fBslk_attrset\fR, \fBslk_attroff\fR,
-\fBslk_attr_on\fR, \fBslk_attr_set\fR, \fBslk_attr_off\fR,
-\fBslk_attr\fR, \fBslk_color\fR - \fBcurses\fR soft label routines
+\fBslk_init\fR,
+\fBslk_set\fR,
+\fBslk_refresh\fR,
+\fBslk_noutrefresh\fR,
+\fBslk_label\fR,
+\fBslk_clear\fR,
+\fBslk_restore\fR,
+\fBslk_touch\fR,
+\fBslk_attron\fR,
+\fBslk_attrset\fR,
+\fBslk_attroff\fR,
+\fBslk_attr_on\fR,
+\fBslk_attr_set\fR,
+\fBslk_attr_off\fR,
+\fBslk_attr\fR,
+\fBslk_color\fR - \fBcurses\fR soft label routines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.SH RETURN VALUE
These routines return \fBERR\fR upon failure and OK (SVr4 specifies only "an
-integer value other than \fBERR\fR") upon successful completion. \fBslk_attr\fR
+integer value other than \fBERR\fR") upon successful completion.
+.PP
+X/Open defines no error conditions.
+In this implementation
+.RS
+.TP 5
+\fBslk_attr\fR
returns the attribute used for the soft keys.
-
-\fBslk_label\fR returns \fBNULL\fR on error.
+.TP 5
+.na
+.hy 0
+\fBslk_attroff\fP, \fBslk_attron\fP, \fBslk_clear\fP, \fBslk_noutrefresh\fP, \fBslk_refresh\fP, \fBslk_touch\fP
+.ad
+.hy
+return an error
+if the terminal or the softkeys were not initialized.
+.TP 5
+\fBslk_attrset\fP
+returns an error
+if the terminal or the softkeys were not initialized.
+.TP 5
+\fBslk_attr_set\fP
+returns an error
+if the terminal or the softkeys were not initialized, or
+the color pair is outside the range 0..COLOR_PAIRS-1,
+or opts is not null.
+.TP 5
+\fBslk_color\fP
+returns an error
+if the terminal or the softkeys were not initialized, or
+the color pair is outside the range 0..COLOR_PAIRS-1.
+.TP 5
+\fBslk_init\fR
+returns an error
+if the format parameter is outside the range 0..3.
+.TP 5
+\fBslk_label\fR
+returns \fBNULL\fR on error.
+.TP 5
+\fBslk_set\fP
+returns an error
+if the terminal or the softkeys were not initialized, or
+the \fIlabnum\fP parameter is outside the range of label counts, or
+if the format parameter is outside the range 0..2, or if
+memory for the labels cannot be allocated.
+.RE
.SH NOTES
Most applications would use \fBslk_noutrefresh\fR because a
\fBwrefresh\fR is likely to follow soon.
.\"***************************************************************************
-.\" Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1999-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_terminfo.3x,v 1.18 2003/12/27 18:48:59 tom Exp $
+.\" $Id: curs_terminfo.3x,v 1.20 2005/05/15 16:19:13 tom Exp $
.TH curs_terminfo 3X ""
.ds n 5
+.na
+.hy 0
.SH NAME
\fBdel_curterm\fR,
\fBmvcur\fR,
\fBvid_puts\fR,
\fBvidattr\fR,
\fBvidputs\fR - \fBcurses\fR interfaces to terminfo database
+.ad
+.hy
.SH SYNOPSIS
.nf
\fB#include <curses.h>\fR
completion, unless otherwise noted in the preceding routine descriptions.
.PP
Routines that return pointers always return \fBNULL\fR on error.
+.PP
+X/Open defines no error conditions.
+In this implementation
+.RS
+.TP 5
+\fBdel_curterm\fP
+returns an error
+if its terminal parameter is null.
+.TP 5
+\fBrestartterm\fP
+returns an error
+if the associated call to \fBsetupterm\fP returns an error.
+.TP 5
+\fBsetupterm\fP
+returns an error
+if it cannot allocate enough memory, or
+create the initial windows (stdscr, curscr, newscr).
+Other error conditions are documented above.
+.RE
.SH NOTES
The \fBsetupterm\fR routine should be used in place of \fBsetterm\fR.
It may be useful when you want to test for terminal capabilities without
.\"***************************************************************************
-.\" Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_touch.3x,v 1.8 2000/07/08 11:07:57 tom Exp $
+.\" $Id: curs_touch.3x,v 1.10 2005/05/15 16:19:19 tom Exp $
.TH curs_touch 3X ""
+.na
+.hy 0
.SH NAME
\fBtouchwin\fR,
\fBtouchline\fR,
\fBwtouchln\fR,
\fBis_linetouched\fR,
\fBis_wintouched\fR - \fBcurses\fR refresh control routines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.br
All routines return the integer \fBERR\fR upon failure and an integer value
other than \fBERR\fR upon successful completion, unless otherwise noted in the
preceding routine descriptions.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBis_linetouched\fP
+returns an error
+if the window pointer is null, or
+if the line number is outside the window.
+Note that ERR is distinct from TRUE and FALSE, which are the normal return values of this function.
+.TP 5
+\fBwtouchln\fP
+returns an error
+if the window pointer is null, or
+if the line number is outside the window.
+.RE
.SH PORTABILITY
The XSI Curses standard, Issue 4 describes these functions.
.\"***************************************************************************
-.\" Copyright (c) 2000,2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 2000-2002,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_trace.3x,v 1.5 2002/02/16 22:39:52 tom Exp $
+.\" $Id: curs_trace.3x,v 1.7 2005/05/15 17:02:54 tom Exp $
.TH curs_trace 3X ""
+.na
+.hy 0
.SH NAME
\fB_tracef\fR,
\fB_tracedump\fR,
\fB_tracechtype2\fR,
\fB_tracemouse\fR,
\fBtrace\fR - \fBcurses\fR debugging routines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
-.br
+.sp
\fBvoid _tracef(const char *format, ...);\fR
.br
\fBvoid _tracedump(const char *label, WINDOW *win);\fR
These functions are normally available only with the debugging library
\fIlibncurses_g.a\fR, but may be compiled into any model (shared, static,
profile) by defining the symbol \fBTRACE\fR.
-
+.PP
The principal parts of this interface are the \fBtrace\fR routine which
selectively enables different tracing features, and the \fB_tracef\fR
routine which writes formatted data to the \fItrace\fR file.
-
+.PP
Calling \fBtrace\fR with a nonzero parameter opens the file \fBtrace\fR
in the current directory for output. The parameter is formed by OR'ing
values from the list of \fBTRACE_\fP\fIxxx\fR definitions in \fB<curses.h>\fR.
.TP 5
TRACE_MAXIMUM
maximum trace level, enables all of the separate trace features.
-
+.PP
Some tracing features are enabled whenever the \fBtrace\fR parameter
is nonzero. Some features overlap.
The specific names are used as a guideline.
.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_util.3x,v 1.12 2004/01/31 17:24:53 tom Exp $
+.\" $Id: curs_util.3x,v 1.17 2005/06/25 21:51:37 tom Exp $
.TH curs_util 3X ""
+.na
+.hy 0
.SH NAME
\fBdelay_output\fR,
\fBfilter\fR,
\fBunctrl\fR,
\fBuse_env\fR,
\fBwunctrl\fR - miscellaneous \fBcurses\fR utility routines
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
.sp
\fBcurses\fR is running in a window (in which case default behavior
would be to use the window size if \fBLINES\fR and \fBCOLUMNS\fR are
not set).
+Note that setting \fBLINES\fR or \fBCOLUMNS\fR overrides the
+corresponding size which may be obtained from the operating system.
.PP
The \fBputwin\fR routine writes all data associated with window \fIwin\fR into
the file to which \fIfilep\fR points. This information can be later retrieved
upon failure and \fBOK\fR (SVr4 specifies only "an integer value other than
\fBERR\fR") upon successful completion.
.PP
-\fBflushinp\fR always returns \fBOK\fR.
-.PP
Routines that return pointers return \fBNULL\fR on error.
+.PP
+X/Open does not define any error conditions.
+In this implementation
+.RS
+.TP 5
+\fBflushinp\fR
+returns an error if the terminal was not initialized.
+.TP 5
+\fBputwin\fP
+returns an error if the associated \fBfwrite\fP calls return an error.
+.RE
.SH PORTABILITY
The XSI Curses standard, Issue 4 describes these functions.
It states that \fBunctrl\fR and \fBwunctrl\fR will return a null pointer if
and may strip the parameter to 7 bits.
This implementation uses 8 bits but does not modify the string to reflect
locale.
+.PP
+The \fBkeyname\fP function may return the names of user-defined
+string capabilities which are defined in the terminfo entry via the \fB-x\fP
+option of \fBtic\fP.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBcurs_initscr\fR(3X),
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: curs_window.3x,v 1.10 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: curs_window.3x,v 1.13 2005/05/15 16:32:02 tom Exp $
.TH curs_window 3X ""
+.na
+.hy 0
.SH NAME
\fBnewwin\fR,
\fBdelwin\fR,
\fBsyncok\fR,
\fBwcursyncup\fR,
\fBwsyncdown\fR - create \fBcurses\fR windows
+.ad
+.hy
.SH SYNOPSIS
\fB#include <curses.h>\fR
Routines that return an integer return the integer \fBERR\fR upon failure and
\fBOK\fR (SVr4 only specifies "an integer value other than \fBERR\fR") upon
successful completion.
-
-\fBdelwin\fR returns the integer \fBERR\fR upon failure and \fBOK\fR
-upon successful completion.
-
+.PP
Routines that return pointers return \fBNULL\fR on error.
+.PP
+X/Open defines no error conditions.
+In this implementation
+.RS
+.TP 5
+\fBdelwin\fR
+returns an error if the window pointer is null, or
+if the window is the parent of another window.
+.IP
+This implementation also maintains a list of windows,
+and checks that the pointer passed to \fBdelwin\fP is one that
+it created, returning an error if it was not..
+.TP 5
+\fBmvderwin\fP
+returns an error
+if the window pointer is null, or
+if some part of the window would be placed off-screen.
+.TP 5
+\fBmvwin\fP
+returns an error
+if the window pointer is null, or
+if the window is really a pad, or
+if some part of the window would be placed off-screen.
+.TP 5
+\fBsyncok\fP
+returns an error
+if the window pointer is null.
+.RE
.SH NOTES
If many small changes are made to the window, the \fBwsyncup\fR option could
degrade performance.
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" Author: Thomas E. Dickey 1997,1999,2000
+.\" Author: Thomas E. Dickey 1997,1999,2000,2005
.\"
-.\" $Id: default_colors.3x,v 1.17 2003/10/25 20:41:08 tom Exp $
+.\" $Id: default_colors.3x,v 1.18 2005/02/19 20:25:44 tom Exp $
.TH default_colors 3X ""
.SH NAME
\fBuse_default_colors\fR,
Associated with this extension, the \fBinit_pair\fR(3X) function accepts
negative arguments to specify default foreground or background
colors.
+.PP
+The \fIuse_default_colors()\fP function was added to support \fIded\fP.
+This is a full-screen application which uses curses to manage only part
+of the screen. The bottom portion of the screen, which is of adjustable
+size, is left uncolored to display the results from shell commands.
+The top portion of the screen colors filenames using a scheme like the
+"color ls" programs.
+Attempting to manage the background color of the screen for this application
+would give unsatisfactory results for a variety of reasons.
+This extension was devised after
+noting that color xterm (and similar programs) provides a background color
+which does not necessarily correspond to any of the ANSI colors.
+While a special terminfo entry could be constructed using nine colors,
+there was no mechanism provided within curses to account for the related
+\fIorig_pair\fP and \fIback_color_erase\fP capabilities.
+.PP
+The \fIassume_default_colors()\fP function was added to solve
+a different problem: support for applications which would use
+environment variables and other configuration to bypass curses'
+notion of the terminal's default colors, setting specific values.
.SH PORTABILITY
These routines are specific to ncurses. They were not supported on
Version 7, BSD or System V implementations. It is recommended that
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2004 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 *
.\"
.\" Author: Thomas E. Dickey 1997
.\"
-.\" $Id: define_key.3x,v 1.10 2003/10/25 20:33:16 tom Exp $
+.\" $Id: define_key.3x,v 1.11 2004/06/05 19:20:03 tom Exp $
.TH define_key 3X ""
.SH NAME
\fBdefine_key\fP \- define a keycode
Version 7, BSD or System V implementations. It is recommended that
any code depending on them be conditioned using NCURSES_VERSION.
.SH SEE ALSO
-\fBkeyok\fR(3X).
+\fBkeyok\fR(3X),
+\fBkey_defined\fR(3X).
.SH AUTHOR
Thomas Dickey.
.\"#
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_buffer.3x,v 1.10 2003/05/10 20:22:01 tom Exp $
+.\" $Id: form_field_buffer.3x,v 1.12 2005/05/15 15:59:55 tom Exp $
.TH form_field_buffer 3X ""
.SH NAME
\fBform_field_buffer\fR - field buffer control
the buffer may also contain them. If you want the raw data, you must write your
own routine that copies the value out of the buffer and removes the leading
and trailing spaces. Please note also, that subsequent operations on the form
-will probably change the content of the buffer. So don't use it for long term
+will probably change the content of the buffer. So do not use it for long term
storage of the entered form data.
The function \fBset_field_status\fR sets the associated status flag of
descriptions of the entry points.
.SH NOTES
The header file \fB<form.h>\fR automatically includes the header file
+
+When configured for wide-characters, \fBfield_buffer\fP returns a pointer
+to temporary storage (allocated and freed by the library).
+The application should not attempt to modify the data.
+It will be freed on the next call to \fBfield_buffer\fP to return the
+same buffer.
\fB<curses.h>\fR.
.SH PORTABILITY
These routines emulate the System V forms library. They were not supported on
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_info.3x,v 1.8 2002/01/19 22:48:32 tom Exp $
+.\" $Id: form_field_info.3x,v 1.9 2005/10/08 22:15:07 tom Exp $
.TH form_field_info 3X ""
.SH NAME
\fBform_field_info\fR - retrieve field characteristics
to the field at its creation time. The attributes are: height, width, row of
upper-left corner, column of upper-left corner, number off-screen rows, and
number of working buffers.
-
+.PP
The function \fBdynamic_field_info\fR returns the actual size of the field, and
its maximum possible size. If the field has no size limit, the location
-addressed by the third argument will be set to 0. (A field can be made dynamic
-by turning off the \fBO_STATIC\fR).
+addressed by the third argument will be set to 0.
+A field can be made dynamic
+by turning off the \fBO_STATIC\fR option with \fBfield_opts_off\fR.
.SH RETURN VALUE
These routines return one of the following:
.TP 5
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: form_field_opts.3x,v 1.8 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: form_field_opts.3x,v 1.10 2005/10/08 22:16:18 tom Exp $
.TH form_field_opts 3X ""
.SH NAME
\fBform_field_opts\fR - set and get field options
The field can be edited.
.TP 5
O_WRAP
-Words that don't fit on a line are wrapped to the next line. Words are
+Words that do not fit on a line are wrapped to the next line. Words are
blank-separated.
.TP 5
O_BLANK
.TP 5
O_STATIC
Field buffers are fixed to field's original size.
+Turn this option off to create a dynamic field.
.TP 5
O_PASSOK
Validate field only if modified by user.
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: infocmp.1m,v 1.34 2003/10/25 16:19:01 tom Exp $
+.\" $Id: infocmp.1m,v 1.39 2004/08/28 22:43:49 tom Exp $
.TH infocmp 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBinfocmp\fR - compare or print out \fIterminfo\fR descriptions
.SH SYNOPSIS
-\fBinfocmp\fR [\fB\-\
+\fBinfocmp\fR [\fB-\
1\
C\
E\
r\
t\
u\
+x\
\fR]
.br
- [\fB\-v\fR \fIn\fR] [\fB\-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB\-R \fR\fBsubset\fR]
+ [\fB-v\fR \fIn\fR] [\fB-s d\fR| \fBi\fR| \fBl\fR| \fBc\fR] [\fB-R \fR\fBsubset\fR]
.br
- [\fB\-w\fR\ \fIwidth\fR] [\fB\-A\fR\ \fIdirectory\fR] [\fB\-B\fR\ \fIdirectory\fR]
+ [\fB-w\fR\ \fIwidth\fR] [\fB-A\fR\ \fIdirectory\fR] [\fB-B\fR\ \fIdirectory\fR]
.br
[\fItermname\fR...]
.SH DESCRIPTION
string fields.
.SS Default Options
If no options are specified and zero or one \fItermnames\fR are specified, the
-\fB\-I\fR option will be assumed. If more than one \fItermname\fR is specified,
-the \fB\-d\fR option will be assumed.
-.SS Comparison Options [\-d] [\-c] [\-n]
+\fB-I\fR option will be assumed. If more than one \fItermname\fR is specified,
+the \fB-d\fR option will be assumed.
+.SS Comparison Options [-d] [-c] [-n]
\fBinfocmp\fR compares the \fBterminfo\fR description of the first terminal
\fItermname\fR with each of the descriptions given by the entries for the other
terminal's \fItermnames\fR. If a capability is defined for only one of the
\fBF\fR for boolean variables, \fB-1\fR for integer variables, and \fBNULL\fR
for string variables.
-The \fB\-d\fR option produces a list of each capability that is different
+The \fB-d\fR option produces a list of each capability that is different
between two entries. This option is useful to show the difference between two
entries, created by different people, for the same or similar terminals.
-The \fB\-c\fR option produces a list of each capability that is common between
+The \fB-c\fR option produces a list of each capability that is common between
two entries. Capabilities that are not set are ignored. This option can be
-used as a quick check to see if the \fB\-u\fR option is worth using.
+used as a quick check to see if the \fB-u\fR option is worth using.
-The \fB\-n\fR option produces a list of each capability that is in neither
+The \fB-n\fR option produces a list of each capability that is in neither
entry. If no \fItermnames\fR are given, the environment variable \fBTERM\fR
will be used for both of the \fItermnames\fR. This can be used as a quick
check to see if anything was left out of a description.
-.SS Source Listing Options [\-I] [\-L] [\-C] [\-r]
-The \fB\-I\fR, \fB\-L\fR, and \fB\-C\fR options will produce a source listing for
+.SS Source Listing Options [-I] [-L] [-C] [-r]
+The \fB-I\fR, \fB-L\fR, and \fB-C\fR options will produce a source listing for
each terminal named.
.TS
center tab(/) ;
l l .
-\fB\-I\fR/use the \fBterminfo\fR names
-\fB\-L\fR/use the long C variable name listed in <\fBterm.h\fR>
-\fB\-C\fR/use the \fBtermcap\fR names
-\fB\-r\fR/when using \fB\-C\fR, put out all capabilities in \fBtermcap\fR form
+\fB-I\fR/use the \fBterminfo\fR names
+\fB-L\fR/use the long C variable name listed in <\fBterm.h\fR>
+\fB-C\fR/use the \fBtermcap\fR names
+\fB-r\fR/when using \fB-C\fR, put out all capabilities in \fBtermcap\fR form
.TE
If no \fItermnames\fR are given, the environment variable \fBTERM\fR will be
used for the terminal name.
-The source produced by the \fB\-C\fR option may be used directly as a
+The source produced by the \fB-C\fR option may be used directly as a
\fBtermcap\fR entry, but not all parameterized strings can be changed to
the \fBtermcap\fR format. \fBinfocmp\fR will attempt to convert most of the
parameterized information, and anything not converted will be plainly marked in
All \fBtermcap\fR variables no longer supported by \fBterminfo\fR, but which
are derivable from other \fBterminfo\fR variables, will be output. Not all
\fBterminfo\fR capabilities will be translated; only those variables which were
-part of \fBtermcap\fR will normally be output. Specifying the \fB\-r\fR option
+part of \fBtermcap\fR will normally be output. Specifying the \fB-r\fR option
will take off this restriction, allowing all capabilities to be output in
\fItermcap\fR form.
\fB%p1%?%'x'%>%t%p1%'y'%+%;/%>xy\fR/concept
\fB%p2\fR is printed before \fB%p1/%r\fR/hp
.TE
-.SS Use= Option [\-u]
-The \fB\-u\fR option produces a \fBterminfo\fR source description of the first
+.SS Use= Option [-u]
+The \fB-u\fR option produces a \fBterminfo\fR source description of the first
terminal \fItermname\fR which is relative to the sum of the descriptions given
by the entries for the other terminals \fItermnames\fR. It does this by
analyzing the differences between the first \fItermname\fR and the other
the compilation time, is specifying extra \fBuse=\fR fields that are
superfluous. \fBinfocmp\fR will flag any other \fItermname use=\fR fields that
were not needed.
-.SS Changing Databases [\-A \fIdirectory\fR] [\-B \fIdirectory\fR]
+.SS Changing Databases [-A \fIdirectory\fR] [-B \fIdirectory\fR]
The location of the compiled \fBterminfo\fR database is taken from the
environment variable \fBTERMINFO\fR . If the variable is not defined, or the
terminal is not found in that location, the system \fBterminfo\fR database,
-in \fB@TERMINFO@\fR, will be used. The options \fB\-A\fR
-and \fB\-B\fR may be used to override this location. The \fB\-A\fR option will
-set \fBTERMINFO\fR for the first \fItermname\fR and the \fB\-B\fR option will
+in \fB@TERMINFO@\fR, will be used. The options \fB-A\fR
+and \fB-B\fR may be used to override this location. The \fB-A\fR option will
+set \fBTERMINFO\fR for the first \fItermname\fR and the \fB-B\fR option will
set \fBTERMINFO\fR for the other \fItermnames\fR. With this, it is possible to
compare descriptions for a terminal with the same name located in two different
databases. This is useful for comparing descriptions for the same terminal
created by different people.
.SS Other Options
.TP 5
-\fB\-1\fR
+\fB-1\fR
causes the fields to be printed out one to a line. Otherwise,
the fields will be printed several to a line to a maximum width
of 60 characters.
.TP
-\fB\-a\fR
+\fB-a\fR
tells \fBinfocmp\fP to retain commented-out capabilities rather than discarding
them. Capabilities are commented by prefixing them with a period.
.TP 5
-\fB\-E\fR
+\fB-E\fR
Dump the capabilities of the given terminal as tables, needed in
the C initializer for a
TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
The tables are all declared static, and are named according to the type
and the name of the corresponding terminal entry.
.sp
-Before ncurses 5.0, the split between the \fB\-e\fP and \fB\-E\fP
+Before ncurses 5.0, the split between the \fB-e\fP and \fB-E\fP
options was not needed; but support for extended names required making
the arrays of terminal capabilities separate from the TERMTYPE structure.
.TP 5
-\fB\-e\fR
+\fB-e\fR
Dump the capabilities of the given terminal as a C initializer for a
TERMTYPE structure (the terminal capability structure in the \fB<term.h>\fR).
This option is useful for preparing versions of the curses library hardwired
for a given terminal type.
.TP 5
-\fB\-F\fR
+\fB-F\fR
compare terminfo files. This assumes that two following arguments are
filenames. The files are searched for pairwise matches between
entries, with two entries considered to match if any of their names do.
with exactly one match it includes a difference report. Normally,
to reduce the volume of the report, use references are
not resolved before looking for differences, but resolution can be forced
-by also specifying \fB\-r\fR.
+by also specifying \fB-r\fR.
.TP 5
-\fB\-f\fR
+\fB-f\fR
Display complex terminfo strings which contain if/then/else/endif expressions
indented for readability.
.TP 5
-\fB\-G\fR
+\fB-G\fR
Display constant literals in decimal form
rather than their character equivalents.
.TP 5
-\fB\-g\fR
+\fB-g\fR
Display constant character literals in quoted form
rather than their decimal equivalents.
.TP 5
-\fB\-i\fR
+\fB-i\fR
Analyze the initialization (\fBis1\fR, \fBis2\fR, \fBis3\fR), and reset
(\fBrs1\fR, \fBrs2\fR, \fBrs3\fR), strings in the entry. For each string, the
code tries to analyze it into actions in terms of the other capabilities in the
LL/home-down
RSR/reset scroll region
+DECSTR/soft reset (VT320)
+S7C1T/7-bit controls (VT220)
+
ISO DEC G0/enable DEC graphics for G0
ISO UK G0/enable UK chars for G0
ISO US G0/enable US chars for G0
DECPNM/normal keypad mode
DECANSI/enter ANSI mode
+ECMA[+-]AM/keyboard action mode
+ECMA[+-]IRM/insert replace mode
+ECMA[+-]SRM/send receive mode
+ECMA[+-]LNM/linefeed mode
+
DEC[+-]CKM/application cursor keys
DEC[+-]ANM/set VT52 mode
DEC[+-]COLM/132-column mode
An SGR0 designates an empty highlight sequence (equivalent to {SGR:NORMAL}).
.TP 5
-\fB\-l\fR
+\fB-l\fR
Set output format to terminfo.
.TP 5
-\fB\-p\fR
+\fB-p\fR
Ignore padding specifications when comparing strings.
.TP 5
-\fB\-q\fR
+\fB-q\fR
Make the comparison listing shorter by omitting subheadings, and using
"-" for absent capabilities, "@" for canceled rather than "NULL".
.TP 5
-\fB\-R\fR\fIsubset\fR
+\fB-R\fR\fIsubset\fR
Restrict output to a given subset. This option is for use with archaic
versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
the full set of SVR4/XSI Curses terminfo; and variants such as AIX
details. You can also choose the subset "BSD" which selects only capabilities
with termcap equivalents recognized by 4.4BSD.
.TP
-\fB\-s \fR\fI[d|i|l|c]\fR
-The \fB\-s\fR option sorts the fields within each type according to the argument
+\fB-s \fR\fI[d|i|l|c]\fR
+The \fB-s\fR option sorts the fields within each type according to the argument
below:
.br
.RS 5
sort by the \fItermcap\fR name.
.RE
.IP
-If the \fB\-s\fR option is not given, the fields printed out will be
+If the \fB-s\fR option is not given, the fields printed out will be
sorted alphabetically by the \fBterminfo\fR name within each type,
-except in the case of the \fB\-C\fR or the \fB\-L\fR options, which cause the
+except in the case of the \fB-C\fR or the \fB-L\fR options, which cause the
sorting to be done by the \fBtermcap\fR name or the long C variable
name, respectively.
.TP 5
-\fB\-T\fR
+\fB-T\fR
eliminates size-restrictions on the generated text.
This is mainly useful for testing and analysis, since the compiled
descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
.TP
-\fB\-t\fR
+\fB-t\fR
tells \fBtic\fP to discard commented-out capabilities.
Normally when translating from terminfo to termcap,
untranslatable capabilities are commented-out.
.TP 5
-\fB\-V\fR
+\fB-V\fR
reports the version of ncurses which was used in this program, and exits.
.TP 5
-\fB\-v\fR \fIn\fR
+\fB-v\fR \fIn\fR
prints out tracing information on standard error as the program runs.
Higher values of n induce greater verbosity.
.TP 5
-\fB\-w\fR \fIwidth\fR
+\fB-w\fR \fIwidth\fR
changes the output to \fIwidth\fR characters.
+.TP
+\fB-x\fR
+print information for user-defined capabilities.
+These are extensions to the terminfo repertoire which can be loaded
+using the \fB-x\fR option of \fBtic\fP.
.SH FILES
.TP 20
\*d
Compiled terminal description database.
.SH EXTENSIONS
The
-\fB\-E\fR,
-\fB\-F\fR,
-\fB\-G\fR,
-\fB\-R\fR,
-\fB\-T\fR,
-\fB\-V\fR,
-\fB\-a\fR,
-\fB\-e\fR,
-\fB\-f\fR,
-\fB\-g\fR,
-\fB\-i\fR,
-\fB\-l\fR,
-\fB\-p\fR,
-\fB\-q\fR and
-\fB\-t\fR
+\fB-E\fR,
+\fB-F\fR,
+\fB-G\fR,
+\fB-R\fR,
+\fB-T\fR,
+\fB-V\fR,
+\fB-a\fR,
+\fB-e\fR,
+\fB-f\fR,
+\fB-g\fR,
+\fB-i\fR,
+\fB-l\fR,
+\fB-p\fR,
+\fB-q\fR and
+\fB-t\fR
options are not supported in SVr4 curses.
-The \fB\-r\fR option's notion of `termcap' capabilities is System V Release 4's.
+The \fB-r\fR option's notion of `termcap' capabilities is System V Release 4's.
Actual BSD curses versions will have a more restricted set. To see only the
-4.4BSD set, use \fB\-r\fR \fB\-RBSD\fR.
+4.4BSD set, use \fB-r\fR \fB-RBSD\fR.
.SH BUGS
-The \fB\-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
+The \fB-F\fR option of \fBinfocmp\fR(1M) should be a \fBtoe\fR(1M) mode.
.SH SEE ALSO
\fBinfocmp\fR(1M), \fBcaptoinfo\fR(1M), \fBinfotocap\fR(1M),
\fBtic\fR(1M), \fBtoe\fR(1M),
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1999-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1999-2003,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: infotocap.1m,v 1.4 2003/05/11 00:32:53 tom Exp $
+.\" $Id: infotocap.1m,v 1.5 2004/07/05 13:16:08 tom Exp $
.TH infotocap 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBinfotocap\fR - convert a \fIterminfo\fR description into a \fItermcap\fR description
.SH SYNOPSIS
-\fBinfotocap\fR [\fB\-v\fR\fIn\fR \fIwidth\fR] [\fB\-V\fR] [\fB\-1\fR] [\fB\-w\fR \fIwidth\fR] \fIfile\fR . . .
+\fBinfotocap\fR [\fB-v\fR\fIn\fR \fIwidth\fR] [\fB-V\fR] [\fB-1\fR] [\fB-w\fR \fIwidth\fR] \fIfile\fR . . .
.SH DESCRIPTION
\fBinfotocap\fR looks in \fIfile\fR for \fBterminfo\fR descriptions. For each
one found, an equivalent \fBtermcap\fR description is written to standard
output. Terminfo \fBuse\fR capabilities are translated directly to termcap
\fBtc\fR capabilities.
.TP 5
-\fB\-v\fR
+\fB-v\fR
print out tracing information on standard error as the program runs.
.TP 5
-\fB\-V\fR
+\fB-V\fR
print out the version of the program in use on standard error and exit.
.TP 5
-\fB\-1\fR
+\fB-1\fR
cause the fields to print out one to a line. Otherwise, the fields
will be printed several to a line to a maximum width of 60
characters.
.TP 5
-\fB\-w\fR
+\fB-w\fR
change the output to \fIwidth\fR characters.
.SH FILES
.TP 20
\*d
Compiled terminal description database.
.SH NOTES
-This utility is actually a link to \fItic\fR(1M), running in \fI\-C\fR mode.
-You can use other \fItic\fR options such as \fB\-f\fR and \fB\-x\fR.
+This utility is actually a link to \fItic\fR(1M), running in \fI-C\fR mode.
+You can use other \fItic\fR options such as \fB-f\fR and \fB-x\fR.
.SH SEE ALSO
\fBcurses\fR(3X),
\fBtic\fR(1M),
.\"***************************************************************************
-.\" Copyright (c) 2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 2003,2004 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 *
.\"
.\" Author: Thomas E. Dickey 2003
.\"
-.\" $Id: key_defined.3x,v 1.2 2003/05/17 23:24:45 tom Exp $
+.\" $Id: key_defined.3x,v 1.3 2004/06/05 19:19:09 tom Exp $
.TH key_defined 3X ""
.SH NAME
-\fBdefine_key\fP \- define a keycode
+\fBkey_defined\fP \- check if a keycode is defined
.SH SYNOPSIS
\fB#include <curses.h>\fP
#!/bin/sh
-# $Id: make_sed.sh,v 1.7 2003/10/25 20:33:16 tom Exp $
+# $Id: make_sed.sh,v 1.9 2005/07/16 18:15:31 tom Exp $
##############################################################################
-# Copyright (c) 1998,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2005 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"), #
# authorization. #
##############################################################################
#
-# Author: Thomas E. Dickey 1997
+# Author: Thomas E. Dickey 1997-2005
#
# Construct a sed-script to perform renaming within man-pages. Originally
# written in much simpler form, this one accounts for the common cases of
sed -e 's/^/s\/\\</' \
-e 's/$/\//' >$UPPER
-# Do the TH lines
+echo "# Do the TH lines" >>$RESULT
sed -e 's/\//\/TH /' \
-e 's/ / /' \
-e 's/ / ""\/TH /' \
-e 's/\/$/ ""\//' \
$UPPER >>$RESULT
-# Do the embedded references
+echo "# Do the embedded references" >>$RESULT
sed -e 's/</<fB/' \
-e 's/ /\\\\fR(/' \
-e 's/ /)\/fB/' \
-e 's/\/$/)\//' \
$UPPER >>$RESULT
+echo "# Do the \fBxxx\fR references in the .NAME section" >>$RESULT
+sed -e 's/\\</^\\\\fB/' \
+ -e 's/ [^ ]* /\\\\f[RP] -\/\\\\fB/' \
+ -e 's/ .*$/\\\\fR -\//' \
+ $UPPER >>$RESULT
+
# Finally, send the result to standard output
cat $RESULT
-# $Id: man_db.renames,v 0.32 2003/05/31 17:27:11 tom Exp $
+# $Id: man_db.renames,v 0.34 2005/06/25 18:30:53 Daniel.Jacobowitz Exp $
# Manual-page renamings for the man_db program
#
# Files:
curs_attr_get.3x attr_get.3ncurses
dup_field.3x dup_field.3ncurses
init_pair.3x init_pair.3ncurses
+#
+# Other:
+tack.1m tack.1
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998,2001 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2001,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: menu_spacing.3x,v 1.6 2001/08/04 20:36:16 William.Setzer Exp $
+.\" $Id: menu_spacing.3x,v 1.8 2004/12/11 23:39:07 tom Exp $
.TH menu_spacing 3X ""
.SH NAME
\fBmenu_spacing\fR - Control spacing between menu items.
middle of this spacing area the pad character. The remaining parts are filled with
spaces.
\fBspc_rows\fR controls the number of rows that are used for an item. It must not be
-larger than 3. The menu system inserts then blank lines between item rows, these lines
+larger than 3. The menu system inserts the blank lines between item rows, these lines
will contain the pad character in the appropriate positions.
\fBspc_columns\fR controls the number of blanks between columns of items. It must not
be larger than TABSIZE.
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: ncurses.3x,v 1.70 2004/01/11 01:45:54 tom Exp $
+.\" $Id: ncurses.3x,v 1.76 2005/09/03 17:42:29 tom Exp $
.hy 0
.TH ncurses 3X ""
.ds n 5
The \fBncurses\fR routines emulate the \fBcurses\fR(3X) library of System V
Release 4 UNIX, and the XPG4 curses standard (XSI curses) but the \fBncurses\fR
library is freely redistributable in source form. Differences from the SVr4
-curses are summarized under the EXTENSIONS and BUGS sections below and
-described in detail in the EXTENSIONS and BUGS sections of individual man
-pages.
+curses are summarized under the EXTENSIONS and PORTABILITY sections below and
+described in detail in the respective EXTENSIONS, PORTABILITY and BUGS sections
+of individual man pages.
.PP
A program using these routines must be linked with the \fB-lncurses\fR option,
or (if it has been generated) with the debugging library \fB-lncurses_g\fR.
Specify the width of the screen in characters.
Applications running in a windowing environment usually are able to
obtain the width of the window in which they are executing.
-If neither the $COLUMNS value nor the terminal's screen size is available,
+If neither the \fBCOLUMNS\fP value nor the terminal's screen size is available,
\fBncurses\fR uses the size which may be specified in the terminfo database
(i.e., the \fBcols\fR capability).
.IP
It is important that your application use a correct size for the screen.
-However, this is not always possible because your application may be
+This is not always possible because your application may be
running on a host which does not honor NAWS (Negotiations About Window
Size), or because you are temporarily running as another user.
+However, setting \fBCOLUMNS\fP and/or \fBLINES\fP overrides the library's
+use of the screen size obtained from the operating system.
.IP
-Either COLUMNS or LINES symbols may be specified independently.
+Either \fBCOLUMNS\fP or \fBLINES\fP symbols may be specified independently.
This is mainly useful to circumvent legacy misfeatures of terminal descriptions,
e.g., xterm which commonly specifies a 65 line screen.
For best results, \fBlines\fR and \fBcols\fR should not be specified in
a terminal description for terminals which are run as emulations.
.IP
-Use the \fBuse_env\fR function to disable this feature.
+Use the \fBuse_env\fR function to disable all use of external environment
+(including system calls) to determine the screen size.
.TP 5
ESCDELAY
Specifies the total time, in milliseconds, for which ncurses will
If your application makes heavy use of multiple-clicking, you may
wish to lengthen this default value because the timeout applies
to the composed multi-click event as well as the individual clicks.
+.IP
+In addition to the environment variable,
+this implementation provides a global variable with the same name.
+Portable applications should not rely upon the presence of ESCDELAY
+in either form,
+but setting the environment variable rather than the global variable
+does not create problems when compiling an application.
.TP 5
HOME
Tells \fBncurses\fR where your home directory is.
disables output buffering, leaving the output in the original (usually
line buffered) mode.
.TP 5
+NCURSES_NO_UTF8_ACS
+During initialization, the \fBncurses\fR library
+checks for special cases where VT100 line-drawing (and the corresponding
+alternate character set capabilities) described in the terminfo are known
+to be missing.
+Specifically, when running in a UTF-8 locale,
+the Linux console emulator and the GNU screen program ignore these.
+Ncurses checks the TERM environment variable for these.
+For other special cases, you should set this environment variable.
+Doing this tells ncurses to use Unicode values which correspond to
+the VT100 line-drawing glyphs.
+That works for the special cases cited,
+and is likely to work for terminal emulators.
+.IP
+When setting this variable, you should set it to a nonzero value.
+Setting it to zero (or to a nonnumber)
+disables the special check for Linux and screen.
+.TP 5
NCURSES_TRACE
During initialization, the \fBncurses\fR debugging library
checks the NCURSES_TRACE symbol.
\fBterminfo\fR(\*n) and related pages whose names begin "curs_" for detailed routine
descriptions.
.SH EXTENSIONS
-The \fBncurses\fR library can be compiled with an option (\fB\-DUSE_GETCAP\fR)
+The \fBncurses\fR library can be compiled with an option (\fB-DUSE_GETCAP\fR)
that falls back to the old-style /etc/termcap file if the terminal setup code
cannot find a terminfo entry corresponding to \fBTERM\fR. Use of this feature
is not recommended, as it essentially includes an entire termcap compiler in
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" Author: Thomas E. Dickey 1996,1997,2002
+.\" Author: Thomas E. Dickey 1996-2005
.\"
-.\" $Id: resizeterm.3x,v 1.10 2003/10/25 20:41:08 tom Exp $
+.\" $Id: resizeterm.3x,v 1.11 2005/06/25 22:19:42 tom Exp $
.TH resizeterm 3X ""
.SH NAME
\fBis_term_resized\fR,
\fBresizeterm\fR - change the curses terminal size
.SH SYNOPSIS
\fB#include <curses.h>\fR
-
+.sp
\fBbool is_term_resized(int lines, int columns);\fR
.br
\fBint resize_term(int lines, int columns);\fR
The function \fBresizeterm\fR resizes the standard and current windows
to the specified dimensions, and adjusts other bookkeeping data used by
the \fBncurses\fR library that record the window dimensions.
-
+.LP
Most of the work is done by the inner function \fBresize_term\fR.
The outer function \fBresizeterm\fR adds bookkeeping for the SIGWINCH handler.
When resizing the windows,
However, due to the calling convention of pads,
it is not possible to resize these
without additional interaction with the application.
-
+.LP
A support function \fBis_term_resized\fR is provided so that applications
can check if the \fBresize_term\fR function would modify the window structures.
It returns TRUE if the windows would be modified, and FALSE otherwise.
This is used to alert an application that the screen size has changed,
and that it should repaint special features such as pads that cannot
be done automatically.
+.PP
+If the environment variables \fBLINES\fP or \fBCOLUMNS\fP are set,
+this overrides the library's use of the window size obtained from
+the operating system.
+Thus, even if a SIGWINCH is received,
+no screen size change may be recorded.
+In that case, no \fBKEY_RESIZE\fP is queued for the next call to \fBgetch\fP;
+an \fBERR\fP will be returned instead.
.SH SEE ALSO
\fBwresize\fR(3X).
.SH AUTHOR
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: term.5,v 1.15 2003/05/10 20:33:49 jmc Exp $
+.\" $Id: term.5,v 1.16 2004/07/05 13:16:08 tom Exp $
.TH TERM 5
.ds n 5
.ds d @TERMINFO@
The first byte contains the least significant 8 bits of the value,
and the second byte contains the most significant 8 bits.
(Thus, the value represented is 256*second+first.)
-The value \-1 is represented by the two bytes 0377, 0377; other negative
+The value -1 is represented by the two bytes 0377, 0377; other negative
values are illegal. This value generally
means that the corresponding capability is missing from this terminal.
Note that this format corresponds to the hardware of the \s-1VAX\s+1
The numbers section is similar to the flags section.
Each capability takes up two bytes,
and is stored as a little-endian short integer.
-If the value represented is \-1, the capability is taken to be missing.
+If the value represented is -1, the capability is taken to be missing.
.PP
The strings section is also similar.
Each capability is stored as a short integer, in the format above.
-A value of \-1 means the capability is missing.
+A value of -1 means the capability is missing.
Otherwise, the value is taken as an offset from the beginning
of the string table.
Special characters in ^X or \ec notation are stored in their
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: terminfo.head,v 1.10 2002/08/17 23:37:10 tom Exp $
+.\" $Id: terminfo.head,v 1.12 2004/09/25 19:07:11 tom Exp $
.TH TERMINFO 5 "" "" "File Formats"
.ds n 5
.ds d @TERMINFO@
All names but the last should be in lower case and contain no blanks;
the last name may well contain upper case and blanks for readability.
.PP
+Lines beginning with a `#' in the first column are treated as comments.
+While comment lines are legal at any point, the output of \fIcaptoinfo\fP
+and \fIinfotocap\fP (aliases for \fItic\fP)
+will move comments so they occur only between entries.
+.PP
+Newlines and leading tabs may be used for formatting entries for readability.
+These are removed from parsed entries.
+The \fIinfocmp\ -f\fP option relies on this to format if-then-else expressions:
+the result can be read by \fItic\fP.
+.PP
Terminal names (except for the last, verbose entry) should
be chosen using the following conventions.
The particular piece of hardware making up the terminal should
-.\" $Id: terminfo.tail,v 1.38 2003/01/05 22:47:05 tom Exp $
+.\" $Id: terminfo.tail,v 1.42 2005/06/25 22:46:03 tom Exp $
.\" Beginning of terminfo.tail file
+.\" See "terminfo.head" for copyright.
.ps +1
.PP
.SS A Sample Entry
.DT
.nf
.ft CW
-.in -7
- \s-133\||\|tty33\||\|tty\||\|model 33 teletype,
+.\".in -2
+\s-133\||\|tty33\||\|tty\||\|model 33 teletype,
bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
-.in +7
+.\".in +2
.ft R
.PP
-while the Lear Siegler \s-1ADM\-3\s0 is described as
+while the Lear Siegler \s-1ADM-3\s0 is described as
.PP
.DT
.nf
.ft CW
-.in -7
- \s-1adm3\||\|3\||\|lsi adm3,
+.\".in -2
+\s-1adm3\||\|3\||\|lsi adm3,
am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
ind=^J, lines#24,\s+1
-.in +7
+.\".in +2
.ft R
.fi
.PP
arithmetic (%m is mod): push(pop() op pop())
.TP
%& %| %^
-bit operations: push(pop() op pop())
+bit operations (AND, OR and exclusive-OR): push(pop() op pop())
.TP
%= %> %<
logical operations: push(pop() op pop())
.TP
%A, %O
-logical and & or operations (for conditionals)
+logical AND and OR operations (for conditionals)
.TP
%! %~
-unary operations push(op pop())
+unary operations (logical and bit complement): push(op pop())
.TP
%i
add 1 to first two parameters (for ANSI terminals)
.TP
%? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %;
-if-then-else, %e \fIelsepart\fP is optional.
-else-if's are possible a la Algol 68:
-.br
+This forms an if-then-else.
+The %e \fIelsepart\fP is optional.
+Usually the %? \fIexpr\fP part pushes a value onto the stack,
+and %t pops it from the stack, testing if it is nonzero (true).
+If it is zero (false), control passes to the %e (else) part.
+.IP
+It is possible to form else-if's a la Algol 68:
+.RS
%? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %;
-.br
-c\di\u are conditions, b\di\u are bodies.
+.RE
+.IP
+where c\di\u are conditions, b\di\u are bodies.
+.IP
+Use the \fB-f\fP option of \fBtic\fP or \fBinfocmp\fP to see
+the structure of if-the-else's.
+Some strings, e.g., \fBsgr\fP can be very complicated when written
+on one line.
+The \fB-f\fP option splits the string into lines with the parts indented.
.PP
Binary operations are in postfix form with the operands in the usual order.
That is, to get x-5 one would use "%gx%{5}%-".
.fi
.PP
Remember that if you specify sgr, you must also specify sgr0.
+Also, some implementations rely on sgr being given if sgr0 is,
+Not all terminfo entries necessarily have an sgr string, however.
+Many terminfo entries are derived from termcap entries
+which have no sgr string.
+The only drawback to adding an sgr string is that termcap also
+assumes that sgr0 does not exit alternate character set mode.
.PP
Terminals with the ``magic cookie'' glitch
.RB ( xmc )
.BR if .
.SS Delays and Padding
.PP
-Many older and slower terminals don't support either XON/XOFF or DTR
+Many older and slower terminals do not support either XON/XOFF or DTR
handshaking, including hard copy terminals and some very archaic CRTs
(including, for example, DEC VT100s).
These may require padding characters
.BR xon .
This capability suppresses the emission of padding.
You can also set it
-for memory-mapped console devices effectively that don't have a speed limit.
+for memory-mapped console devices effectively that do not have a speed limit.
Padding information should still be included so that routines can
make better decisions about relative costs, but actual pad characters will
not be transmitted.
.SS Pitfalls of Long Entries
.PP
Long terminfo entries are unlikely to be a problem; to date, no entry has even
-approached terminfo's 4K string-table maximum.
+approached terminfo's 4096-byte string-table maximum.
Unfortunately, the termcap
-translations are much more strictly limited (to 1K), thus termcap translations
+translations are much more strictly limited (to 1023 bytes), thus termcap translations
of long terminfo entries can cause problems.
.PP
-The man pages for 4.3BSD and older versions of tgetent() instruct the user to
-allocate a 1K buffer for the termcap entry.
+The man pages for 4.3BSD and older versions of \fBtgetent()\fP instruct the user to
+allocate a 1024-byte buffer for the termcap entry.
The entry gets null-terminated by
the termcap library, so that makes the maximum safe length for a termcap entry
1k-1 (1023) bytes.
Depending on what the application and the termcap library
-being used does, and where in the termcap file the terminal type that tgetent()
+being used does, and where in the termcap file the terminal type that \fBtgetent()\fP
is searching for is, several bad things can happen.
.PP
Some termcap libraries print a warning message or exit if they find an
-entry that's longer than 1023 bytes; others don't; others truncate the
+entry that's longer than 1023 bytes; others do not; others truncate the
entries to 1023 bytes.
Some application programs allocate more than
-the recommended 1K for the termcap entry; others don't.
+the recommended 1K for the termcap entry; others do not.
.PP
Each termcap entry has two important sizes associated with it: before
"tc" expansion, and after "tc" expansion.
"tc" is the capability that
tacks on another termcap entry to the end of the current one, to add
on its capabilities.
-If a termcap entry doesn't use the "tc"
+If a termcap entry does not use the "tc"
capability, then of course the two lengths are the same.
.PP
The "before tc expansion" length is the most important one, because it
affects more than just users of that particular terminal.
This is the
length of the entry as it exists in /etc/termcap, minus the
-backslash-newline pairs, which tgetent() strips out while reading it.
+backslash-newline pairs, which \fBtgetent()\fP strips out while reading it.
Some termcap libraries strip off the final newline, too (GNU termcap does not).
Now suppose:
.TP 5
if it's the entry it wants,
.TP 5
*
-and tgetent() is searching for a terminal type that either is the
+and \fBtgetent()\fP is searching for a terminal type that either is the
long entry, appears in the termcap file after the long entry, or
-doesn't appear in the file at all (so that tgetent() has to search
+does not appear in the file at all (so that \fBtgetent()\fP has to search
the whole termcap file).
.PP
-Then tgetent() will overwrite memory, perhaps its stack, and probably core dump
+Then \fBtgetent()\fP will overwrite memory, perhaps its stack, and probably core dump
the program.
Programs like telnet are particularly vulnerable; modern telnets
pass along values like the terminal type automatically.
.PP
The "after tc expansion" length will have a similar effect to the
above, but only for people who actually set TERM to that terminal
-type, since tgetent() only does "tc" expansion once it's found the
+type, since \fBtgetent()\fP only does "tc" expansion once it's found the
terminal type it was looking for, not while searching.
.PP
In summary, a termcap entry that is longer than 1023 bytes can cause,
SVr1, and have added extension capabilities to the string table that (in the
binary format) collide with System V and XSI Curses extensions.
.SH EXTENSIONS
-Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, don't
+Some SVr4 \fBcurses\fR implementations, and all previous to SVr4, do not
interpret the %A and %O operators in parameter strings.
.PP
SVr4/XPG4 do not specify whether \fBmsgr\fR licenses movement while in
an alternate-character-set mode (such modes may, among other things, map
-CR and NL to characters that don't trigger local motions).
+CR and NL to characters that do not trigger local motions).
The \fBncurses\fR implementation ignores \fBmsgr\fR in \fBALTCHARSET\fR
mode.
This raises the possibility that an XPG4
\*d/?/*
files containing terminal descriptions
.SH SEE ALSO
-\fBtic\fR(1M), \fBcurses\fR(3X), \fBprintf\fR(3S), \fBterm\fR(\*n).
+\fBtic\fR(1M),
+\fBinfocmp\fR(1M),
+\fBcurses\fR(3X),
+\fBprintf\fR(3S),
+\fBterm\fR(\*n).
.SH AUTHORS
Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
Based on pcurses by Pavel Curtis.
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tic.1m,v 1.35 2003/05/11 00:32:53 tom Exp $
+.\" $Id: tic.1m,v 1.38 2005/04/30 19:39:28 tom Exp $
.TH tic 1M ""
.ds n 5
.ds d @TERMINFO@
\fBtic\fR - the \fIterminfo\fR entry-description compiler
.SH SYNOPSIS
\fBtic\fR
-[\fB\-\
+[\fB-\
1\
C\
G\
t\
x\
\fR]
-[\fB\-e\fR \fInames\fR]
-[\fB\-o\fR \fIdir\fR]
-[\fB\-R\fR \fIsubset\fR]
-[\fB\-v\fR[\fIn\fR]]
-[\fB\-w\fR[\fIn\fR]]
+[\fB-e\fR \fInames\fR]
+[\fB-o\fR \fIdir\fR]
+[\fB-R\fR \fIsubset\fR]
+[\fB-v\fR[\fIn\fR]]
+[\fB-w\fR[\fIn\fR]]
\fIfile\fR
.br
.SH DESCRIPTION
directory first, look at \fI$HOME/.terminfo\fR if TERMINFO is not set, and
finally look in \fI\*d\fR.
.TP
-\fB\-1\fR
+\fB-1\fR
restricts the output to a single column
.TP
-\fB\-a\fR
+\fB-a\fR
tells \fBtic\fP to retain commented-out capabilities rather than discarding
them. Capabilities are commented by prefixing them with a period.
-This sets the \fB\-x\fR option, because it treats the commented-out
+This sets the \fB-x\fR option, because it treats the commented-out
entries as user-defined names.
+If the source is termcap, accept the 2-character names required by version 6.
+Otherwise these are ignored.
.TP
-\fB\-C\fR
-Force source translation to termcap format. Note: this differs from the \fB\-C\fR
+\fB-C\fR
+Force source translation to termcap format. Note: this differs from the \fB-C\fR
option of \fIinfocmp\fR(1M) in that it does not merely translate capability
names, but also translates terminfo strings to termcap format. Capabilities
that are not translatable are left in the entry under their terminfo names
but commented out with two preceding dots.
.TP
-\fB\-c\fR
+\fB-c\fR
tells \fBtic\fP to only check \fIfile\fR for errors, including syntax problems and
-bad use links. If you specify \fB\-C\fR (\fB\-I\fR) with this option, the code
+bad use links. If you specify \fB-C\fR (\fB-I\fR) with this option, the code
will print warnings about entries which, after use resolution, are more than
1023 (4096) bytes long. Due to a fixed buffer length in older termcap
libraries (and a documented limit in terminfo), these entries may cause core
dumps.
.TP
-\fB\-e \fR\fInames\fR
+\fB-e \fR\fInames\fR
Limit writes and translations to the following comma-separated list of
terminals.
If any name or alias of a terminal matches one of the names in
Otherwise no output will be generated for it.
The option value is interpreted as a file containing the list if it
contains a '/'.
-(Note: depending on how tic was compiled, this option may require \fB\-I\fR or \fB\-C\fR.)
+(Note: depending on how tic was compiled, this option may require \fB-I\fR or \fB-C\fR.)
.TP
-\fB\-f\fR
+\fB-f\fR
Display complex terminfo strings which contain if/then/else/endif expressions
indented for readability.
.TP
-\fB\-G\fR
+\fB-G\fR
Display constant literals in decimal form
rather than their character equivalents.
.TP
-\fB\-g\fR
+\fB-g\fR
Display constant character literals in quoted form
rather than their decimal equivalents.
.TP
-\fB\-I\fR
+\fB-I\fR
Force source translation to terminfo format.
.TP
-\fB\-L\fR
+\fB-L\fR
Force source translation to terminfo format
using the long C variable names listed in <\fBterm.h\fR>
.TP
-\fB\-N\fR
+\fB-N\fR
Disable smart defaults.
Normally, when translating from termcap to terminfo, the compiler makes
a number of assumptions about the defaults of string capabilities
This option forces a more literal translation that also preserves the
obsolete capabilities.
.TP
-\fB\-o\fR\fIdir\fR
+\fB-o\fR\fIdir\fR
Write compiled entries to given directory. Overrides the TERMINFO environment
variable.
.TP
-\fB\-R\fR\fIsubset\fR
+\fB-R\fR\fIsubset\fR
Restrict output to a given subset. This option is for use with archaic
versions of terminfo like those on SVr1, Ultrix, or HP/UX that do not support
the full set of SVR4/XSI Curses terminfo; and outright broken ports like AIX 3.x
that have their own extensions incompatible with SVr4/XSI. Available subsets
are "SVr1", "Ultrix", "HP", "BSD" and "AIX"; see \fBterminfo\fR(\*n) for details.
.TP
-\fB\-r\fR
+\fB-r\fR
Force entry resolution (so there are no remaining tc capabilities) even
when doing translation to termcap format. This may be needed if you are
preparing a termcap file for a termcap library (such as GNU termcap through
version 1.3 or BSD termcap through 4.3BSD) that does not handle multiple
tc capabilities per entry.
.TP
-\fB\-s\fR
+\fB-s\fR
Summarize the compile by showing the directory into which entries
are written, and the number of entries which are compiled.
.TP
-\fB\-T\fR
+\fB-T\fR
eliminates size-restrictions on the generated text.
This is mainly useful for testing and analysis, since the compiled
descriptions are limited (e.g., 1023 for termcap, 4096 for terminfo).
.TP
-\fB\-t\fR
+\fB-t\fR
tells \fBtic\fP to discard commented-out capabilities.
Normally when translating from terminfo to termcap,
untranslatable capabilities are commented-out.
.TP
-\fB\-V\fR
+\fB-V\fR
reports the version of ncurses which was used in this program, and exits.
.TP
-\fB\-v\fR\fIn\fR
+\fB-v\fR\fIn\fR
specifies that (verbose) output be written to standard error trace
information showing \fBtic\fR's progress. The optional integer
\fIn\fR is a number from 1 to 10, inclusive, indicating the desired
level is 1. If \fIn\fR is specified and greater than 1, the level of
detail is increased.
.TP
-\fB\-w\fR\fIn\fR
+\fB-w\fR\fIn\fR
specifies the width of the output.
.TP
-\fB\-x\fR
+\fB-x\fR
Treat unknown capabilities as user-defined.
That is, if you supply a capability name which \fBtic\fP does not recognize,
it will infer its type (boolean, number or string) from the syntax and
make an extended table entry for that.
+User-defined capability strings
+whose name begins with ``k'' are treated as function keys.
.TP
\fIfile\fR
contains one or more \fBterminfo\fR terminal descriptions in source
error messages, and can be parsed by GNU Emacs's compile facility.
The
-\fB\-C\fR,
-\fB\-G\fR,
-\fB\-I\fR,
-\fB\-N\fR,
-\fB\-R\fR,
-\fB\-T\fR,
-\fB\-V\fR,
-\fB\-a\fR,
-\fB\-e\fR,
-\fB\-f\fR,
-\fB\-g\fR,
-\fB\-o\fR,
-\fB\-r\fR,
-\fB\-s\fR,
-\fB\-t\fR and
-\fB\-x\fR
+\fB-C\fR,
+\fB-G\fR,
+\fB-I\fR,
+\fB-N\fR,
+\fB-R\fR,
+\fB-T\fR,
+\fB-V\fR,
+\fB-a\fR,
+\fB-e\fR,
+\fB-f\fR,
+\fB-g\fR,
+\fB-o\fR,
+\fB-r\fR,
+\fB-s\fR,
+\fB-t\fR and
+\fB-x\fR
options
are not supported under SVr4.
-The SVr4 \fB\-c\fR mode does not report bad use links.
+The SVr4 \fB-c\fR mode does not report bad use links.
System V does not compile entries to or read entries from your
\fI$HOME/.terminfo\fR directory unless TERMINFO is explicitly set to it.
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: toe.1m,v 1.12 2003/05/11 00:32:53 tom Exp $
+.\" $Id: toe.1m,v 1.13 2004/07/05 13:16:08 tom Exp $
.TH toe 1M ""
.ds n 5
.ds d @TERMINFO@
.SH NAME
\fBtoe\fR - table of (terminfo) entries
.SH SYNOPSIS
-\fBtoe\fR [\fB\-v\fR[\fIn\fR]] [\fB\-huUV\fR] \fIfile...\fR
+\fBtoe\fR [\fB-v\fR[\fIn\fR]] [\fB-huUV\fR] \fIfile...\fR
.br
.SH DESCRIPTION
.PP
With no options, \fBtoe\fR lists all available terminal types by primary name
with descriptions. File arguments specify the directories to be scanned; if no
such arguments are given, your default terminfo directory is scanned. If you
-also specify the \fB\-h\fR option, a directory header will be issued as each
+also specify the \fB-h\fR option, a directory header will be issued as each
directory is entered.
.PP
There are other options intended for use by terminfo file maintainers:
.TP
-\fB\-u\fR \fIfile\fR
+\fB-u\fR \fIfile\fR
says to issue a report on dependencies in the given file. This report condenses
the `use' relation: each line consists of the primary name of a terminal that
has use capabilities, followed by a colon, followed by the
whitespace-separated primary names of all terminals which occur in those use
capabilities, followed by a newline
.TP
-\fB\-U\fR \fIfile\fR
+\fB-U\fR \fIfile\fR
says to issue a report on reverse dependencies in the given file. This report
reverses the `use' relation: each line consists of the primary name of a
terminal that occurs in use capabilities, followed by a colon, followed by the
whitespace-separated primary names of all terminals which depend on it,
followed by a newline.
.TP
-\fB\-v\fR\fIn\fR
+\fB-v\fR\fIn\fR
specifies that (verbose) output be written to standard error trace
information showing \fBtoe\fR's progress. The optional integer
\fIn\fR is a number from 1 to 10, interpreted as for \fBtic\fR(1).
.TP 5
-\fB\-V\fR
+\fB-V\fR
reports the version of ncurses which was used in this program, and exits.
.SH FILES
.TP 5
'\" t
.\"***************************************************************************
-.\" Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tput.1,v 1.20 2003/05/11 00:32:53 tom Exp $
+.\" $Id: tput.1,v 1.22 2005/01/08 17:44:26 tom Exp $
.TH tput 1 ""
.ds d @TERMINFO@
.ds n 1
.SH NAME
\fBtput\fR, \fBreset\fR - initialize a terminal or query terminfo database
.SH SYNOPSIS
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
+\fBtput\fR [\fB-T\fR\fItype\fR] \fIcapname\fR [\fIparms\fR ... ]
.br
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fBinit\fR
+\fBtput\fR [\fB-T\fR\fItype\fR] \fBinit\fR
.br
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fBreset\fR
+\fBtput\fR [\fB-T\fR\fItype\fR] \fBreset\fR
.br
-\fBtput\fR [\fB\-T\fR\fItype\fR] \fBlongname\fR
+\fBtput\fR [\fB-T\fR\fItype\fR] \fBlongname\fR
.br
-\fBtput \-S\fR \fB<<\fR
+\fBtput -S\fR \fB<<\fR
.br
-\fBtput \-V\fR
+\fBtput -V\fR
.br
.SH DESCRIPTION
The \fBtput\fR utility uses the \fBterminfo\fR database to make the
values of terminal-dependent capabilities and information available to
the shell (see \fBsh\fR(1)), to initialize or reset the terminal, or
-return the long name of the requested terminal type. \fBtput\fR
-outputs a string if the attribute (\fIcap\fRability \fIname\fR) is of
-type string, or an integer if the attribute is of type integer. If
-the attribute is of type boolean, \fBtput\fR simply sets the exit code
-(\fB0\fR for TRUE if the terminal has the capability, \fB1\fR for
-FALSE if it does not), and produces no output. Before using a value
-returned on standard output, the user should test the exit code
-[\fB$?\fR, see \fBsh\fR(1)] to be sure it is \fB0\fR.
+return the long name of the requested terminal type.
+The result depends upon the capability's type:
+.RS
+.TP 5
+string
+\fBtput\fR writes the string to the standard output.
+No trailing newline is supplied.
+.TP
+integer
+\fBtput\fR writes the decimal value to the standard output,
+with a trailing newline.
+.TP
+boolean
+\fBtput\fR simply sets the exit code
+(\fB0\fR for TRUE if the terminal has the capability,
+\fB1\fR for FALSE if it does not),
+and writes nothing to the standard output.
+.RE
+.PP
+Before using a value returned on the standard output,
+the application should test the exit code
+(e.g., \fB$?\fR, see \fBsh\fR(1)) to be sure it is \fB0\fR.
(See the \fBEXIT CODES\fR and \fBDIAGNOSTICS\fR sections.)
For a complete list of capabilities
and the \fIcapname\fR associated with each, see \fBterminfo\fR(\*n).
.TP
-\fB\-T\fR\fItype\fR
+\fB-T\fR\fItype\fR
indicates the \fItype\fR of terminal. Normally this option is
unnecessary, because the default is taken from the environment
-variable \fBTERM\fR. If \fB\-T\fR is specified, then the shell
+variable \fBTERM\fR. If \fB-T\fR is specified, then the shell
variables \fBLINES\fR and \fBCOLUMNS\fR will be ignored,and the
operating system will not be queried for the actual screen size.
.TP
\fIcapname\fR
-indicates the attribute from the \fBterminfo\fR database. When
+indicates the capability from the \fBterminfo\fR database. When
\fBtermcap\fR support is compiled in, the \fBtermcap\fR name for
-the attribute is also accepted.
+the capability is also accepted.
.TP
\fIparms\fR
-If the attribute is a string that takes parameters, the arguments
+If the capability is a string that takes parameters, the arguments
\fIparms\fR will be instantiated into the string.
-An all-numeric argument will be passed to the attribute as a number.
.IP
+Most parameters are numbers.
Only a few terminfo capabilities require string parameters;
\fBtput\fR uses a table to decide which to pass as strings.
Normally \fBtput\fR uses \fBtparm\fR (3X) to perform the substitution.
-If no parameters are given for the attribute,
+If no parameters are given for the capability,
\fBtput\fR writes the string without performing the substitution.
.TP
-\fB\-S\fR
+\fB-S\fR
allows more than one capability per invocation of \fBtput\fR. The
capabilities must be passed to \fBtput\fR from the standard input
instead of from the command line (see example).
Only one \fIcapname\fR is allowed per line.
-The \fB\-S\fR option changes the
+The \fB-S\fR option changes the
meaning of the \fB0\fR and \fB1\fR boolean and string exit codes (see the
EXIT CODES section).
.IP
to decide whether to use \fBtparm\fR (3X),
and how to interpret the parameters.
.TP
-\fB\-V\fR
+\fB-V\fR
reports the version of ncurses which was used in this program, and exits.
.TP
\fBinit\fR
If the \fBterminfo\fR database is present and an entry for the user's
-terminal exists (see \fB\-T\fR\fItype\fR, above), the following will
+terminal exists (see \fB-T\fR\fItype\fR, above), the following will
occur: (1) if present, the terminal's initialization strings will be
output (\fBis1\fR, \fBis2\fR, \fBis3\fR, \fBif\fR, \fBiprog\fR), (2)
any delays (e.g., newline) specified in the entry will be set in the
.TP
\fBlongname\fR
If the \fBterminfo\fR database is present and an entry for the
-user's terminal exists (see \fB\-T\fR\fItype\fR above), then the long name
+user's terminal exists (see \fB-T\fR\fItype\fR above), then the long name
of the terminal will be put out. The long name is the last
name in the first line of the terminal's description in the
\fBterminfo\fR database [see \fBterm\fR(5)].
the environmental variable \fBTERM\fR has been exported, as
illustrated on the \fBprofile\fR(5) manual page.
.TP 5
-\fBtput \-T5620 reset\fR
+\fBtput -T5620 reset\fR
Reset an AT&T 5620 terminal, overriding the type of
terminal in the environmental variable \fBTERM\fR.
.TP 5
\fBtput cols\fR
Print the number of columns for the current terminal.
.TP 5
-\fBtput \-T450 cols\fR
+\fBtput -T450 cols\fR
Print the number of columns for the 450 terminal.
.TP 5
\fBbold=`tput smso` offbold=`tput rmso`\fR
variable \fBTERM\fR.
.PP
.RS 5
-\fBtput \-S <<!\fR
+\fBtput -S <<!\fR
.br
\fB> clear\fR
.br
\fB\*d\fR
compiled terminal description database
.TP
-\fB/usr/include/curses.h\fR
-\fBcurses\fR(3X) header file
-.TP
-\fB/usr/include/term.h\fR
-\fBterminfo\fR header file
-.TP
\fB@DATADIR@/tabset/*\fR
tab settings for some terminals, in a format
appropriate to be output to the terminal (escape
information, see the "Tabs and Initialization"
section of \fBterminfo\fR(5)
.SH EXIT CODES
-If the \fB\-S\fR option is used,
+If the \fB-S\fR option is used,
\fBtput\fR checks for errors from each line,
and if any errors are found, will set the exit code to 4 plus the
number of lines with errors.
No indication of which line failed can be given so
exit code \fB1\fR will never appear. Exit codes \fB2\fR, \fB3\fR, and
\fB4\fR retain their usual interpretation.
-If the \fB\-S\fR option is not used,
+If the \fB-S\fR option is not used,
the exit code depends on the type of \fIcapname\fR:
.RS 5
.TP
whether or not \fIcapname\fR is defined for this terminal \fItype\fR.
To determine if \fIcapname\fR is defined for this terminal \fItype\fR,
the user must test the value written to standard output.
-A value of \fB\-1\fR
+A value of \fB-1\fR
means that \fIcapname\fR is not defined for this terminal \fItype\fR.
.TP
.I other
\fB0\fR T{
(\fIcapname\fR is a numeric variable that is not specified in the
\fBterminfo\fR(\*n) database for this terminal type, e.g.
-\fBtput \-T450 lines\fR and \fBtput \-T2621 xmc\fR)
+\fBtput -T450 lines\fR and \fBtput -T2621 xmc\fR)
T}
\fB1\fR no error message is printed, see the \fBEXIT CODES\fR section.
\fB2\fR usage error
\fB3\fR unknown terminal \fItype\fR or no \fBterminfo\fR database
\fB4\fR unknown \fBterminfo\fR capability \fIcapname\fR
-\fB>4\fR error occurred in \-S
+\fB>4\fR error occurred in -S
=
.TE
.SH PORTABILITY
-The \fBlongname\fR and \fB\-S\fR options, and the parameter-substitution
+The \fBlongname\fR and \fB-S\fR options, and the parameter-substitution
features used in the \fBcup\fR example, are not supported in BSD curses or in
AT&T/USL curses before SVr4.
.SH SEE ALSO
.\"***************************************************************************
-.\" Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+.\" Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
.\" *
.\" Permission is hereby granted, free of charge, to any person obtaining a *
.\" copy of this software and associated documentation files (the *
.\" authorization. *
.\"***************************************************************************
.\"
-.\" $Id: tset.1,v 1.13 2003/05/11 00:32:53 tom Exp $
+.\" $Id: tset.1,v 1.15 2005/03/20 18:27:09 tom Exp $
.TH tset 1 ""
.SH NAME
\fBtset\fR, \fBreset\fR - terminal initialization
.SH SYNOPSIS
-tset [\-IQVqrs] [\-] [\-e \fIch\fR] [\-i \fIch\fR] [\-k \fIch\fR] [\-m \fImapping\fR] [\fIterminal\fR]
+\fBtset\fR [\fB-IQVcqrsw\fR] [\fB-\fR] [\fB-e\fR \fIch\fR] [\fB-i\fR \fIch\fR] [\fB-k\fR \fIch\fR] [\fB-m\fR \fImapping\fR] [\fIterminal\fR]
.br
-reset [\-IQVqrs] [\-] [\-e \fIch\fR] [\-i \fIch\fR] [\-k \fIch\fR] [\-m \fImapping\fR] [\fIterminal\fR]
+\fBreset\fR [\fB-IQVcqrsw\fR] [\fB-\fR] [\fB-e\fR \fIch\fR] [\fB-i\fR \fIch\fR] [\fB-k\fR \fIch\fR] [\fB-m\fR \fImapping\fR] [\fIterminal\fR]
.SH DESCRIPTION
\&\fBTset\fR initializes terminals.
\fBTset\fR first determines the type of terminal that you are using.
.PP
4. The default terminal type, ``unknown''.
.PP
-If the terminal type was not specified on the command-line, the \fB\-m\fR
-option mappings are then applied (see below for more information).
+If the terminal type was not specified on the command-line, the \fB-m\fR
+option mappings are then applied (see the section
+.B TERMINAL TYPE MAPPING
+for more information).
Then, if the terminal type begins with a question mark (``?''), the
user is prompted for confirmation of the terminal type. An empty
response confirms the type, or, another type can be entered to specify
Finally, if the erase, interrupt and line kill characters have changed,
or are not set to their default values, their values are displayed to the
standard error output.
+Use the \fB-c\fP or \fB-w\fP option to select only the window sizing
+versus the other initialization.
+If neither option is given, both are assumed.
.PP
When invoked as \fBreset\fR, \fBtset\fR sets cooked and echo modes,
turns off cbreak and raw modes, turns on newline translation and
.PP
The options are as follows:
.TP 5
-.B \-q
-The terminal type is displayed to the standard output, and the terminal is
-not initialized in any way. The option `-' by itself is equivalent but
-archaic.
-.TP
-.B \-e
+.B -c
+Set control characters and modes.
+.B -e
Set the erase character to \fIch\fR.
.TP
-.B \-I
+.B -I
Do not send the terminal or tab initialization strings to the terminal.
.TP
-.B \-Q
-Don't display any values for the erase, interrupt and line kill characters.
-.TP
-.B \-V
-reports the version of ncurses which was used in this program, and exits.
-.TP
-.B \-i
+.B -i
Set the interrupt character to \fIch\fR.
.TP
-.B \-k
+.B -k
Set the line kill character to \fIch\fR.
.TP
-.B \-m
+.B -m
Specify a mapping from a port type to a terminal.
-See below for more information.
+See the section
+.B TERMINAL TYPE MAPPING
+for more information.
+.TP
+.B -Q
+Do not display any values for the erase, interrupt and line kill characters.
+Normally \fBtset\fR displays the values for control characters which
+differ from the system's default values.
.TP
-.B \-r
+.B -q
+The terminal type is displayed to the standard output, and the terminal is
+not initialized in any way. The option `-' by itself is equivalent but
+archaic.
+.TP
+.B -r
Print the terminal type to the standard error output.
.TP
-.B \-s
+.B -s
Print the sequence of shell commands to initialize the environment variable
\fBTERM\fR to the standard output.
-See the section below on setting the environment for details.
+See the section
+.B SETTING THE ENVIRONMENT
+for details.
+.TP
+.B -V
+reports the version of ncurses which was used in this program, and exits.
+.TP
+.B -w
+Resize the window to match the size deduced via \fBsetupterm\fP.
+Normally this has no effect,
+unless \fBsetupterm\fP is not able to detect the window size.
.PP
The arguments for the \fB-e\fR, \fB-i\fR, and \fB-k\fR
options may either be entered as actual characters or by using the `hat'
notation, i.e. control-h may be specified as ``^H'' or ``^h''.
+.
.SH SETTING THE ENVIRONMENT
It is often desirable to enter the terminal type and information about
the terminal's capabilities into the shell's environment.
-This is done using the \fB\-s\fR option.
+This is done using the \fB-s\fR option.
.PP
-When the \fB\-s\fR option is specified, the commands to enter the information
+When the \fB-s\fR option is specified, the commands to enter the information
into the shell's environment are written to the standard output. If
the \fBSHELL\fR environmental variable ends in ``csh'', the commands
are for \fBcsh\fR, otherwise, they are for \fBsh\fR.
\fBnoglob\fR, leaving it unset. The following line in the \fB.login\fR
or \fB.profile\fR files will initialize the environment correctly:
- eval \`tset \-s options ... \`
+ eval \`tset -s options ... \`
.SH TERMINAL TYPE MAPPING
When the terminal is not hardwired into the system (or the current
When \fBtset\fR is used in a startup script it is often desirable to
provide information about the type of terminal used on such ports.
.PP
-The purpose of the \fB\-m\fR option is to map
+The purpose of the \fB-m\fR option is to map
from some set of conditions to a terminal type, that is, to
tell \fBtset\fR
``If I'm on this port at a particular speed, guess that I'm on that
kind of terminal''.
.PP
-The argument to the \fB\-m\fR option consists of an optional port type, an
+The argument to the \fB-m\fR option consists of an optional port type, an
optional operator, an optional baud rate specification, an optional
colon (``:'') character and a terminal type. The port type is a
string (delimited by either the operator or the colon character). The
of the standard error output (which should be the control terminal).
The terminal type is a string.
.PP
-If the terminal type is not specified on the command line, the \fB\-m\fR
+If the terminal type is not specified on the command line, the \fB-m\fR
mappings are applied to the terminal type. If the port type and baud
rate match the mapping, the terminal type specified in the mapping
replaces the current type. If more than one mapping is specified, the
.PP
If no baud rate is specified, the terminal type will match any baud rate.
If no port type is specified, the terminal type will match any port type.
-For example, \fB\-m dialup:vt100 \-m :?xterm\fR
+For example, \fB-m dialup:vt100 -m :?xterm\fR
will cause any dialup port, regardless of baud rate, to match the terminal
type vt100, and any non-dialup port type to match the terminal type ?xterm.
Note, because of the leading question mark, the user will be
queried on a default port as to whether they are actually using an xterm
terminal.
.PP
-No whitespace characters are permitted in the \fB\-m\fR option argument.
+No whitespace characters are permitted in the \fB-m\fR option argument.
Also, to avoid problems with meta-characters, it is suggested that the
-entire \fB\-m\fR option argument be placed within single quote characters,
+entire \fB-m\fR option argument be placed within single quote characters,
and that \fBcsh\fR users insert a backslash character (``\e'') before
any exclamation marks (``!'').
.SH HISTORY
\fBtset\fR's most important use). This implementation behaves like 4.4BSD
tset, with a few exceptions specified here.
.PP
-The \fB\-S\fR option of BSD tset no longer works; it prints an error message to stderr
-and dies. The \fB\-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
+The \fB-S\fR option of BSD tset no longer works; it prints an error message to stderr
+and dies. The \fB-s\fR option only sets \fBTERM\fR, not \fBTERMCAP\fP. Both these
changes are because the \fBTERMCAP\fR variable is no longer supported under
-terminfo-based \fBncurses\fR, which makes \fBtset \-S\fR useless (we made it die
+terminfo-based \fBncurses\fR, which makes \fBtset -S\fR useless (we made it die
noisily rather than silently induce lossage).
.PP
There was an undocumented 4.4BSD feature that invoking tset via a link named
`TSET` (or via any other name beginning with an upper-case letter) set the
terminal to use upper-case only. This feature has been omitted.
.PP
-The \fB\-A\fR, \fB\-E\fR, \fB\-h\fR, \fB\-u\fR and \fB\-v\fR
+The \fB-A\fR, \fB-E\fR, \fB-h\fR, \fB-u\fR and \fB-v\fR
options were deleted from the \fBtset\fR
utility in 4.4BSD.
None of them were documented in 4.3BSD and all are
of limited utility at best.
-The \fB\-a\fR, -\fB\d\fR, and -\fB\p\fR options are similarly
+The \fB-a\fR, \fB-d\fR, and \fB-p\fR options are similarly
not documented or useful, but were retained as they appear to be in
widespread use. It is strongly recommended that any usage of these
-three options be changed to use the \fB\-m\fR option instead. The
--n option remains, but has no effect. The \fB\-adnp\fR options are therefore
+three options be changed to use the \fB-m\fR option instead. The
+-n option remains, but has no effect. The \fB-adnp\fR options are therefore
omitted from the usage summary above.
.PP
-It is still permissible to specify the \fB\-e\fR, \fB\-i\fR, and \fB\-k\fR options without
+It is still permissible to specify the \fB-e\fR, \fB-i\fR, and \fB-k\fR options without
arguments, although it is strongly recommended that such usage be fixed to
explicitly specify the character.
.PP
-As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB\-Q\fR
+As of 4.4BSD, executing \fBtset\fR as \fBreset\fR no longer implies the \fB-Q\fR
option. Also, the interaction between the - option and the \fIterminal\fR
argument in some historic implementations of \fBtset\fR has been removed.
.SH ENVIRONMENT
csh(1),
sh(1),
stty(1),
+setupterm(3),
tty(4),
termcap(5),
ttys(5),
-# $Id: Makefile.in,v 1.41 2003/11/01 22:44:33 tom Exp $
+# $Id: Makefile.in,v 1.42 2004/12/11 23:33:16 tom Exp $
##############################################################################
# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
# #
CPP = @CPP@
CFLAGS = @CFLAGS@
-CPPFLAGS = -DHAVE_CONFIG_H @CPPFLAGS@
+CPPFLAGS = -I@top_srcdir@/ncurses -DHAVE_CONFIG_H @CPPFLAGS@
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
/****************************************************************************
- * Copyright (c) 1999,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2002,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1996-1999,2002 *
+ * Author: Thomas E. Dickey 1996-2002,2005 *
****************************************************************************/
/* LINTLIBRARY */
MENU *menu)
{ /* void */ }
+#undef _nc_Calculate_Text_Width
+int _nc_Calculate_Text_Width(
+ const TEXT *item)
+ { return(*(int *)0); }
+
#undef _nc_Calculate_Item_Length_and_Width
void _nc_Calculate_Item_Length_and_Width(
MENU *menu)
const MENU *menu)
{ return(*(WINDOW **)0); }
+/* ./m_trace.c */
+
+#undef _nc_retrace_item
+ITEM *_nc_retrace_item(
+ ITEM *code)
+ { return(*(ITEM **)0); }
+
+#undef _nc_retrace_item_ptr
+ITEM **_nc_retrace_item_ptr(
+ ITEM **code)
+ { return(*(ITEM ***)0); }
+
+#undef _nc_retrace_item_opts
+Item_Options _nc_retrace_item_opts(
+ Item_Options code)
+ { return(*(Item_Options *)0); }
+
+#undef _nc_retrace_menu
+MENU *_nc_retrace_menu(
+ MENU *code)
+ { return(*(MENU **)0); }
+
+#undef _nc_retrace_menu_hook
+Menu_Hook _nc_retrace_menu_hook(
+ Menu_Hook code)
+ { return(*(Menu_Hook *)0); }
+
+#undef _nc_retrace_menu_opts
+Menu_Options _nc_retrace_menu_opts(
+ Menu_Options code)
+ { return(*(Menu_Options *)0); }
+
/* ./m_userptr.c */
#undef set_menu_userptr
/****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 2002 *
+ * Author: Thomas E. Dickey 2002,2005 *
****************************************************************************/
/* LINTLIBRARY */
MENU *menu)
{ /* void */ }
+#undef _nc_Calculate_Text_Width
+int _nc_Calculate_Text_Width(
+ const TEXT *item)
+ { return(*(int *)0); }
+
#undef _nc_Calculate_Item_Length_and_Width
void _nc_Calculate_Item_Length_and_Width(
MENU *menu)
/* ./m_item_new.c */
+#include <wctype.h>
+
#undef new_item
ITEM *new_item(
const char *name,
const MENU *menu)
{ return(*(WINDOW **)0); }
+/* ./m_trace.c */
+
+#undef _nc_retrace_item
+ITEM *_nc_retrace_item(
+ ITEM *code)
+ { return(*(ITEM **)0); }
+
+#undef _nc_retrace_item_ptr
+ITEM **_nc_retrace_item_ptr(
+ ITEM **code)
+ { return(*(ITEM ***)0); }
+
+#undef _nc_retrace_item_opts
+Item_Options _nc_retrace_item_opts(
+ Item_Options code)
+ { return(*(Item_Options *)0); }
+
+#undef _nc_retrace_menu
+MENU *_nc_retrace_menu(
+ MENU *code)
+ { return(*(MENU **)0); }
+
+#undef _nc_retrace_menu_hook
+Menu_Hook _nc_retrace_menu_hook(
+ Menu_Hook code)
+ { return(*(Menu_Hook *)0); }
+
+#undef _nc_retrace_menu_opts
+Menu_Options _nc_retrace_menu_opts(
+ Menu_Options code)
+ { return(*(Menu_Options *)0); }
+
/* ./m_userptr.c */
#undef set_menu_userptr
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_attribs.c,v 1.12 2003/11/08 20:54:20 tom Exp $")
+MODULE_ID("$Id: m_attribs.c,v 1.14 2004/12/11 23:29:12 tom Exp $")
/* Macro to redraw menu if it is posted and changed */
#define Refresh_Menu(menu) \
#define GEN_MENU_ATTR_SET_FCT( name ) \
NCURSES_IMPEXP int NCURSES_API set_menu_ ## name (MENU * menu, chtype attr)\
{\
+ T((T_CALLED("set_menu_" #name "(%p,%s)"), menu, _traceattr(attr)));\
if (!(attr==A_NORMAL || (attr & A_ATTRIBUTES)==attr))\
RETURN(E_BAD_ARGUMENT);\
if (menu && ( menu -> name != attr))\
#define GEN_MENU_ATTR_GET_FCT( name ) \
NCURSES_IMPEXP chtype NCURSES_API menu_ ## name (const MENU * menu)\
{\
- return (Normalize_Menu( menu ) -> name);\
+ T((T_CALLED("menu_" #name "(%p)"), menu));\
+ returnAttr(Normalize_Menu( menu ) -> name);\
}
/*---------------------------------------------------------------------------
| Return Values : E_OK - success
| E_BAD_ARGUMENT - an invalid value has been passed
+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( fore )
+GEN_MENU_ATTR_SET_FCT(fore)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : Attribute value
+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( fore )
+GEN_MENU_ATTR_GET_FCT(fore)
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : E_OK - success
| E_BAD_ARGUMENT - an invalid value has been passed
+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( back )
+GEN_MENU_ATTR_SET_FCT(back)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : Attribute value
+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( back )
+GEN_MENU_ATTR_GET_FCT(back)
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : E_OK - success
| E_BAD_ARGUMENT - an invalid value has been passed
+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_SET_FCT( grey )
+GEN_MENU_ATTR_SET_FCT(grey)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : Attribute value
+--------------------------------------------------------------------------*/
-GEN_MENU_ATTR_GET_FCT( grey )
+GEN_MENU_ATTR_GET_FCT(grey)
/* m_attribs.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_cursor.c,v 1.16 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_cursor.c,v 1.19 2004/12/25 22:03:00 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_NOT_POSTED - Menu is not posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-_nc_menu_cursor_pos
-(const MENU* menu, const ITEM* item, int* pY, int* pX)
+_nc_menu_cursor_pos(const MENU * menu, const ITEM * item, int *pY, int *pX)
{
if (!menu || !pX || !pY)
- return(E_BAD_ARGUMENT);
+ return (E_BAD_ARGUMENT);
else
{
- if ((ITEM*)0 == item)
+ if ((ITEM *) 0 == item)
item = menu->curitem;
- assert(item!=(ITEM*)0);
+ assert(item != (ITEM *) 0);
- if ( !( menu->status & _POSTED ) )
- return(E_NOT_POSTED);
+ if (!(menu->status & _POSTED))
+ return (E_NOT_POSTED);
*pX = item->x * (menu->spc_cols + menu->itemlen);
*pY = (item->y - menu->toprow) * menu->spc_rows;
}
- return(E_OK);
+ return (E_OK);
}
/*---------------------------------------------------------------------------
| E_NOT_POSTED - Menu is not posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-pos_menu_cursor (const MENU * menu)
+pos_menu_cursor(const MENU * menu)
{
WINDOW *win, *sub;
int x, y;
- int err = _nc_menu_cursor_pos(menu,(ITEM*)0,&y,&x);
+ int err = _nc_menu_cursor_pos(menu, (ITEM *) 0, &y, &x);
- if (E_OK==err)
+ T((T_CALLED("pos_menu_cursor(%p)"), menu));
+
+ if (E_OK == err)
{
win = menu->userwin ? menu->userwin : stdscr;
sub = menu->usersub ? menu->usersub : win;
assert(win && sub);
if ((menu->opt & O_SHOWMATCH) && (menu->pindex > 0))
- x += ( menu->pindex + menu->marklen - 1);
+ x += (menu->pindex + menu->marklen - 1);
- wmove(sub,y,x);
+ wmove(sub, y, x);
- if ( win != sub )
+ if (win != sub)
{
wcursyncup(sub);
wsyncup(sub);
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_driver.c,v 1.20 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_driver.c,v 1.24 2005/04/09 20:40:25 tom Exp $")
/* Macros */
| Return Values : TRUE - if it is a substring
| FALSE - if it is not a substring
+--------------------------------------------------------------------------*/
-static bool Is_Sub_String(
- bool IgnoreCaseFlag,
- const char *part,
- const char *string
- )
+static bool
+Is_Sub_String(
+ bool IgnoreCaseFlag,
+ const char *part,
+ const char *string
+)
{
- assert( part && string );
- if ( IgnoreCaseFlag )
+ assert(part && string);
+ if (IgnoreCaseFlag)
{
- while(*string && *part)
+ while (*string && *part)
{
- if (toupper(*string++)!=toupper(*part)) break;
+ if (toupper(*string++) != toupper(*part))
+ break;
part++;
}
}
else
{
- while( *string && *part )
- if (*part != *string++) break;
+ while (*string && *part)
+ if (*part != *string++)
+ break;
part++;
}
- return ( (*part) ? FALSE : TRUE );
+ return ((*part) ? FALSE : TRUE);
}
/*---------------------------------------------------------------------------
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
_nc_Match_Next_Character_In_Item_Name
-(MENU *menu, int ch, ITEM **item)
+(MENU * menu, int ch, ITEM ** item)
{
bool found = FALSE, passed = FALSE;
- int idx, last;
+ int idx, last;
+
+ T((T_CALLED("_nc_Match_Next_Character(%p,%d,%p)"), menu, ch, item));
- assert( menu && item && *item);
+ assert(menu && item && *item);
idx = (*item)->index;
- if (ch && ch!=BS)
+ if (ch && ch != BS)
{
/* if we become to long, we need no further checking : there can't be
- a match ! */
- if ((menu->pindex+1) > menu->namelen)
+ a match ! */
+ if ((menu->pindex + 1) > menu->namelen)
RETURN(E_NO_MATCH);
- Add_Character_To_Pattern(menu,ch);
+ Add_Character_To_Pattern(menu, ch);
/* we artificially position one item back, because in the do...while
- loop we start with the next item. This means, that with a new
- pattern search we always start the scan with the actual item. If
- we do a NEXT_PATTERN oder PREV_PATTERN search, we start with the
- one after or before the actual item. */
+ loop we start with the next item. This means, that with a new
+ pattern search we always start the scan with the actual item. If
+ we do a NEXT_PATTERN oder PREV_PATTERN search, we start with the
+ one after or before the actual item. */
if (--idx < 0)
- idx = menu->nitems-1;
+ idx = menu->nitems - 1;
}
last = idx; /* this closes the cycle */
- do{
- if (ch==BS)
- { /* we have to go backward */
- if (--idx < 0)
- idx = menu->nitems-1;
- }
- else
- { /* otherwise we always go forward */
- if (++idx >= menu->nitems)
- idx = 0;
- }
- if (Is_Sub_String((menu->opt & O_IGNORECASE) != 0,
- menu->pattern,
- menu->items[idx]->name.str)
+ do
+ {
+ if (ch == BS)
+ { /* we have to go backward */
+ if (--idx < 0)
+ idx = menu->nitems - 1;
+ }
+ else
+ { /* otherwise we always go forward */
+ if (++idx >= menu->nitems)
+ idx = 0;
+ }
+ if (Is_Sub_String((menu->opt & O_IGNORECASE) != 0,
+ menu->pattern,
+ menu->items[idx]->name.str)
)
- found = TRUE;
- else
- passed = TRUE;
- } while (!found && (idx != last));
+ found = TRUE;
+ else
+ passed = TRUE;
+ }
+ while (!found && (idx != last));
if (found)
{
- if (!((idx==(*item)->index) && passed))
+ if (!((idx == (*item)->index) && passed))
{
*item = menu->items[idx];
RETURN(E_OK);
}
/* This point is reached, if we fully cycled through the item list
- and the only match we found is the starting item. With a NEXT_PATTERN
- or PREV_PATTERN scan this means, that there was no additional match.
- If we searched with an expanded new pattern, we should never reach
- this point, because if the expanded pattern matches also the actual
- item we will find it in the first attempt (passed==FALSE) and we
- will never cycle through the whole item array.
- */
- assert( ch==0 || ch==BS );
+ and the only match we found is the starting item. With a NEXT_PATTERN
+ or PREV_PATTERN scan this means, that there was no additional match.
+ If we searched with an expanded new pattern, we should never reach
+ this point, because if the expanded pattern matches also the actual
+ item we will find it in the first attempt (passed==FALSE) and we
+ will never cycle through the whole item array.
+ */
+ assert(ch == 0 || ch == BS);
}
else
{
- if (ch && ch!=BS && menu->pindex>0)
+ if (ch && ch != BS && menu->pindex > 0)
{
/* if we had no match with a new pattern, we have to restore it */
Remove_Character_From_Pattern(menu);
| E_NOT_POSTED - menu is not posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-menu_driver (MENU * menu, int c)
+menu_driver(MENU * menu, int c)
{
#define NAVIGATE(dir) \
if (!item->dir)\
ITEM *item;
int my_top_row, rdiff;
+ T((T_CALLED("menu_driver(%p,%d)"), menu, c));
+
if (!menu)
RETURN(E_BAD_ARGUMENT);
- if ( menu->status & _IN_DRIVER )
+ if (menu->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
- if ( !( menu->status & _POSTED ) )
+ if (!(menu->status & _POSTED))
RETURN(E_NOT_POSTED);
item = menu->curitem;
- my_top_row = menu->toprow;
- assert(item);
-
- if ((c > KEY_MAX) && (c<=MAX_MENU_COMMAND))
- {
- if (!((c==REQ_BACK_PATTERN)
- || (c==REQ_NEXT_MATCH) || (c==REQ_PREV_MATCH)))
- {
- assert( menu->pattern );
- Reset_Pattern(menu);
- }
-
- switch(c)
- {
- case REQ_LEFT_ITEM:
+ my_top_row = menu->toprow;
+ assert(item);
+
+ if ((c > KEY_MAX) && (c <= MAX_MENU_COMMAND))
+ {
+ if (!((c == REQ_BACK_PATTERN)
+ || (c == REQ_NEXT_MATCH) || (c == REQ_PREV_MATCH)))
+ {
+ assert(menu->pattern);
+ Reset_Pattern(menu);
+ }
+
+ switch (c)
+ {
+ case REQ_LEFT_ITEM:
/*=================*/
- NAVIGATE(left);
- break;
+ NAVIGATE(left);
+ break;
- case REQ_RIGHT_ITEM:
+ case REQ_RIGHT_ITEM:
/*==================*/
- NAVIGATE(right);
- break;
+ NAVIGATE(right);
+ break;
- case REQ_UP_ITEM:
+ case REQ_UP_ITEM:
/*===============*/
- NAVIGATE(up);
- break;
+ NAVIGATE(up);
+ break;
- case REQ_DOWN_ITEM:
+ case REQ_DOWN_ITEM:
/*=================*/
- NAVIGATE(down);
- break;
+ NAVIGATE(down);
+ break;
- case REQ_SCR_ULINE:
+ case REQ_SCR_ULINE:
/*=================*/
if (my_top_row == 0 || !(item->up))
- result = E_REQUEST_DENIED;
- else
- {
- --my_top_row;
- item = item->up;
- }
- break;
-
- case REQ_SCR_DLINE:
+ result = E_REQUEST_DENIED;
+ else
+ {
+ --my_top_row;
+ item = item->up;
+ }
+ break;
+
+ case REQ_SCR_DLINE:
/*=================*/
if ((my_top_row + menu->arows >= menu->rows) || !(item->down))
- {
- /* only if the menu has less items than rows, we can deny the
- request. Otherwise the epilogue of this routine adjusts the
- top row if necessary */
- result = E_REQUEST_DENIED;
- }
- else {
- my_top_row++;
+ {
+ /* only if the menu has less items than rows, we can deny the
+ request. Otherwise the epilogue of this routine adjusts the
+ top row if necessary */
+ result = E_REQUEST_DENIED;
+ }
+ else
+ {
+ my_top_row++;
item = item->down;
- }
- break;
+ }
+ break;
- case REQ_SCR_DPAGE:
+ case REQ_SCR_DPAGE:
/*=================*/
rdiff = menu->rows - (menu->arows + my_top_row);
- if (rdiff > menu->arows)
- rdiff = menu->arows;
- if (rdiff<=0)
- result = E_REQUEST_DENIED;
- else
- {
- my_top_row += rdiff;
- while(rdiff-- > 0 && item!=(ITEM*)0)
- item = item->down;
- }
- break;
-
- case REQ_SCR_UPAGE:
+ if (rdiff > menu->arows)
+ rdiff = menu->arows;
+ if (rdiff <= 0)
+ result = E_REQUEST_DENIED;
+ else
+ {
+ my_top_row += rdiff;
+ while (rdiff-- > 0 && item != (ITEM *) 0)
+ item = item->down;
+ }
+ break;
+
+ case REQ_SCR_UPAGE:
/*=================*/
rdiff = (menu->arows < my_top_row) ? menu->arows : my_top_row;
- if (rdiff<=0)
- result = E_REQUEST_DENIED;
- else
- {
- my_top_row -= rdiff;
- while(rdiff-- && item!=(ITEM*)0)
- item = item->up;
- }
- break;
+ if (rdiff <= 0)
+ result = E_REQUEST_DENIED;
+ else
+ {
+ my_top_row -= rdiff;
+ while (rdiff-- && item != (ITEM *) 0)
+ item = item->up;
+ }
+ break;
- case REQ_FIRST_ITEM:
+ case REQ_FIRST_ITEM:
/*==================*/
- item = menu->items[0];
- break;
+ item = menu->items[0];
+ break;
- case REQ_LAST_ITEM:
+ case REQ_LAST_ITEM:
/*=================*/
- item = menu->items[menu->nitems-1];
- break;
+ item = menu->items[menu->nitems - 1];
+ break;
- case REQ_NEXT_ITEM:
+ case REQ_NEXT_ITEM:
/*=================*/
- if ((item->index+1)>=menu->nitems)
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[0];
- }
- else
- item = menu->items[item->index + 1];
- break;
-
- case REQ_PREV_ITEM:
+ if ((item->index + 1) >= menu->nitems)
+ {
+ if (menu->opt & O_NONCYCLIC)
+ result = E_REQUEST_DENIED;
+ else
+ item = menu->items[0];
+ }
+ else
+ item = menu->items[item->index + 1];
+ break;
+
+ case REQ_PREV_ITEM:
/*=================*/
- if (item->index<=0)
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[menu->nitems-1];
- }
- else
- item = menu->items[item->index - 1];
- break;
-
- case REQ_TOGGLE_ITEM:
- /*===================*/
- if (menu->opt & O_ONEVALUE)
- {
+ if (item->index <= 0)
+ {
+ if (menu->opt & O_NONCYCLIC)
result = E_REQUEST_DENIED;
- }
- else
- {
- if (menu->curitem->opt & O_SELECTABLE)
- {
- menu->curitem->value = !menu->curitem->value;
- Move_And_Post_Item(menu,menu->curitem);
- _nc_Show_Menu(menu);
- }
- else
- result = E_NOT_SELECTABLE;
- }
- break;
-
- case REQ_CLEAR_PATTERN:
+ else
+ item = menu->items[menu->nitems - 1];
+ }
+ else
+ item = menu->items[item->index - 1];
+ break;
+
+ case REQ_TOGGLE_ITEM:
+ /*===================*/
+ if (menu->opt & O_ONEVALUE)
+ {
+ result = E_REQUEST_DENIED;
+ }
+ else
+ {
+ if (menu->curitem->opt & O_SELECTABLE)
+ {
+ menu->curitem->value = !menu->curitem->value;
+ Move_And_Post_Item(menu, menu->curitem);
+ _nc_Show_Menu(menu);
+ }
+ else
+ result = E_NOT_SELECTABLE;
+ }
+ break;
+
+ case REQ_CLEAR_PATTERN:
/*=====================*/
- /* already cleared in prologue */
- break;
+ /* already cleared in prologue */
+ break;
- case REQ_BACK_PATTERN:
+ case REQ_BACK_PATTERN:
/*====================*/
- if (menu->pindex>0)
- {
- assert(menu->pattern);
- Remove_Character_From_Pattern(menu);
- pos_menu_cursor( menu );
- }
- else
- result = E_REQUEST_DENIED;
- break;
-
- case REQ_NEXT_MATCH:
+ if (menu->pindex > 0)
+ {
+ assert(menu->pattern);
+ Remove_Character_From_Pattern(menu);
+ pos_menu_cursor(menu);
+ }
+ else
+ result = E_REQUEST_DENIED;
+ break;
+
+ case REQ_NEXT_MATCH:
/*==================*/
- assert(menu->pattern);
- if (menu->pattern[0])
- result = _nc_Match_Next_Character_In_Item_Name(menu,0,&item);
- else
- {
- if ((item->index+1)<menu->nitems)
- item=menu->items[item->index+1];
- else
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[0];
- }
- }
- break;
-
- case REQ_PREV_MATCH:
+ assert(menu->pattern);
+ if (menu->pattern[0])
+ result = _nc_Match_Next_Character_In_Item_Name(menu, 0, &item);
+ else
+ {
+ if ((item->index + 1) < menu->nitems)
+ item = menu->items[item->index + 1];
+ else
+ {
+ if (menu->opt & O_NONCYCLIC)
+ result = E_REQUEST_DENIED;
+ else
+ item = menu->items[0];
+ }
+ }
+ break;
+
+ case REQ_PREV_MATCH:
/*==================*/
- assert(menu->pattern);
- if (menu->pattern[0])
- result = _nc_Match_Next_Character_In_Item_Name(menu,BS,&item);
- else
- {
- if (item->index)
- item = menu->items[item->index-1];
- else
- {
- if (menu->opt & O_NONCYCLIC)
- result = E_REQUEST_DENIED;
- else
- item = menu->items[menu->nitems-1];
- }
- }
- break;
-
- default:
+ assert(menu->pattern);
+ if (menu->pattern[0])
+ result = _nc_Match_Next_Character_In_Item_Name(menu, BS, &item);
+ else
+ {
+ if (item->index)
+ item = menu->items[item->index - 1];
+ else
+ {
+ if (menu->opt & O_NONCYCLIC)
+ result = E_REQUEST_DENIED;
+ else
+ item = menu->items[menu->nitems - 1];
+ }
+ }
+ break;
+
+ default:
/*======*/
- result = E_UNKNOWN_COMMAND;
- break;
- }
- }
- else
- { /* not a command */
- if ( !(c & ~((int)MAX_REGULAR_CHARACTER)) && isprint(c) )
- result = _nc_Match_Next_Character_In_Item_Name( menu, c, &item );
+ result = E_UNKNOWN_COMMAND;
+ break;
+ }
+ }
+ else
+ { /* not a command */
+ if (!(c & ~((int)MAX_REGULAR_CHARACTER)) && isprint(UChar(c)))
+ result = _nc_Match_Next_Character_In_Item_Name(menu, c, &item);
#ifdef NCURSES_MOUSE_VERSION
- else if (KEY_MOUSE == c)
- {
- MEVENT event;
- WINDOW* uwin = Get_Menu_UserWin(menu);
-
- getmouse(&event);
- if ((event.bstate & (BUTTON1_CLICKED |
- BUTTON1_DOUBLE_CLICKED |
- BUTTON1_TRIPLE_CLICKED ))
- && wenclose(uwin,event.y, event.x))
- { /* we react only if the click was in the userwin, that means
- * inside the menu display area or at the decoration window.
- */
- WINDOW* sub = Get_Menu_Window(menu);
- int ry = event.y, rx = event.x; /* screen coordinates */
+ else if (KEY_MOUSE == c)
+ {
+ MEVENT event;
+ WINDOW *uwin = Get_Menu_UserWin(menu);
+
+ getmouse(&event);
+ if ((event.bstate & (BUTTON1_CLICKED |
+ BUTTON1_DOUBLE_CLICKED |
+ BUTTON1_TRIPLE_CLICKED))
+ && wenclose(uwin, event.y, event.x))
+ { /* we react only if the click was in the userwin, that means
+ * inside the menu display area or at the decoration window.
+ */
+ WINDOW *sub = Get_Menu_Window(menu);
+ int ry = event.y, rx = event.x; /* screen coordinates */
- result = E_REQUEST_DENIED;
- if (mouse_trafo(&ry,&rx,FALSE))
- { /* rx, ry are now "curses" coordinates */
- if (ry < sub->_begy)
- { /* we clicked above the display region; this is
- * interpreted as "scroll up" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- result = menu_driver(menu,REQ_SCR_ULINE);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- result = menu_driver(menu,REQ_SCR_UPAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- result = menu_driver(menu,REQ_FIRST_ITEM);
- RETURN(result);
- }
- else if (ry >= sub->_begy + sub->_maxy)
- { /* we clicked below the display region; this is
- * interpreted as "scroll down" request
- */
- if (event.bstate & BUTTON1_CLICKED)
- result = menu_driver(menu,REQ_SCR_DLINE);
- else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- result = menu_driver(menu,REQ_SCR_DPAGE);
- else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
- result = menu_driver(menu,REQ_LAST_ITEM);
- RETURN(result);
- }
- else if (wenclose(sub,event.y,event.x))
- { /* Inside the area we try to find the hit item */
- int i,x,y,err;
- ry = event.y; rx = event.x;
- if (wmouse_trafo(sub,&ry,&rx,FALSE))
- {
- for(i=0;i<menu->nitems;i++)
- {
- err = _nc_menu_cursor_pos(menu,menu->items[i],
- &y, &x);
- if (E_OK==err)
- {
- if ((ry==y) &&
- (rx>=x) &&
- (rx < x + menu->itemlen))
- {
- item = menu->items[i];
- result = E_OK;
- break;
- }
- }
- }
- if (E_OK==result)
- { /* We found an item, now we can handle the click.
+ result = E_REQUEST_DENIED;
+ if (mouse_trafo(&ry, &rx, FALSE))
+ { /* rx, ry are now "curses" coordinates */
+ if (ry < sub->_begy)
+ { /* we clicked above the display region; this is
+ * interpreted as "scroll up" request
+ */
+ if (event.bstate & BUTTON1_CLICKED)
+ result = menu_driver(menu, REQ_SCR_ULINE);
+ else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+ result = menu_driver(menu, REQ_SCR_UPAGE);
+ else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
+ result = menu_driver(menu, REQ_FIRST_ITEM);
+ RETURN(result);
+ }
+ else if (ry > sub->_begy + sub->_maxy)
+ { /* we clicked below the display region; this is
+ * interpreted as "scroll down" request
+ */
+ if (event.bstate & BUTTON1_CLICKED)
+ result = menu_driver(menu, REQ_SCR_DLINE);
+ else if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+ result = menu_driver(menu, REQ_SCR_DPAGE);
+ else if (event.bstate & BUTTON1_TRIPLE_CLICKED)
+ result = menu_driver(menu, REQ_LAST_ITEM);
+ RETURN(result);
+ }
+ else if (wenclose(sub, event.y, event.x))
+ { /* Inside the area we try to find the hit item */
+ int i, x, y, err;
+
+ ry = event.y;
+ rx = event.x;
+ if (wmouse_trafo(sub, &ry, &rx, FALSE))
+ {
+ for (i = 0; i < menu->nitems; i++)
+ {
+ err = _nc_menu_cursor_pos(menu, menu->items[i],
+ &y, &x);
+ if (E_OK == err)
+ {
+ if ((ry == y) &&
+ (rx >= x) &&
+ (rx < x + menu->itemlen))
+ {
+ item = menu->items[i];
+ result = E_OK;
+ break;
+ }
+ }
+ }
+ if (E_OK == result)
+ { /* We found an item, now we can handle the click.
* A single click just positions the menu cursor
* to the clicked item. A double click toggles
* the item.
*/
- if (event.bstate & BUTTON1_DOUBLE_CLICKED)
- {
- _nc_New_TopRow_and_CurrentItem(menu,
- my_top_row,
- item);
- menu_driver(menu,REQ_TOGGLE_ITEM);
- result = E_UNKNOWN_COMMAND;
- }
- }
- }
- }
- }
- }
- else
- result = E_REQUEST_DENIED;
- }
+ if (event.bstate & BUTTON1_DOUBLE_CLICKED)
+ {
+ _nc_New_TopRow_and_CurrentItem(menu,
+ my_top_row,
+ item);
+ menu_driver(menu, REQ_TOGGLE_ITEM);
+ result = E_UNKNOWN_COMMAND;
+ }
+ }
+ }
+ }
+ }
+ }
+ else
+ result = E_REQUEST_DENIED;
+ }
#endif /* NCURSES_MOUSE_VERSION */
- else
- result = E_UNKNOWN_COMMAND;
- }
+ else
+ result = E_UNKNOWN_COMMAND;
+ }
- if (E_OK==result)
+ if (E_OK == result)
{
- /* Adjust the top row if it turns out that the current item unfortunately
- doesn't appear in the menu window */
- if ( item->y < my_top_row )
- my_top_row = item->y;
- else if ( item->y >= (my_top_row + menu->arows) )
- my_top_row = item->y - menu->arows + 1;
-
- _nc_New_TopRow_and_CurrentItem( menu, my_top_row, item );
+ /* Adjust the top row if it turns out that the current item unfortunately
+ doesn't appear in the menu window */
+ if (item->y < my_top_row)
+ my_top_row = item->y;
+ else if (item->y >= (my_top_row + menu->arows))
+ my_top_row = item->y - menu->arows + 1;
+
+ _nc_New_TopRow_and_CurrentItem(menu, my_top_row, item);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_format.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_format.c,v 1.15 2004/12/11 23:11:21 tom Exp $")
#define minimum(a,b) ((a)<(b) ? (a): (b))
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int set_menu_format(MENU *menu, int rows, int cols)
-|
+|
| Description : Sets the maximum number of rows and columns of items
| that may be displayed at one time on a menu. If the
| menu contains more items than can be displayed at
| E_POSTED - the menu is already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_format (MENU *menu, int rows, int cols)
+set_menu_format(MENU * menu, int rows, int cols)
{
int total_rows, total_cols;
-
- if (rows<0 || cols<0)
+
+ T((T_CALLED("set_menu_format(%p,%d,%d)"), menu, rows, cols));
+
+ if (rows < 0 || cols < 0)
RETURN(E_BAD_ARGUMENT);
-
+
if (menu)
{
- if ( menu->status & _POSTED )
+ if (menu->status & _POSTED)
RETURN(E_POSTED);
-
+
if (!(menu->items))
RETURN(E_NOT_CONNECTED);
-
- if (rows==0)
+
+ if (rows == 0)
rows = menu->frows;
- if (cols==0)
+ if (cols == 0)
cols = menu->fcols;
-
+
if (menu->pattern)
Reset_Pattern(menu);
-
+
menu->frows = rows;
menu->fcols = cols;
-
- assert(rows>0 && cols>0);
- total_rows = (menu->nitems - 1)/cols + 1;
- total_cols = (menu->status & O_ROWMAJOR) ?
- minimum(menu->nitems,cols) :
- (menu->nitems-1)/total_rows + 1;
-
- menu->rows = total_rows;
- menu->cols = total_cols;
- menu->arows = minimum(total_rows,rows);
- menu->toprow = 0;
+
+ assert(rows > 0 && cols > 0);
+ total_rows = (menu->nitems - 1) / cols + 1;
+ total_cols = (menu->opt & O_ROWMAJOR) ?
+ minimum(menu->nitems, cols) :
+ (menu->nitems - 1) / total_rows + 1;
+
+ menu->rows = total_rows;
+ menu->cols = total_cols;
+ menu->arows = minimum(total_rows, rows);
+ menu->toprow = 0;
menu->curitem = *(menu->items);
assert(menu->curitem);
menu->status |= _LINK_NEEDED;
}
else
{
- if (rows>0) _nc_Default_Menu.frows = rows;
- if (cols>0) _nc_Default_Menu.fcols = cols;
+ if (rows > 0)
+ _nc_Default_Menu.frows = rows;
+ if (cols > 0)
+ _nc_Default_Menu.fcols = cols;
}
-
+
RETURN(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : void menu_format(const MENU *menu, int *rows, int *cols)
-|
+|
| Description : Returns the maximum number of rows and columns that may
| be displayed at one time on menu.
|
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-menu_format (const MENU *menu, int *rows, int *cols)
+menu_format(const MENU * menu, int *rows, int *cols)
{
if (rows)
*rows = Normalize_Menu(menu)->frows;
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_global.c,v 1.16 2003/11/08 20:53:01 tom Exp $")
+MODULE_ID("$Id: m_global.c,v 1.20 2005/04/16 17:30:57 tom Exp $")
static char mark[] = "-";
-
+/* *INDENT-OFF* */
NCURSES_EXPORT_VAR(MENU) _nc_Default_Menu = {
16, /* Nr. of chars high */
1, /* Nr. of chars wide */
(ITEM *)0, /* up */
(ITEM *)0 /* down */
};
+/* *INDENT-ON* */
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : -
+--------------------------------------------------------------------------*/
-INLINE static void ComputeMaximum_NameDesc_Lengths(MENU * menu)
+INLINE static void
+ComputeMaximum_NameDesc_Lengths(MENU * menu)
{
- unsigned MaximumNameLength = 0;
+ unsigned MaximumNameLength = 0;
unsigned MaximumDescriptionLength = 0;
ITEM **items;
-
+
assert(menu && menu->items);
- for( items = menu->items; *items ; items++ )
+ for (items = menu->items; *items; items++)
{
- if (items[0]->name.length > MaximumNameLength )
- MaximumNameLength = items[0]->name.length;
-
+ if (items[0]->name.length > MaximumNameLength)
+ MaximumNameLength = items[0]->name.length;
+
if (items[0]->description.length > MaximumDescriptionLength)
MaximumDescriptionLength = items[0]->description.length;
}
-
+
menu->namelen = MaximumNameLength;
menu->desclen = MaximumDescriptionLength;
+ T(("ComputeMaximum_NameDesc_Lengths %d,%d", menu->namelen, menu->desclen));
}
/*---------------------------------------------------------------------------
|
| Return Values : -
+--------------------------------------------------------------------------*/
-INLINE static void ResetConnectionInfo(MENU *menu, ITEM **items)
+INLINE static void
+ResetConnectionInfo(MENU * menu, ITEM ** items)
{
ITEM **item;
-
+
assert(menu && items);
- for(item=items; *item; item++)
+ for (item = items; *item; item++)
{
(*item)->index = 0;
- (*item)->imenu = (MENU *)0;
+ (*item)->imenu = (MENU *) 0;
}
if (menu->pattern)
free(menu->pattern);
menu->pattern = (char *)0;
- menu->pindex = 0;
- menu->items = (ITEM **)0;
- menu->nitems = 0;
+ menu->pindex = 0;
+ menu->items = (ITEM **) 0;
+ menu->nitems = 0;
}
/*---------------------------------------------------------------------------
| FALSE - connection failed
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-_nc_Connect_Items (MENU *menu, ITEM **items)
+_nc_Connect_Items(MENU * menu, ITEM ** items)
{
ITEM **item;
unsigned int ItemCount = 0;
-
- if ( menu && items )
- {
- for(item=items; *item ; item++)
+
+ if (menu && items)
+ {
+ for (item = items; *item; item++)
{
- if ( (*item)->imenu )
+ if ((*item)->imenu)
{
/* if a item is already connected, reject connection */
break;
}
}
- if (! (*item) )
+ if (!(*item))
/* we reached the end, so there was no connected item */
{
- for(item=items; *item ; item++)
+ for (item = items; *item; item++)
{
if (menu->opt & O_ONEVALUE)
{
}
(*item)->index = ItemCount++;
(*item)->imenu = menu;
- }
+ }
}
}
else
- return(FALSE);
-
+ return (FALSE);
+
if (ItemCount != 0)
{
- menu->items = items;
+ menu->items = items;
menu->nitems = ItemCount;
ComputeMaximum_NameDesc_Lengths(menu);
- if ( (menu->pattern = (char *)malloc( (unsigned)(1 + menu->namelen))) )
+ if ((menu->pattern = typeMalloc(char, (unsigned)(1 + menu->namelen))))
{
- Reset_Pattern(menu);
- set_menu_format(menu,menu->frows,menu->fcols);
+ Reset_Pattern(menu);
+ set_menu_format(menu, menu->frows, menu->fcols);
menu->curitem = *items;
menu->toprow = 0;
- return(TRUE);
+ return (TRUE);
}
}
-
+
/* If we fall through to this point, we have to reset all items connection
and inform about a reject connection */
- ResetConnectionInfo( menu, items );
- return(FALSE);
+ ResetConnectionInfo(menu, items);
+ return (FALSE);
}
/*---------------------------------------------------------------------------
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Disconnect_Items (MENU * menu)
+_nc_Disconnect_Items(MENU * menu)
{
if (menu && menu->items)
- ResetConnectionInfo( menu, menu->items );
+ ResetConnectionInfo(menu, menu->items);
+}
+
+/*---------------------------------------------------------------------------
+| Facility : libnmenu
+| Function : int _nc_Calculate_Text_Width(const TEXT * item)
+|
+| Description : Calculate the number of columns for a TEXT.
+|
+| Return Values : the width
++--------------------------------------------------------------------------*/
+NCURSES_EXPORT(int)
+_nc_Calculate_Text_Width(const TEXT * item /*FIXME: limit length */ )
+{
+#if USE_WIDEC_SUPPORT
+ int result = item->length;
+ int count = mbstowcs(0, item->str, 0);
+ wchar_t *temp = 0;
+
+ T((T_CALLED("_nc_menu_text_width(%p)"), item));
+ if (count > 0
+ && (temp = typeMalloc(wchar_t, 2 + count)) != 0)
+ {
+ int n;
+
+ result = 0;
+ mbstowcs(temp, item->str, (unsigned)count);
+ for (n = 0; n < count; ++n)
+ {
+ int test = wcwidth(temp[n]);
+
+ if (test <= 0)
+ test = 1;
+ result += test;
+ }
+ free(temp);
+ }
+ returnCode(result);
+#else
+ return item->length;
+#endif
+}
+
+/* FIXME: this is experimental, should cache the results but don't want to
+ * modify the MENU struct to do this until it's complete.
+ */
+#if 0 /* USE_WIDEC_SUPPORT */
+static int
+calculate_actual_width(MENU * menu, bool name)
+{
+ int width = 0;
+ int check = 0;
+ ITEM **items;
+
+ assert(menu && menu->items);
+ for (items = menu->items; *items; items++)
+ {
+ if (name)
+ {
+ check = _nc_Calculate_Text_Width(&((*items)->name));
+ }
+ else
+ {
+ check = _nc_Calculate_Text_Width(&((*items)->description));
+ }
+ if (check > width)
+ width = check;
+ }
+
+ T(("calculate_actual_width %s = %d/%d",
+ name ? "name" : "desc",
+ width,
+ name ? menu->namelen : menu->desclen));
+ width += 2; /* FIXME - need this? */
+ return width;
}
+#else
+#define calculate_actual_width(menu, name) (name ? menu->namelen : menu->desclen)
+#endif
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Calculate_Item_Length_and_Width (MENU * menu)
+_nc_Calculate_Item_Length_and_Width(MENU * menu)
{
int l;
-
+
assert(menu);
- menu->height = 1 + menu->spc_rows * (menu->arows - 1);
+ menu->height = 1 + menu->spc_rows * (menu->arows - 1);
+
+ l = calculate_actual_width(menu, TRUE);
+ l += menu->marklen;
+
+ if ((menu->opt & O_SHOWDESC) && (menu->desclen > 0))
+ {
+ l += calculate_actual_width(menu, FALSE);
+ l += menu->spc_desc;
+ }
- l = menu->namelen + menu->marklen;
- if ( (menu->opt & O_SHOWDESC) && (menu->desclen > 0) )
- l += (menu->desclen + menu->spc_desc);
-
menu->itemlen = l;
l *= menu->cols;
- l += (menu->cols-1)*menu->spc_cols; /* for the padding between the columns */
+ l += (menu->cols - 1) * menu->spc_cols; /* for the padding between the columns */
menu->width = l;
-}
+
+ T(("_nc_CalculateItem_Length_and_Width columns %d, item %d, width %d",
+ menu->cols,
+ menu->itemlen,
+ menu->width));
+}
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Link_Items (MENU * menu)
+_nc_Link_Items(MENU * menu)
{
if (menu && menu->items && *(menu->items))
{
- int i,j;
+ int i, j;
ITEM *item;
int Number_Of_Items = menu->nitems;
int col = 0, row = 0;
int Last_in_Row;
int Last_in_Column;
bool cycle = (menu->opt & O_NONCYCLIC) ? FALSE : TRUE;
-
+
menu->status &= ~_LINK_NEEDED;
-
+
if (menu->opt & O_ROWMAJOR)
{
int Number_Of_Columns = menu->cols;
-
- for(i=0; i < Number_Of_Items; i++)
+
+ for (i = 0; i < Number_Of_Items; i++)
{
item = menu->items[i];
-
- Last_in_Row = row * Number_Of_Columns + (Number_Of_Columns-1);
-
- item->left = (col) ?
- /* if we are not in the leftmost column, we can use the
- predecessor in the items array */
- menu->items[i-1] :
- (cycle ? menu->items[(Last_in_Row>=Number_Of_Items) ?
- Number_Of_Items-1:
- Last_in_Row] :
- (ITEM *)0 );
-
- item->right = ( (col < (Number_Of_Columns-1)) &&
- ((i+1) < Number_Of_Items)
- ) ?
- menu->items[i+1] :
- ( cycle ? menu->items[row * Number_Of_Columns] :
- (ITEM *)0
- );
-
- Last_in_Column = (menu->rows-1) * Number_Of_Columns + col;
-
- item->up = (row) ? menu->items[i-Number_Of_Columns] :
- (cycle ? menu->items[(Last_in_Column>=Number_Of_Items) ?
- Number_Of_Items-1 :
- Last_in_Column] :
- (ITEM *)0);
-
- item->down = ( (i+Number_Of_Columns) < Number_Of_Items )
- ?
- menu->items[i + Number_Of_Columns] :
- (cycle ? menu->items[(row+1)<menu->rows ?
- Number_Of_Items-1:col] :
- (ITEM *)0);
+
+ Last_in_Row = row * Number_Of_Columns + (Number_Of_Columns - 1);
+
+ item->left = (col) ?
+ /* if we are not in the leftmost column, we can use the
+ predecessor in the items array */
+ menu->items[i - 1] :
+ (cycle ? menu->items[(Last_in_Row >= Number_Of_Items) ?
+ Number_Of_Items - 1 :
+ Last_in_Row] :
+ (ITEM *) 0);
+
+ item->right = ((col < (Number_Of_Columns - 1)) &&
+ ((i + 1) < Number_Of_Items)
+ )?
+ menu->items[i + 1] :
+ (cycle ? menu->items[row * Number_Of_Columns] :
+ (ITEM *) 0
+ );
+
+ Last_in_Column = (menu->rows - 1) * Number_Of_Columns + col;
+
+ item->up = (row) ? menu->items[i - Number_Of_Columns] :
+ (cycle ? menu->items[(Last_in_Column >= Number_Of_Items) ?
+ Number_Of_Items - 1 :
+ Last_in_Column] :
+ (ITEM *) 0);
+
+ item->down = ((i + Number_Of_Columns) < Number_Of_Items)
+ ?
+ menu->items[i + Number_Of_Columns] :
+ (cycle ? menu->items[(row + 1) < menu->rows ?
+ Number_Of_Items - 1 : col] :
+ (ITEM *) 0);
item->x = col;
item->y = row;
- if ( ++col == Number_Of_Columns )
+ if (++col == Number_Of_Columns)
{
row++;
col = 0;
else
{
int Number_Of_Rows = menu->rows;
-
- for(j=0; j<Number_Of_Items; j++)
+
+ for (j = 0; j < Number_Of_Items; j++)
{
- item = menu->items[i=(col * Number_Of_Rows + row)];
-
- Last_in_Column = (menu->cols-1) * Number_Of_Rows + row;
-
- item->left = (col) ?
+ item = menu->items[i = (col * Number_Of_Rows + row)];
+
+ Last_in_Column = (menu->cols - 1) * Number_Of_Rows + row;
+
+ item->left = (col) ?
menu->items[i - Number_Of_Rows] :
- (cycle ? (Last_in_Column >= Number_Of_Items ) ?
- menu->items[Last_in_Column-Number_Of_Rows] :
- menu->items[Last_in_Column] :
- (ITEM *)0 );
-
- item->right = ((i + Number_Of_Rows) <Number_Of_Items)
- ?
- menu->items[i + Number_Of_Rows] :
- (cycle ? menu->items[row] : (ITEM *)0);
-
+ (cycle ? (Last_in_Column >= Number_Of_Items) ?
+ menu->items[Last_in_Column - Number_Of_Rows] :
+ menu->items[Last_in_Column] :
+ (ITEM *) 0);
+
+ item->right = ((i + Number_Of_Rows) < Number_Of_Items)
+ ?
+ menu->items[i + Number_Of_Rows] :
+ (cycle ? menu->items[row] : (ITEM *) 0);
+
Last_in_Row = col * Number_Of_Rows + (Number_Of_Rows - 1);
-
- item->up = (row) ?
- menu->items[i-1] :
- (cycle ?
- menu->items[(Last_in_Row>=Number_Of_Items) ?
- Number_Of_Items-1:
- Last_in_Row] :
- (ITEM *)0);
-
- item->down = (row < (Number_Of_Rows-1))
- ?
- (menu->items[((i+1)<Number_Of_Items) ?
- i+1 :
- (col-1)*Number_Of_Rows + row + 1]) :
- (cycle ?
- menu->items[col * Number_Of_Rows] :
- (ITEM *)0
- );
-
+
+ item->up = (row) ?
+ menu->items[i - 1] :
+ (cycle ?
+ menu->items[(Last_in_Row >= Number_Of_Items) ?
+ Number_Of_Items - 1 :
+ Last_in_Row] :
+ (ITEM *) 0);
+
+ item->down = (row < (Number_Of_Rows - 1))
+ ?
+ (menu->items[((i + 1) < Number_Of_Items) ?
+ i + 1 :
+ (col - 1) * Number_Of_Rows + row + 1]) :
+ (cycle ?
+ menu->items[col * Number_Of_Rows] :
+ (ITEM *) 0
+ );
+
item->x = col;
item->y = row;
- if ( (++row) == Number_Of_Rows )
+ if ((++row) == Number_Of_Rows)
{
col++;
row = 0;
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Show_Menu (const MENU *menu)
+_nc_Show_Menu(const MENU * menu)
{
WINDOW *win;
int maxy, maxx;
-
+
assert(menu);
- if ( (menu->status & _POSTED) && !(menu->status & _IN_DRIVER) )
+ if ((menu->status & _POSTED) && !(menu->status & _IN_DRIVER))
{
/* adjust the internal subwindow to start on the current top */
assert(menu->sub);
- mvderwin(menu->sub,menu->spc_rows * menu->toprow,0);
+ mvderwin(menu->sub, menu->spc_rows * menu->toprow, 0);
win = Get_Menu_Window(menu);
-
+
maxy = getmaxy(win);
- maxx = getmaxx(win);
-
- if (menu->height < maxy)
+ maxx = getmaxx(win);
+
+ if (menu->height < maxy)
maxy = menu->height;
- if (menu->width < maxx)
+ if (menu->width < maxx)
maxx = menu->width;
-
- copywin(menu->sub,win,0,0,0,0,maxy-1,maxx-1,0);
+
+ copywin(menu->sub, win, 0, 0, 0, 0, maxy - 1, maxx - 1, 0);
pos_menu_cursor(menu);
- }
-}
+ }
+}
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_New_TopRow_and_CurrentItem
-(MENU *menu, int new_toprow, ITEM *new_current_item)
+ _nc_New_TopRow_and_CurrentItem
+ (MENU * menu, int new_toprow, ITEM * new_current_item)
{
ITEM *cur_item;
bool mterm_called = FALSE;
bool iterm_called = FALSE;
-
+
assert(menu);
if (menu->status & _POSTED)
{
if (new_current_item != menu->curitem)
{
- Call_Hook(menu,itemterm);
+ Call_Hook(menu, itemterm);
iterm_called = TRUE;
}
if (new_toprow != menu->toprow)
{
- Call_Hook(menu,menuterm);
+ Call_Hook(menu, menuterm);
mterm_called = TRUE;
- }
-
- cur_item = menu->curitem;
+ }
+
+ cur_item = menu->curitem;
assert(cur_item);
- menu->toprow = new_toprow;
- menu->curitem = new_current_item;
-
+ menu->toprow = new_toprow;
+ menu->curitem = new_current_item;
+
if (mterm_called)
{
- Call_Hook(menu,menuinit);
+ Call_Hook(menu, menuinit);
}
if (iterm_called)
{
/* this means, move from the old current_item to the new one... */
- Move_To_Current_Item( menu, cur_item );
- Call_Hook(menu,iteminit);
+ Move_To_Current_Item(menu, cur_item);
+ Call_Hook(menu, iteminit);
}
if (mterm_called || iterm_called)
{
pos_menu_cursor(menu);
}
else
- { /* if we are not posted, this is quite simple */
- menu->toprow = new_toprow;
+ { /* if we are not posted, this is quite simple */
+ menu->toprow = new_toprow;
menu->curitem = new_current_item;
}
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_hook.c,v 1.11 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_hook.c,v 1.14 2004/12/25 21:39:52 tom 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 (MENU *menu, Menu_Hook func )\
{\
+ T((T_CALLED("set_" #typ "_" #name "(%p,%p)"), menu, func));\
(Normalize_Menu(menu) -> typ ## name = func );\
RETURN(E_OK);\
}
#define GEN_HOOK_GET_FUNCTION( typ, name ) \
NCURSES_IMPEXP Menu_Hook NCURSES_API typ ## _ ## name ( const MENU *menu )\
{\
- return (Normalize_Menu(menu) -> typ ## name);\
+ T((T_CALLED(#typ "_" #name "(%p)"), menu));\
+ returnMenuHook(Normalize_Menu(menu) -> typ ## name);\
}
/*---------------------------------------------------------------------------
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, init )
+GEN_HOOK_SET_FUNCTION(menu, init)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : Menu init function address or NULL
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, init )
+GEN_HOOK_GET_FUNCTION(menu, init)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( menu, term )
+GEN_HOOK_SET_FUNCTION(menu, term)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : Menu finalization function address or NULL
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( menu, term )
+GEN_HOOK_GET_FUNCTION(menu, term)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, init )
+GEN_HOOK_SET_FUNCTION(item, init)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : Item init function address or NULL
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, init )
+GEN_HOOK_GET_FUNCTION(item, init)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
-GEN_HOOK_SET_FUNCTION( item, term )
+GEN_HOOK_SET_FUNCTION(item, term)
/*---------------------------------------------------------------------------
| Facility : libnmenu
|
| Return Values : Item finalization function address or NULL
+--------------------------------------------------------------------------*/
-GEN_HOOK_GET_FUNCTION( item, term )
+GEN_HOOK_GET_FUNCTION(item, term)
/* m_hook.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_cur.c,v 1.14 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_item_cur.c,v 1.17 2004/12/25 21:57:38 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_current_item (MENU * menu, ITEM * item)
+set_current_item(MENU * menu, ITEM * item)
{
- if (menu && item && (item->imenu==menu))
+ T((T_CALLED("set_current_item(%p,%p)"), menu, item));
+
+ if (menu && item && (item->imenu == menu))
{
- if ( menu->status & _IN_DRIVER )
+ if (menu->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
-
- assert( menu->curitem );
+
+ assert(menu->curitem);
if (item != menu->curitem)
{
if (menu->status & _LINK_NEEDED)
assert(menu->pattern);
Reset_Pattern(menu);
/* adjust the window to make item visible and update the menu */
- Adjust_Current_Item(menu,menu->toprow,item);
+ Adjust_Current_Item(menu, menu->toprow, item);
}
}
else
RETURN(E_BAD_ARGUMENT);
-
+
RETURN(E_OK);
}
| Return Values : Item pointer or NULL if failure
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(ITEM *)
-current_item (const MENU * menu)
+current_item(const MENU * menu)
{
- return (menu && menu->items) ? menu->curitem : (ITEM *)0;
+ T((T_CALLED("current_item(%p)"), menu));
+ returnItem((menu && menu->items) ? menu->curitem : (ITEM *) 0);
}
/*---------------------------------------------------------------------------
| Return Values : The index or ERR if this is an invalid item pointer
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-item_index (const ITEM *item)
+item_index(const ITEM * item)
{
- return (item && item->imenu) ? item->index : ERR;
+ T((T_CALLED("item_index(%p)"), item));
+ returnCode((item && item->imenu) ? item->index : ERR);
}
/* m_item_cur.c ends here */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_nam.c,v 1.12 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_item_nam.c,v 1.14 2004/12/25 21:41:54 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : See above; returns NULL if item is invalid
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(const char *)
-item_name (const ITEM * item)
+item_name(const ITEM * item)
{
- return ((item) ? item->name.str : (char *)0);
+ T((T_CALLED("item_name(%p)"), item));
+ returnCPtr((item) ? item->name.str : (char *)0);
}
-
+
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Function : char *item_description(const ITEM *item)
| Return Values : See above; Returns NULL if item is invalid
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(const char *)
-item_description (const ITEM * item)
+item_description(const ITEM * item)
{
- return ((item) ? item->description.str : (char *)0);
+ T((T_CALLED("item_description(%p)"), item));
+ returnCPtr((item) ? item->description.str : (char *)0);
}
/* m_item_nam.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_new.c,v 1.14 2003/10/25 15:23:42 tom Exp $")
+#if USE_WIDEC_SUPPORT
+#include <wctype.h>
+#endif
+
+MODULE_ID("$Id: m_item_new.c,v 1.25 2005/04/16 22:24:38 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : TRUE - if string is printable
| FALSE - if string contains non-printable characters
+--------------------------------------------------------------------------*/
-static bool Is_Printable_String(const char *s)
+static bool
+Is_Printable_String(const char *s)
{
+ int result = TRUE;
+
+#if USE_WIDEC_SUPPORT
+ int count = mbstowcs(0, s, 0);
+ wchar_t *temp = 0;
+
+ assert(s);
+
+ if (count > 0
+ && (temp = typeCalloc(wchar_t, (2 + count))) != 0)
+ {
+ int n;
+
+ mbstowcs(temp, s, (unsigned)count);
+ for (n = 0; n < count; ++n)
+ if (!iswprint(temp[n]))
+ {
+ result = FALSE;
+ break;
+ }
+ free(temp);
+ }
+#else
assert(s);
- while(*s)
+ while (*s)
{
- if (!isprint((unsigned char)*s))
- return FALSE;
+ if (!isprint(UChar(*s)))
+ {
+ result = FALSE;
+ break;
+ }
s++;
}
- return TRUE;
+#endif
+ return result;
}
/*---------------------------------------------------------------------------
| Return Values : The item pointer or NULL if creation failed.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(ITEM *)
-new_item (const char *name, const char *description)
+new_item(const char *name, const char *description)
{
ITEM *item;
-
- if ( !name || (*name == '\0') || !Is_Printable_String(name) )
+
+ T((T_CALLED("new_item(\"%s\", \"%s\")"),
+ name ? name : "",
+ description ? description : ""));
+
+ if (!name || (*name == '\0') || !Is_Printable_String(name))
{
- item = (ITEM *)0;
- SET_ERROR( E_BAD_ARGUMENT );
+ item = (ITEM *) 0;
+ SET_ERROR(E_BAD_ARGUMENT);
}
else
{
- item = (ITEM *)calloc(1,sizeof(ITEM));
+ item = (ITEM *) calloc(1, sizeof(ITEM));
if (item)
{
- *item = _nc_Default_Item; /* hope we have struct assignment */
-
- item->name.length = strlen(name);
- item->name.str = name;
+ *item = _nc_Default_Item; /* hope we have struct assignment */
+
+ item->name.length = strlen(name);
+ item->name.str = name;
- if (description && (*description != '\0') &&
+ if (description && (*description != '\0') &&
Is_Printable_String(description))
{
- item->description.length = strlen(description);
- item->description.str = description;
+ item->description.length = strlen(description);
+ item->description.str = description;
}
else
{
item->description.length = 0;
- item->description.str = (char *)0;
+ item->description.str = (char *)0;
}
}
else
- SET_ERROR( E_SYSTEM_ERROR );
- }
- return(item);
+ SET_ERROR(E_SYSTEM_ERROR);
+ }
+ returnItem(item);
}
/*---------------------------------------------------------------------------
| E_CONNECTED - item is still connected to a menu
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-free_item (ITEM * item)
+free_item(ITEM * item)
{
+ T((T_CALLED("free_item(%p)"), item));
+
if (!item)
- RETURN( E_BAD_ARGUMENT );
+ RETURN(E_BAD_ARGUMENT);
if (item->imenu)
- RETURN( E_CONNECTED );
-
+ RETURN(E_CONNECTED);
+
free(item);
- RETURN( E_OK );
+ RETURN(E_OK);
}
/*---------------------------------------------------------------------------
| E_SYSTEM_ERROR - no memory to store mark
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_mark (MENU * menu, const char * mark)
+set_menu_mark(MENU * menu, const char *mark)
{
- int l;
+ unsigned l;
+
+ T((T_CALLED("set_menu_mark(%p,%s)"), menu, _nc_visbuf(mark)));
- if ( mark && (*mark != '\0') && Is_Printable_String(mark) )
+ if (mark && (*mark != '\0') && Is_Printable_String(mark))
l = strlen(mark);
else
l = 0;
- if ( menu )
+ if (menu)
{
char *old_mark = menu->mark;
unsigned short old_status = menu->status;
{
/* If the menu is already posted, the geometry is fixed. Then
we can only accept a mark with exactly the same length */
- if (menu->marklen != l)
+ if (menu->marklen != (int)l)
RETURN(E_BAD_ARGUMENT);
- }
+ }
menu->marklen = l;
if (l)
{
- menu->mark = (char *)malloc(l+1);
+ menu->mark = (char *)malloc(l + 1);
if (menu->mark)
{
strcpy(menu->mark, mark);
}
else
menu->mark = (char *)0;
-
+
if ((old_status & _MARK_ALLOCATED) && old_mark)
free(old_mark);
if (menu->status & _POSTED)
{
- _nc_Draw_Menu( menu );
- _nc_Show_Menu( menu );
+ _nc_Draw_Menu(menu);
+ _nc_Show_Menu(menu);
}
else
{
/* Recalculate the geometry */
- _nc_Calculate_Item_Length_and_Width( menu );
+ _nc_Calculate_Item_Length_and_Width(menu);
}
}
else
{
- return set_menu_mark(&_nc_Default_Menu, mark);
+ returnCode(set_menu_mark(&_nc_Default_Menu, mark));
}
RETURN(E_OK);
}
| Return Values : The marker string pointer or NULL if no marker defined
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(const char *)
-menu_mark (const MENU * menu)
+menu_mark(const MENU * menu)
{
- return Normalize_Menu( menu )->mark;
+ T((T_CALLED("menu_mark(%p)"), menu));
+ returnPtr(Normalize_Menu(menu)->mark);
}
/* m_item_new.c */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_opt.c,v 1.14 2003/11/08 20:50:19 tom Exp $")
+MODULE_ID("$Id: m_item_opt.c,v 1.17 2004/12/25 21:32:54 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_BAD_ARGUMENT - invalid item options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_item_opts (ITEM *item, Item_Options opts)
-{
+set_item_opts(ITEM * item, Item_Options opts)
+{
+ T((T_CALLED("set_menu_opts(%p,%d)"), item, opts));
+
opts &= ALL_ITEM_OPTS;
if (opts & ~ALL_ITEM_OPTS)
RETURN(E_BAD_ARGUMENT);
-
+
if (item)
{
if (item->opt != opts)
- {
+ {
MENU *menu = item->imenu;
-
+
item->opt = opts;
-
+
if ((!(opts & O_SELECTABLE)) && item->value)
item->value = FALSE;
-
+
if (menu && (menu->status & _POSTED))
{
- Move_And_Post_Item( menu, item );
+ Move_And_Post_Item(menu, item);
_nc_Show_Menu(menu);
}
}
}
else
_nc_Default_Item.opt = opts;
-
+
RETURN(E_OK);
}
| E_BAD_ARGUMENT - invalid options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-item_opts_off (ITEM *item, Item_Options opts)
-{
- ITEM *citem = item; /* use a copy because set_item_opts must detect
- NULL item itself to adjust its behavior */
+item_opts_off(ITEM * item, Item_Options opts)
+{
+ ITEM *citem = item; /* use a copy because set_item_opts must detect
+
+ NULL item itself to adjust its behavior */
+
+ T((T_CALLED("item_opts_off(%p,%d)"), item, opts));
if (opts & ~ALL_ITEM_OPTS)
RETURN(E_BAD_ARGUMENT);
else
{
- Normalize_Item(citem);
+ Normalize_Item(citem);
opts = citem->opt & ~(opts & ALL_ITEM_OPTS);
- return set_item_opts( item, opts );
+ returnCode(set_item_opts(item, opts));
}
}
| E_BAD_ARGUMENT - invalid options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-item_opts_on (ITEM *item, Item_Options opts)
+item_opts_on(ITEM * item, Item_Options opts)
{
- ITEM *citem = item; /* use a copy because set_item_opts must detect
- NULL item itself to adjust its behavior */
-
+ ITEM *citem = item; /* use a copy because set_item_opts must detect
+
+ NULL item itself to adjust its behavior */
+
+ T((T_CALLED("item_opts_on(%p,%d)"), item, opts));
+
opts &= ALL_ITEM_OPTS;
if (opts & ~ALL_ITEM_OPTS)
RETURN(E_BAD_ARGUMENT);
{
Normalize_Item(citem);
opts = citem->opt | opts;
- return set_item_opts( item, opts );
+ returnCode(set_item_opts(item, opts));
}
}
| Return Values : Items options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(Item_Options)
-item_opts (const ITEM * item)
+item_opts(const ITEM * item)
{
- return (ALL_ITEM_OPTS & Normalize_Item(item)->opt);
+ T((T_CALLED("item_opts(%p)"), item));
+ returnItemOpts(ALL_ITEM_OPTS & Normalize_Item(item)->opt);
}
/* m_item_opt.c ends here */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_top.c,v 1.8 2003/11/08 20:51:53 tom Exp $")
+MODULE_ID("$Id: m_item_top.c,v 1.10 2004/12/11 23:29:34 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_NOT_CONNECTED - there are no items for the menu
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_top_row (MENU * menu, int row)
+set_top_row(MENU * menu, int row)
{
ITEM *item;
-
+
+ T((T_CALLED("set_top_row(%p,%d)"), menu, row));
+
if (menu)
{
- if ( menu->status & _IN_DRIVER )
+ if (menu->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
- if (menu->items == (ITEM **)0)
+ if (menu->items == (ITEM **) 0)
RETURN(E_NOT_CONNECTED);
-
- if ((row<0) || (row > (menu->rows - menu->arows)))
+
+ if ((row < 0) || (row > (menu->rows - menu->arows)))
RETURN(E_BAD_ARGUMENT);
}
else
RETURN(E_BAD_ARGUMENT);
-
+
if (row != menu->toprow)
{
- if (menu->status & _LINK_NEEDED)
+ if (menu->status & _LINK_NEEDED)
_nc_Link_Items(menu);
-
- item = menu->items[ (menu->opt&O_ROWMAJOR) ? (row*menu->cols) : row ];
+
+ item = menu->items[(menu->opt & O_ROWMAJOR) ? (row * menu->cols) : row];
assert(menu->pattern);
Reset_Pattern(menu);
_nc_New_TopRow_and_CurrentItem(menu, row, item);
}
-
- RETURN(E_OK);
+
+ RETURN(E_OK);
}
/*---------------------------------------------------------------------------
| Return Values : The row number or ERR if there is no row
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-top_row (const MENU * menu)
+top_row(const MENU * menu)
{
+ T((T_CALLED("top_row(%p)"), menu));
if (menu && menu->items && *(menu->items))
{
- assert( (menu->toprow>=0) && (menu->toprow < menu->rows) );
- return menu->toprow;
+ assert((menu->toprow >= 0) && (menu->toprow < menu->rows));
+ returnCode(menu->toprow);
}
else
- return(ERR);
+ returnCode(ERR);
}
/* m_item_top.c ends here */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_use.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_item_use.c,v 1.16 2004/12/25 21:33:31 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_item_userptr (ITEM * item, void * userptr)
+set_item_userptr(ITEM * item, void *userptr)
{
+ T((T_CALLED("set_item_userptr(%p,%p)"), item, userptr));
Normalize_Item(item)->userptr = userptr;
- RETURN( E_OK );
+ RETURN(E_OK);
}
/*---------------------------------------------------------------------------
| NULL is returned.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void *)
-item_userptr (const ITEM * item)
+item_userptr(const ITEM * item)
{
- return Normalize_Item(item)->userptr;
+ T((T_CALLED("item_userptr(%p)"), item));
+ returnVoidPtr(Normalize_Item(item)->userptr);
}
/* m_item_use.c */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_val.c,v 1.12 2003/11/08 20:51:29 tom Exp $")
+MODULE_ID("$Id: m_item_val.c,v 1.14 2004/12/11 23:29:34 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_REQUEST_DENIED - not selectable or single valued menu
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_item_value (ITEM *item, bool value)
+set_item_value(ITEM * item, bool value)
{
MENU *menu;
-
+
+ T((T_CALLED("set_item_value(%p,%d)"), item, value));
if (item)
{
menu = item->imenu;
-
+
if ((!(item->opt & O_SELECTABLE)) ||
- (menu && (menu->opt & O_ONEVALUE)))
+ (menu && (menu->opt & O_ONEVALUE)))
RETURN(E_REQUEST_DENIED);
-
+
if (item->value ^ value)
{
item->value = value ? TRUE : FALSE;
{
if (menu->status & _POSTED)
{
- Move_And_Post_Item(menu,item);
+ Move_And_Post_Item(menu, item);
_nc_Show_Menu(menu);
}
}
}
else
_nc_Default_Item.value = value;
-
+
RETURN(E_OK);
}
| FALSE - if item is not selected
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-item_value (const ITEM *item)
+item_value(const ITEM * item)
{
- return ((Normalize_Item(item)->value) ? TRUE : FALSE);
+ T((T_CALLED("item_value(%p)"), item));
+ returnBool((Normalize_Item(item)->value) ? TRUE : FALSE);
}
/* m_item_val.c ends here */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_item_vis.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_item_vis.c,v 1.15 2004/12/25 21:40:09 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| FALSE if invisible
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(bool)
-item_visible (const ITEM * item)
+item_visible(const ITEM * item)
{
MENU *menu;
-
- if ( item &&
- (menu=item->imenu) &&
- (menu->status & _POSTED) &&
- ( (menu->toprow + menu->arows) > (item->y) ) &&
- ( item->y >= menu->toprow) )
- return TRUE;
+
+ T((T_CALLED("item_visible(%p)"), item));
+ if (item &&
+ (menu = item->imenu) &&
+ (menu->status & _POSTED) &&
+ ((menu->toprow + menu->arows) > (item->y)) &&
+ (item->y >= menu->toprow))
+ returnBool(TRUE);
else
- return FALSE;
+ returnBool(FALSE);
}
/* m_item_vis.c ends here */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_items.c,v 1.12 2003/11/08 20:50:58 tom Exp $")
+MODULE_ID("$Id: m_items.c,v 1.16 2005/01/16 01:02:23 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| passed to the function
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_items (MENU * menu, ITEM ** items)
+set_menu_items(MENU * menu, ITEM ** items)
{
+ T((T_CALLED("set_menu_items(%p,%p)"), menu, items));
+
if (!menu || (items && !(*items)))
RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _POSTED )
+
+ if (menu->status & _POSTED)
RETURN(E_POSTED);
-
+
if (menu->items)
_nc_Disconnect_Items(menu);
-
+
if (items)
{
- if(!_nc_Connect_Items( menu, items ))
+ if (!_nc_Connect_Items(menu, items))
RETURN(E_CONNECTED);
}
-
+
menu->items = items;
RETURN(E_OK);
-}
+}
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : NULL on error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(ITEM **)
-menu_items (const MENU *menu)
+menu_items(const MENU * menu)
{
- return(menu ? menu->items : (ITEM **)0);
+ T((T_CALLED("menu_items(%p)"), menu));
+ returnItemPtr(menu ? menu->items : (ITEM **) 0);
}
/*---------------------------------------------------------------------------
| Return Values : Number of items or -1 to indicate error.
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-item_count (const MENU *menu)
+item_count(const MENU * menu)
{
- return(menu ? menu->nitems : -1);
+ T((T_CALLED("item_count(%p)"), menu));
+ returnCode(menu ? menu->nitems : -1);
}
/* m_items.c ends here */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_new.c,v 1.13 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_new.c,v 1.16 2004/12/25 21:57:53 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : NULL on error
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(MENU *)
-new_menu (ITEM ** items)
+new_menu(ITEM ** items)
{
- MENU *menu = (MENU *)calloc(1,sizeof(MENU));
-
+ MENU *menu = (MENU *) calloc(1, sizeof(MENU));
+
+ T((T_CALLED("new_menu(%p)"), items));
if (menu)
{
*menu = _nc_Default_Menu;
menu->cols = menu->fcols;
if (items && *items)
{
- if (!_nc_Connect_Items(menu,items))
+ if (!_nc_Connect_Items(menu, items))
{
free(menu);
- menu = (MENU *)0;
+ menu = (MENU *) 0;
}
}
}
if (!menu)
SET_ERROR(E_SYSTEM_ERROR);
- return(menu);
+ returnMenu(menu);
}
/*---------------------------------------------------------------------------
| E_POSTED - Menu is already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-free_menu (MENU * menu)
+free_menu(MENU * menu)
{
+ T((T_CALLED("free_menu(%p)"), menu));
if (!menu)
RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _POSTED )
+
+ if (menu->status & _POSTED)
RETURN(E_POSTED);
-
- if (menu->items)
+
+ if (menu->items)
_nc_Disconnect_Items(menu);
-
+
if ((menu->status & _MARK_ALLOCATED) && menu->mark)
free(menu->mark);
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_opts.c,v 1.16 2003/11/08 20:50:19 tom Exp $")
+MODULE_ID("$Id: m_opts.c,v 1.19 2004/12/25 21:36:12 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_POSTED - menu is already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_opts (MENU * menu, Menu_Options opts)
+set_menu_opts(MENU * menu, Menu_Options opts)
{
+ T((T_CALLED("set_menu_opts(%p,%d)"), menu, opts));
+
opts &= ALL_MENU_OPTS;
if (opts & ~ALL_MENU_OPTS)
if (menu)
{
- if ( menu->status & _POSTED )
+ if (menu->status & _POSTED)
RETURN(E_POSTED);
- if ( (opts&O_ROWMAJOR) != (menu->opt&O_ROWMAJOR))
+ if ((opts & O_ROWMAJOR) != (menu->opt & O_ROWMAJOR))
{
/* we need this only if the layout really changed ... */
if (menu->items && menu->items[0])
{
- menu->toprow = 0;
+ menu->toprow = 0;
menu->curitem = menu->items[0];
assert(menu->curitem);
- set_menu_format( menu, menu->frows, menu->fcols );
+ set_menu_format(menu, menu->frows, menu->fcols);
}
}
{
ITEM **item;
- if ( ((item=menu->items) != (ITEM**)0) )
- for(;*item;item++)
+ if (((item = menu->items) != (ITEM **) 0))
+ for (; *item; item++)
(*item)->value = FALSE;
}
if (opts & O_SHOWDESC) /* this also changes the geometry */
- _nc_Calculate_Item_Length_and_Width( menu );
+ _nc_Calculate_Item_Length_and_Width(menu);
}
else
_nc_Default_Menu.opt = opts;
| E_POSTED - menu is already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-menu_opts_off (MENU *menu, Menu_Options opts)
+menu_opts_off(MENU * menu, Menu_Options opts)
{
- MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
- NULL menu itself to adjust its behavior */
+ MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
+
+ NULL menu itself to adjust its behavior */
+
+ T((T_CALLED("menu_opts_off(%p,%d)"), menu, opts));
opts &= ALL_MENU_OPTS;
if (opts & ~ALL_MENU_OPTS)
{
Normalize_Menu(cmenu);
opts = cmenu->opt & ~opts;
- return set_menu_opts( menu, opts );
+ returnCode(set_menu_opts(menu, opts));
}
}
| E_POSTED - menu is already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-menu_opts_on (MENU * menu, Menu_Options opts)
+menu_opts_on(MENU * menu, Menu_Options opts)
{
- MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
- NULL menu itself to adjust its behavior */
+ MENU *cmenu = menu; /* use a copy because set_menu_opts must detect
+
+ NULL menu itself to adjust its behavior */
+
+ T((T_CALLED("menu_opts_on(%p,%d)"), menu, opts));
opts &= ALL_MENU_OPTS;
if (opts & ~ALL_MENU_OPTS)
{
Normalize_Menu(cmenu);
opts = cmenu->opt | opts;
- return set_menu_opts(menu, opts);
+ returnCode(set_menu_opts(menu, opts));
}
}
| Return Values : Menu options
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(Menu_Options)
-menu_opts (const MENU *menu)
+menu_opts(const MENU * menu)
{
- return (ALL_MENU_OPTS & Normalize_Menu( menu )->opt);
+ T((T_CALLED("menu_opts(%p)"), menu));
+ returnMenuOpts(ALL_MENU_OPTS & Normalize_Menu(menu)->opt);
}
/* m_opts.c ends here */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_pad.c,v 1.7 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_pad.c,v 1.10 2004/12/25 21:40:58 tom Exp $")
/* Macro to redraw menu if it is posted and changed */
#define Refresh_Menu(menu) \
| E_BAD_ARGUMENT - an invalid value has been passed
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_pad (MENU *menu, int pad)
+set_menu_pad(MENU * menu, int pad)
{
- bool do_refresh = (menu != (MENU*)0);
+ bool do_refresh = (menu != (MENU *) 0);
- if (!isprint((unsigned char)pad))
+ T((T_CALLED("set_menu_pad(%p,%d)"), menu, pad));
+
+ if (!isprint(UChar(pad)))
RETURN(E_BAD_ARGUMENT);
-
- Normalize_Menu( menu );
+
+ Normalize_Menu(menu);
menu->pad = pad;
-
+
if (do_refresh)
- Refresh_Menu( menu );
+ Refresh_Menu(menu);
RETURN(E_OK);
}
| Return Values : The pad character
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-menu_pad (const MENU * menu)
+menu_pad(const MENU * menu)
{
- return (Normalize_Menu( menu ) -> pad);
+ T((T_CALLED("menu_pad(%p)"), menu));
+ returnCode(Normalize_Menu(menu)->pad);
}
/* m_pad.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_pattern.c,v 1.9 2003/12/06 17:22:10 tom Exp $")
+MODULE_ID("$Id: m_pattern.c,v 1.14 2005/04/16 17:53:16 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| PatternString - as expected
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(char *)
-menu_pattern (const MENU * menu)
+menu_pattern(const MENU * menu)
{
- return (char *)(menu ? (menu->pattern ? menu->pattern : "") : 0);
+ static char empty[] = "";
+
+ T((T_CALLED("menu_pattern(%p)"), menu));
+ returnPtr(menu ? (menu->pattern ? menu->pattern : empty) : 0);
}
/*---------------------------------------------------------------------------
| E_NO_MATCH - no item matches pattern
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_pattern (MENU *menu, const char *p)
+set_menu_pattern(MENU * menu, const char *p)
{
ITEM *matchitem;
- int matchpos;
-
- if (!menu || !p)
+ int matchpos;
+
+ T((T_CALLED("set_menu_pattern(%p,%s)"), menu, _nc_visbuf(p)));
+
+ if (!menu || !p)
RETURN(E_BAD_ARGUMENT);
-
+
if (!(menu->items))
RETURN(E_NOT_CONNECTED);
-
- if ( menu->status & _IN_DRIVER )
+
+ if (menu->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
-
+
Reset_Pattern(menu);
-
+
if (!(*p))
{
pos_menu_cursor(menu);
RETURN(E_OK);
}
-
- if (menu->status & _LINK_NEEDED)
+
+ if (menu->status & _LINK_NEEDED)
_nc_Link_Items(menu);
-
- matchpos = menu->toprow;
+
+ matchpos = menu->toprow;
matchitem = menu->curitem;
assert(matchitem);
-
- while(*p)
+
+ while (*p)
{
- if ( !isprint((unsigned char)(*p)) ||
- (_nc_Match_Next_Character_In_Item_Name(menu,*p,&matchitem) != E_OK) )
+ if (!isprint(UChar(*p)) ||
+ (_nc_Match_Next_Character_In_Item_Name(menu, *p, &matchitem) != E_OK))
{
Reset_Pattern(menu);
pos_menu_cursor(menu);
RETURN(E_NO_MATCH);
}
p++;
- }
-
+ }
+
/* This is reached if there was a match. So we position to the new item */
- Adjust_Current_Item(menu,matchpos,matchitem);
+ Adjust_Current_Item(menu, matchpos, matchitem);
RETURN(E_OK);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_post.c,v 1.19 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_post.c,v 1.26 2004/12/25 23:57:04 tom Exp $")
/*---------------------------------------------------------------------------
-| Facility : libnmenu
-| Function : void _nc_Post_Item(MENU *menu, ITEM *item)
-|
+| Facility : libnmenu
+| Function : void _nc_Post_Item(MENU *menu, ITEM *item)
+|
| Description : Draw the item in the menus window at the current
-| window position
+| window position
|
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Post_Item (const MENU * menu, const ITEM * item)
+_nc_Post_Item(const MENU * menu, const ITEM * item)
{
int i;
chtype ch;
int item_x, item_y;
int count = 0;
- bool isfore = FALSE, isback=FALSE, isgrey = FALSE;
-
+ bool isfore = FALSE, isback = FALSE, isgrey = FALSE;
+ int name_len;
+ int desc_len;
+
assert(menu->win);
-
- getyx(menu->win,item_y,item_x);
-
+
+ getyx(menu->win, item_y, item_x);
+
/* We need a marker iff
- it is a onevalued menu and it is the current item
- or it has a selection value
- */
- wattron(menu->win,menu->back);
- if (item->value || (item==menu->curitem))
+ */
+ wattron(menu->win, menu->back);
+ if (item->value || (item == menu->curitem))
{
- if (menu->marklen)
+ if (menu->marklen)
{
/* In a multi selection menu we use the fore attribute
for a selected marker that is not the current one.
This improves visualization of the menu, because now
always the 'normal' marker denotes the current
item. */
- if (!(menu->opt & O_ONEVALUE) && item->value && item!=menu->curitem)
+ if (!(menu->opt & O_ONEVALUE) && item->value && item != menu->curitem)
{
- wattron(menu->win,menu->fore);
+ wattron(menu->win, menu->fore);
isfore = TRUE;
}
- waddstr(menu->win,menu->mark);
+ waddstr(menu->win, menu->mark);
if (isfore)
{
- wattron(menu->win,menu->fore);
+ wattron(menu->win, menu->fore);
isfore = FALSE;
}
}
}
- else /* otherwise we have to wipe out the marker area */
- for(ch=' ',i=menu->marklen;i>0;i--)
- waddch(menu->win,ch);
- wattroff(menu->win,menu->back);
+ else /* otherwise we have to wipe out the marker area */
+ for (ch = ' ', i = menu->marklen; i > 0; i--)
+ waddch(menu->win, ch);
+ wattroff(menu->win, menu->back);
count += menu->marklen;
/* First we have to calculate the attribute depending on selectability
and selection status
- */
+ */
if (!(item->opt & O_SELECTABLE))
{
- wattron(menu->win,menu->grey);
+ wattron(menu->win, menu->grey);
isgrey = TRUE;
}
else
{
- if (item->value || item==menu->curitem)
+ if (item->value || item == menu->curitem)
{
- wattron(menu->win,menu->fore);
+ wattron(menu->win, menu->fore);
isfore = TRUE;
}
else
{
- wattron(menu->win,menu->back);
+ wattron(menu->win, menu->back);
isback = TRUE;
}
}
- waddnstr(menu->win,item->name.str,item->name.length);
- for(ch=' ',i=menu->namelen-item->name.length;i>0;i--)
+ waddnstr(menu->win, item->name.str, item->name.length);
+ name_len = _nc_Calculate_Text_Width(&(item->name));
+ for (ch = ' ', i = menu->namelen - name_len; i > 0; i--)
{
- waddch(menu->win,ch);
+ waddch(menu->win, ch);
}
count += menu->namelen;
/* Show description if required and available */
- if ( (menu->opt & O_SHOWDESC) && menu->desclen>0 )
+ if ((menu->opt & O_SHOWDESC) && menu->desclen > 0)
{
- int m = menu->spc_desc/2;
+ int m = menu->spc_desc / 2;
int cy = -1, cx = -1;
- for(ch=' ',i=0; i < menu->spc_desc; i++)
+ for (ch = ' ', i = 0; i < menu->spc_desc; i++)
{
- if (i==m)
+ if (i == m)
{
- waddch(menu->win,menu->pad);
- getyx(menu->win,cy,cx);
+ waddch(menu->win, menu->pad);
+ getyx(menu->win, cy, cx);
}
else
- waddch(menu->win,ch);
+ waddch(menu->win, ch);
}
if (item->description.length)
- waddnstr(menu->win,item->description.str,item->description.length);
- for(ch=' ',i=menu->desclen-item->description.length; i>0; i--)
+ waddnstr(menu->win, item->description.str, item->description.length);
+ desc_len = _nc_Calculate_Text_Width(&(item->description));
+ for (ch = ' ', i = menu->desclen - desc_len; i > 0; i--)
{
- waddch(menu->win,ch);
+ waddch(menu->win, ch);
}
count += menu->desclen + menu->spc_desc;
{
int j, k, ncy, ncx;
- assert(cx>=0 && cy>=0);
- getyx(menu->win,ncy,ncx);
- if (isgrey) wattroff(menu->win,menu->grey);
- else if (isfore) wattroff(menu->win,menu->fore);
- wattron(menu->win,menu->back);
- for(j=1; j < menu->spc_rows;j++)
+ assert(cx >= 0 && cy >= 0);
+ getyx(menu->win, ncy, ncx);
+ if (isgrey)
+ wattroff(menu->win, menu->grey);
+ else if (isfore)
+ wattroff(menu->win, menu->fore);
+ wattron(menu->win, menu->back);
+ for (j = 1; j < menu->spc_rows; j++)
{
- if ((item_y+j) < getmaxy(menu->win))
+ if ((item_y + j) < getmaxy(menu->win))
{
- wmove (menu->win,item_y+j,item_x);
- for(k=0;k<count;k++)
- waddch(menu->win,' ');
+ wmove(menu->win, item_y + j, item_x);
+ for (k = 0; k < count; k++)
+ waddch(menu->win, ' ');
}
- if ((cy+j) < getmaxy(menu->win))
- mvwaddch(menu->win,cy+j,cx-1,menu->pad);
+ if ((cy + j) < getmaxy(menu->win))
+ mvwaddch(menu->win, cy + j, cx - 1, menu->pad);
}
- wmove(menu->win,ncy,ncx);
+ wmove(menu->win, ncy, ncx);
if (!isback)
- wattroff(menu->win,menu->back);
+ wattroff(menu->win, menu->back);
}
}
-
+
/* Remove attributes */
if (isfore)
- wattroff(menu->win,menu->fore);
+ wattroff(menu->win, menu->fore);
if (isback)
- wattroff(menu->win,menu->back);
+ wattroff(menu->win, menu->back);
if (isgrey)
- wattroff(menu->win,menu->grey);
-}
+ wattroff(menu->win, menu->grey);
+}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : void _nc_Draw_Menu(const MENU *)
-|
+|
| Description : Display the menu in its windows
|
| Return Values : -
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void)
-_nc_Draw_Menu (const MENU * menu)
+_nc_Draw_Menu(const MENU * menu)
{
ITEM *item = menu->items[0];
ITEM *lasthor, *lastvert;
assert(item && menu->win);
s_bkgd = getbkgd(menu->win);
- wbkgdset(menu->win,menu->back);
+ wbkgdset(menu->win, menu->back);
werase(menu->win);
- wbkgdset(menu->win,s_bkgd);
+ wbkgdset(menu->win, s_bkgd);
- lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : item;
+ lastvert = (menu->opt & O_NONCYCLIC) ? (ITEM *) 0 : item;
do
- {
- wmove(menu->win,y,0);
+ {
+ wmove(menu->win, y, 0);
+
+ hitem = item;
+ lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *) 0 : hitem;
- hitem = item;
- lasthor = (menu->opt & O_NONCYCLIC) ? (ITEM *)0 : hitem;
-
do
{
- _nc_Post_Item( menu, hitem);
+ _nc_Post_Item(menu, hitem);
- wattron(menu->win,menu->back);
- if ( ((hitem = hitem->right) != lasthor) && hitem )
+ wattron(menu->win, menu->back);
+ if (((hitem = hitem->right) != lasthor) && hitem)
{
- int i,j, cy, cx;
+ int i, j, cy, cx;
chtype ch = ' ';
- getyx(menu->win,cy,cx);
- for(j=0;j<menu->spc_rows;j++)
+ getyx(menu->win, cy, cx);
+ for (j = 0; j < menu->spc_rows; j++)
{
- wmove(menu->win,cy+j,cx);
- for(i=0; i < menu->spc_cols; i++)
+ wmove(menu->win, cy + j, cx);
+ for (i = 0; i < menu->spc_cols; i++)
{
- waddch( menu->win,ch);
+ waddch(menu->win, ch);
}
}
- wmove(menu->win,cy,cx+menu->spc_cols);
+ wmove(menu->win, cy, cx + menu->spc_cols);
}
- } while (hitem && (hitem != lasthor));
- wattroff(menu->win,menu->back);
-
+ }
+ while (hitem && (hitem != lasthor));
+ wattroff(menu->win, menu->back);
+
item = item->down;
y += menu->spc_rows;
-
- } while( item && (item != lastvert) );
+
+ }
+ while (item && (item != lastvert));
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int post_menu(MENU *)
-|
+|
| Description : Post a menu to the screen. This makes it visible.
|
| Return Values : E_OK - success
| E_BAD_ARGUMENT - not a valid menu pointer
| E_SYSTEM_ERROR - error in lower layers
-| E_NO_ROOM - Menu to large for screen
| E_NOT_CONNECTED - No items connected to menu
| E_BAD_STATE - Menu in userexit routine
| E_POSTED - Menu already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-post_menu (MENU * menu)
+post_menu(MENU * menu)
{
+ T((T_CALLED("post_menu(%p)"), menu));
+
if (!menu)
RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
+
+ if (menu->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
- if ( menu->status & _POSTED )
+ if (menu->status & _POSTED)
RETURN(E_POSTED);
-
+
if (menu->items && *(menu->items))
{
int y;
WINDOW *win = Get_Menu_Window(menu);
int maxy = getmaxy(win);
- int maxx = getmaxx(win);
-
- if (maxx < menu->width || maxy < menu->height)
- RETURN(E_NO_ROOM);
- if ( (menu->win = newpad(h,menu->width)) )
+ if ((menu->win = newpad(h, menu->width)))
{
y = (maxy >= h) ? h : maxy;
- if (y>=menu->height)
+ if (y >= menu->height)
y = menu->height;
- if(!(menu->sub = subpad(menu->win,y,menu->width,0,0)))
+ if (!(menu->sub = subpad(menu->win, y, menu->width, 0, 0)))
RETURN(E_SYSTEM_ERROR);
}
- else
- RETURN(E_SYSTEM_ERROR);
-
- if (menu->status & _LINK_NEEDED)
+ else
+ RETURN(E_SYSTEM_ERROR);
+
+ if (menu->status & _LINK_NEEDED)
_nc_Link_Items(menu);
}
else
RETURN(E_NOT_CONNECTED);
-
+
menu->status |= _POSTED;
- if (!(menu->opt&O_ONEVALUE))
+ if (!(menu->opt & O_ONEVALUE))
{
ITEM **items;
-
- for(items=menu->items;*items;items++)
+
+ for (items = menu->items; *items; items++)
{
(*items)->value = FALSE;
}
}
-
+
_nc_Draw_Menu(menu);
-
- Call_Hook(menu,menuinit);
- Call_Hook(menu,iteminit);
-
+
+ Call_Hook(menu, menuinit);
+ Call_Hook(menu, iteminit);
+
_nc_Show_Menu(menu);
-
+
RETURN(E_OK);
}
/*---------------------------------------------------------------------------
-| Facility : libnmenu
+| Facility : libnmenu
| Function : int unpost_menu(MENU *)
-|
+|
| Description : Detach menu from screen
|
| Return Values : E_OK - success
| E_NOT_POSTED - menu is not posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-unpost_menu (MENU * menu)
+unpost_menu(MENU * menu)
{
WINDOW *win;
-
+
+ T((T_CALLED("unpost_menu(%p)"), menu));
+
if (!menu)
RETURN(E_BAD_ARGUMENT);
-
- if ( menu->status & _IN_DRIVER )
+
+ if (menu->status & _IN_DRIVER)
RETURN(E_BAD_STATE);
- if ( !( menu->status & _POSTED ) )
+ if (!(menu->status & _POSTED))
RETURN(E_NOT_POSTED);
-
- Call_Hook(menu,itemterm);
- Call_Hook(menu,menuterm);
-
+
+ Call_Hook(menu, itemterm);
+ Call_Hook(menu, menuterm);
+
win = Get_Menu_Window(menu);
werase(win);
wsyncup(win);
-
+
assert(menu->sub);
delwin(menu->sub);
menu->sub = (WINDOW *)0;
-
+
assert(menu->win);
delwin(menu->win);
menu->win = (WINDOW *)0;
-
+
menu->status &= ~_POSTED;
-
+
RETURN(E_OK);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_req_name.c,v 1.15 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_req_name.c,v 1.19 2005/04/16 16:59:52 tom Exp $")
-static const char *request_names[ MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1 ] = {
- "LEFT_ITEM" ,
- "RIGHT_ITEM" ,
- "UP_ITEM" ,
- "DOWN_ITEM" ,
- "SCR_ULINE" ,
- "SCR_DLINE" ,
- "SCR_DPAGE" ,
- "SCR_UPAGE" ,
- "FIRST_ITEM" ,
- "LAST_ITEM" ,
- "NEXT_ITEM" ,
- "PREV_ITEM" ,
- "TOGGLE_ITEM" ,
+static const char *request_names[MAX_MENU_COMMAND - MIN_MENU_COMMAND + 1] =
+{
+ "LEFT_ITEM",
+ "RIGHT_ITEM",
+ "UP_ITEM",
+ "DOWN_ITEM",
+ "SCR_ULINE",
+ "SCR_DLINE",
+ "SCR_DPAGE",
+ "SCR_UPAGE",
+ "FIRST_ITEM",
+ "LAST_ITEM",
+ "NEXT_ITEM",
+ "PREV_ITEM",
+ "TOGGLE_ITEM",
"CLEAR_PATTERN",
- "BACK_PATTERN" ,
- "NEXT_MATCH" ,
- "PREV_MATCH"
+ "BACK_PATTERN",
+ "NEXT_MATCH",
+ "PREV_MATCH"
};
+
#define A_SIZE (sizeof(request_names)/sizeof(request_names[0]))
/*---------------------------------------------------------------------------
| NULL - on invalid request code
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(const char *)
-menu_request_name ( int request )
+menu_request_name(int request)
{
- if ( (request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND) )
+ T((T_CALLED("menu_request_name(%d)"), request));
+ if ((request < MIN_MENU_COMMAND) || (request > MAX_MENU_COMMAND))
{
SET_ERROR(E_BAD_ARGUMENT);
- return (const char *)0;
+ returnCPtr((const char *)0);
}
else
- return request_names[ request - MIN_MENU_COMMAND ];
+ returnCPtr(request_names[request - MIN_MENU_COMMAND]);
}
-
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Function : int menu_request_by_name (const char *str);
| E_NO_MATCH - request not found
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-menu_request_by_name ( const char *str )
-{
+menu_request_by_name(const char *str)
+{
/* because the table is so small, it doesn't really hurt
to run sequentially through it.
- */
+ */
unsigned int i = 0;
char buf[16];
-
+
+ T((T_CALLED("menu_request_by_name(%s)"), _nc_visbuf(str)));
+
if (str)
{
- strncpy(buf,str,sizeof(buf));
- while( (i<sizeof(buf)) && (buf[i] != '\0') )
+ strncpy(buf, str, sizeof(buf));
+ while ((i < sizeof(buf)) && (buf[i] != '\0'))
{
buf[i] = toupper(buf[i]);
i++;
}
-
- for (i=0; i < A_SIZE; i++)
+
+ for (i = 0; i < A_SIZE; i++)
{
- if (strncmp(request_names[i],buf,sizeof(buf))==0)
- return MIN_MENU_COMMAND + i;
- }
+ if (strncmp(request_names[i], buf, sizeof(buf)) == 0)
+ returnCode(MIN_MENU_COMMAND + (int)i);
+ }
}
RETURN(E_NO_MATCH);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_scale.c,v 1.7 2003/10/25 14:54:48 tom Exp $")
+MODULE_ID("$Id: m_scale.c,v 1.9 2004/12/11 23:29:34 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_NOT_CONNECTED - no items are connected to menu
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-scale_menu (const MENU *menu, int *rows, int *cols)
+scale_menu(const MENU * menu, int *rows, int *cols)
{
- if (!menu)
- RETURN( E_BAD_ARGUMENT );
-
+ T((T_CALLED("scale_menu(%p,%p,%p)"), menu, rows, cols));
+
+ if (!menu)
+ RETURN(E_BAD_ARGUMENT);
+
if (menu->items && *(menu->items))
{
if (rows)
RETURN(E_OK);
}
else
- RETURN( E_NOT_CONNECTED );
+ RETURN(E_NOT_CONNECTED);
}
/* m_scale.c ends here */
-
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_spacing.c,v 1.15 2003/11/08 20:49:06 tom Exp $")
+MODULE_ID("$Id: m_spacing.c,v 1.17 2004/12/11 23:29:34 tom Exp $")
#define MAX_SPC_DESC ((TABSIZE) ? (TABSIZE) : 8)
#define MAX_SPC_COLS ((TABSIZE) ? (TABSIZE) : 8)
| Return Values : E_OK - on success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_spacing
-(MENU *menu, int s_desc, int s_row, int s_col )
+set_menu_spacing(MENU * menu, int s_desc, int s_row, int s_col)
{
- MENU *m; /* split for ATAC workaround */
+ MENU *m; /* split for ATAC workaround */
+
+ T((T_CALLED("set_menu_spacing(%p,%d,%d,%d)"), menu, s_desc, s_row, s_col));
+
m = Normalize_Menu(menu);
assert(m);
RETURN(E_POSTED);
if (((s_desc < 0) || (s_desc > MAX_SPC_DESC)) ||
- ((s_row < 0) || (s_row > MAX_SPC_ROWS)) ||
- ((s_col < 0) || (s_col > MAX_SPC_COLS)))
+ ((s_row < 0) || (s_row > MAX_SPC_ROWS)) ||
+ ((s_col < 0) || (s_col > MAX_SPC_COLS)))
RETURN(E_BAD_ARGUMENT);
m->spc_desc = s_desc ? s_desc : 1;
- m->spc_rows = s_row ? s_row : 1;
- m->spc_cols = s_col ? s_col : 1;
+ m->spc_rows = s_row ? s_row : 1;
+ m->spc_cols = s_col ? s_col : 1;
_nc_Calculate_Item_Length_and_Width(m);
RETURN(E_OK);
}
-
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Function : int menu_spacing (const MENU *,int *,int *,int *);
| Return Values : E_OK - on success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-menu_spacing ( const MENU *menu, int* s_desc, int* s_row, int* s_col)
+menu_spacing(const MENU * menu, int *s_desc, int *s_row, int *s_col)
{
- const MENU *m; /* split for ATAC workaround */
+ const MENU *m; /* split for ATAC workaround */
+
+ T((T_CALLED("menu_spacing(%p,%p,%p,%p)"), menu, s_desc, s_row, s_col));
+
m = Normalize_Menu(menu);
assert(m);
- if (s_desc) *s_desc = m->spc_desc;
- if (s_row) *s_row = m->spc_rows;
- if (s_col) *s_col = m->spc_cols;
+ if (s_desc)
+ *s_desc = m->spc_desc;
+ if (s_row)
+ *s_row = m->spc_rows;
+ if (s_col)
+ *s_col = m->spc_cols;
RETURN(E_OK);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_sub.c,v 1.7 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_sub.c,v 1.10 2004/12/25 21:38:31 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_POSTED - menu is already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_sub (MENU *menu, WINDOW *win)
+set_menu_sub(MENU * menu, WINDOW *win)
{
+ T((T_CALLED("set_menu_sub(%p,%p)"), menu, win));
+
if (menu)
{
- if ( menu->status & _POSTED )
+ if (menu->status & _POSTED)
RETURN(E_POSTED);
menu->usersub = win;
_nc_Calculate_Item_Length_and_Width(menu);
}
else
_nc_Default_Menu.usersub = win;
-
+
RETURN(E_OK);
}
| Return Values : NULL on error, otherwise a pointer to the window
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(WINDOW *)
-menu_sub (const MENU * menu)
+menu_sub(const MENU * menu)
{
- const MENU* m = Normalize_Menu(menu);
- return Get_Menu_Window(m);
+ const MENU *m = Normalize_Menu(menu);
+
+ T((T_CALLED("menu_sub(%p)"), menu));
+ returnWin(Get_Menu_Window(m));
}
/* m_sub.c ends here */
--- /dev/null
+/****************************************************************************
+ * Copyright (c) 2004,2005 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas E. Dickey *
+ ****************************************************************************/
+
+#include "menu.priv.h"
+
+MODULE_ID("$Id: m_trace.c,v 1.3 2005/01/16 01:06:11 tom Exp $")
+
+NCURSES_EXPORT(ITEM *)
+_nc_retrace_item(ITEM * code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(ITEM **)
+_nc_retrace_item_ptr(ITEM ** code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(Item_Options)
+_nc_retrace_item_opts(Item_Options code)
+{
+ T((T_RETURN("%d"), code));
+ return code;
+}
+
+NCURSES_EXPORT(MENU *)
+_nc_retrace_menu(MENU * code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(Menu_Hook)
+_nc_retrace_menu_hook(Menu_Hook code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+NCURSES_EXPORT(Menu_Options)
+_nc_retrace_menu_opts(Menu_Options code)
+{
+ T((T_RETURN("%d"), code));
+ return code;
+}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_userptr.c,v 1.13 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_userptr.c,v 1.16 2004/12/25 21:38:55 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| Return Values : E_OK - success
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_userptr (MENU * menu, void * userptr)
+set_menu_userptr(MENU * menu, void *userptr)
{
+ T((T_CALLED("set_menu_userptr(%p,%p)"), menu, userptr));
Normalize_Menu(menu)->userptr = userptr;
- RETURN( E_OK );
+ RETURN(E_OK);
}
/*---------------------------------------------------------------------------
| NULL is returned
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(void *)
-menu_userptr (const MENU * menu)
+menu_userptr(const MENU * menu)
{
- return( Normalize_Menu(menu)->userptr);
+ T((T_CALLED("menu_userptr(%p)"), menu));
+ returnVoidPtr(Normalize_Menu(menu)->userptr);
}
/* m_userptr.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "menu.priv.h"
-MODULE_ID("$Id: m_win.c,v 1.12 2003/10/25 15:23:42 tom Exp $")
+MODULE_ID("$Id: m_win.c,v 1.15 2004/12/25 21:39:20 tom Exp $")
/*---------------------------------------------------------------------------
| Facility : libnmenu
| E_POSTED - menu is already posted
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(int)
-set_menu_win (MENU *menu, WINDOW *win)
+set_menu_win(MENU * menu, WINDOW *win)
{
+ T((T_CALLED("set_menu_win(%p,%p)"), menu, win));
+
if (menu)
{
- if ( menu->status & _POSTED )
+ if (menu->status & _POSTED)
RETURN(E_POSTED);
menu->userwin = win;
_nc_Calculate_Item_Length_and_Width(menu);
}
else
_nc_Default_Menu.userwin = win;
-
+
RETURN(E_OK);
}
| Return Values : NULL on error, otherwise pointer to window
+--------------------------------------------------------------------------*/
NCURSES_EXPORT(WINDOW *)
-menu_win (const MENU *menu)
+menu_win(const MENU * menu)
{
- const MENU* m = Normalize_Menu(menu);
- return (m->userwin ? m->userwin : stdscr);
+ const MENU *m = Normalize_Menu(menu);
+
+ T((T_CALLED("menu_win(%p)"), menu));
+ returnWin(m->userwin ? m->userwin : stdscr);
}
/* m_win.c ends here */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: menu.priv.h,v 1.16 2003/10/25 15:24:29 tom Exp $ */
+/* $Id: menu.priv.h,v 1.22 2005/01/16 01:02:23 tom Exp $ */
/***************************************************************************
* Module menu.priv.h *
#ifndef MENU_PRIV_H_incl
#define MENU_PRIV_H_incl 1
-#include <ncurses_cfg.h>
-#include <curses.h>
-
+#include "curses.priv.h"
#include "mf_common.h"
#include "menu.h"
{ (menu)->pindex = 0; \
(menu)->pattern[0] = '\0'; }
+#define UChar(c) ((unsigned char)(c))
+
/* Internal functions. */
extern NCURSES_EXPORT(void) _nc_Draw_Menu (const MENU *);
extern NCURSES_EXPORT(void) _nc_Show_Menu (const MENU *);
extern NCURSES_EXPORT(void) _nc_Calculate_Item_Length_and_Width (MENU *);
+extern NCURSES_EXPORT(int) _nc_Calculate_Text_Width(const TEXT *);
extern NCURSES_EXPORT(void) _nc_Post_Item (const MENU *, const ITEM *);
extern NCURSES_EXPORT(bool) _nc_Connect_Items (MENU *, ITEM **);
extern NCURSES_EXPORT(void) _nc_Disconnect_Items (MENU *);
extern NCURSES_EXPORT(int) _nc_menu_cursor_pos (const MENU* menu, const ITEM* item,
int* pY, int* pX);
+#ifdef TRACE
+
+#define returnItem(code) TRACE_RETURN(code,item)
+#define returnItemPtr(code) TRACE_RETURN(code,item_ptr)
+#define returnItemOpts(code) TRACE_RETURN(code,item_opts)
+#define returnMenu(code) TRACE_RETURN(code,menu)
+#define returnMenuHook(code) TRACE_RETURN(code,menu_hook)
+#define returnMenuOpts(code) TRACE_RETURN(code,menu_opts)
+
+extern NCURSES_EXPORT(ITEM *) _nc_retrace_item (ITEM *);
+extern NCURSES_EXPORT(ITEM **) _nc_retrace_item_ptr (ITEM **);
+extern NCURSES_EXPORT(Item_Options) _nc_retrace_item_opts (Item_Options);
+extern NCURSES_EXPORT(MENU *) _nc_retrace_menu (MENU *);
+extern NCURSES_EXPORT(Menu_Hook) _nc_retrace_menu_hook (Menu_Hook);
+extern NCURSES_EXPORT(Menu_Options) _nc_retrace_menu_opts (Menu_Options);
+
+#else /* !TRACE */
+
+#define returnItem(code) return code
+#define returnItemPtr(code) return code
+#define returnItemOpts(code) return code
+#define returnMenu(code) return code
+#define returnMenuHook(code) return code
+#define returnMenuOpts(code) return code
+
+#endif /* TRACE/!TRACE */
+
#endif /* MENU_PRIV_H_incl */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
* Author: Juergen Pfeifer, 1995,1997 *
****************************************************************************/
-/* $Id: mf_common.h,v 0.19 2003/10/25 15:24:29 tom Exp $ */
+/* $Id: mf_common.h,v 0.21 2004/12/11 22:40:40 tom Exp $ */
/* Common internal header for menu and form library */
#define MAX_REGULAR_CHARACTER (0xff)
#define SET_ERROR(code) (errno=(code))
-#define GET_ERROR() (errno)
-#define RETURN(code) return( SET_ERROR(code) )
+#define GET_ERROR() (errno)
+
+#ifdef TRACE
+#define RETURN(code) returnCode( SET_ERROR(code) )
+#else
+#define RETURN(code) return( SET_ERROR(code) )
+#endif
/* The few common values in the status fields for menus and forms */
-#define _POSTED (0x01) /* menu or form is posted */
-#define _IN_DRIVER (0x02) /* menu or form is processing hook routine */
+#define _POSTED (0x01U) /* menu or form is posted */
+#define _IN_DRIVER (0x02U) /* menu or form is processing hook routine */
/* Call object hook */
#define Call_Hook( object, handler ) \
- if ( (object) && ((object)->handler) )\
+ if ( (object) != 0 && ((object)->handler) != (void *) 0 )\
{\
(object)->status |= _IN_DRIVER;\
(object)->handler(object);\
-# $Id: modules,v 1.14 1999/02/18 22:39:04 juergen Exp $
+# $Id: modules,v 1.16 2004/12/25 22:06:33 tom Exp $
##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc. #
+# Copyright (c) 1998,2004 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"), #
m_scale lib $(srcdir) $(MENU_PRIV_H)
m_spacing lib $(srcdir) $(MENU_PRIV_H)
m_sub lib $(srcdir) $(MENU_PRIV_H)
+m_trace lib $(srcdir) $(MENU_PRIV_H)
m_userptr lib $(srcdir) $(MENU_PRIV_H)
m_win lib $(srcdir) $(MENU_PRIV_H)
-# $Id: Makefile.in,v 1.34 2002/01/12 23:54:39 Robert.Joop Exp $
+# $Id: Makefile.in,v 1.36 2004/07/11 16:00:13 tom Exp $
##############################################################################
# Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc. #
# #
INSTALL_DATA = @INSTALL_DATA@
################################################################################
-all :
+all : terminfo.tmp
depend :
install : install.data
-install.data : $(DESTDIR)$(libdir) \
+install.data : terminfo.tmp \
+ $(DESTDIR)$(libdir) \
$(DESTDIR)$(ticdir) \
$(DESTDIR)$(tabsetdir)
DESTDIR=${DESTDIR} \
srcdir=${srcdir} \
datadir=${datadir} \
ticdir=${ticdir} \
- source=${source} \
+ source=terminfo.tmp \
THIS_CC="$(CC)" \
THAT_CC="$(HOSTCC)" \
sh ./run_tic.sh
$(INSTALL_DATA) $$i $(DESTDIR)$(tabsetdir)/$$i; \
fi; done'
+terminfo.tmp : run_tic.sed $(source)
+ echo '** adjusting tabset paths'
+ sed -f run_tic.sed $(source) >terminfo.tmp
+
+run_tic.sed :
+ WHICH_XTERM=@WHICH_XTERM@ \
+ ticdir=${ticdir} \
+ sh $(srcdir)/gen_edit.sh >$@
+
$(DESTDIR)$(libdir) \
$(DESTDIR)$(tabsetdir) \
$(DESTDIR)$(ticdir) :
- sh $(srcdir)/../mkinstalldirs $@
+ sh $(top_srcdir)/mkinstalldirs $@
uninstall : uninstall.data
@MAKE_UPPER_TAGS@TAGS :
mostlyclean :
+ -rm -f terminfo.tmp
+ -rm -f run_tic.sed
-rm -f core tags TAGS *~ *.bak *.ln *.atac trace
clean :: mostlyclean
--- /dev/null
+#!/bin/sh
+##############################################################################
+# Copyright (c) 2004 Free Software Foundation, Inc. #
+# #
+# Permission is hereby granted, free of charge, to any person obtaining a #
+# copy of this software and associated documentation files (the "Software"), #
+# to deal in the Software without restriction, including without limitation #
+# the rights to use, copy, modify, merge, publish, distribute, distribute #
+# with modifications, sublicense, and/or sell copies of the Software, and to #
+# permit persons to whom the Software is furnished to do so, subject to the #
+# following conditions: #
+# #
+# The above copyright notice and this permission notice shall be included in #
+# all copies or substantial portions of the Software. #
+# #
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
+# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
+# DEALINGS IN THE SOFTWARE. #
+# #
+# Except as contained in this notice, the name(s) of the above copyright #
+# holders shall not be used in advertising or otherwise to promote the sale, #
+# use or other dealings in this Software without prior written #
+# authorization. #
+##############################################################################
+#
+# Author: Thomas E. Dickey
+#
+# $Id: gen_edit.sh,v 1.1 2004/07/11 15:01:29 tom Exp $
+# Generate a sed-script for converting the terminfo.src to the form which will
+# be installed.
+#
+# Assumes:
+# The leaf directory names (lib, tabset, terminfo)
+#
+
+: ${ticdir=@TERMINFO@}
+: ${xterm_new=@WHICH_XTERM@}
+
+# If we're not installing into /usr/share/, we'll have to adjust the location
+# of the tabset files in terminfo.src (which are in a parallel directory).
+TABSET=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'`
+if test "x$TABSET" != "x/usr/share/tabset" ; then
+cat <<EOF
+s%/usr/share/tabset%$TABSET%g
+EOF
+fi
+
+if test "$xterm_new" != "xterm-new" ; then
+cat <<EOF
+/^# This is xterm for ncurses/,/^$/{
+ s/use=xterm-new,/use=$WHICH_XTERM,/
+}
+EOF
+fi
+++ /dev/null
-/* Use this with indent 2.0 (2.1 is not acceptable, since it has more bugs) */
-/* indent 4 columns */
--i4
-/* tab stops every 8 columns */
--ts8
-/* cuddle 'else' */
--ce
-/* force blank lines after procedure body */
--bap
-/* do not force newline after comma in declaration */
--nbc
-/* do not force blank line after declarations */
--nbad
-/* format braces inline */
--br
-/* do not line up parentheses */
--lp
-/* put the type of a procedure on the line before its name */
--psl
-/* do not insert a space between procedure name and '(' */
--npcs
-/* leave preprocessor space */
--lps
-/* swallow optional blank lines */
--sob
-/* continuation indent of 0 spaces */
--ci0
-/* force space before semicolon on same line */
--ss
-
-/* for vile */
--T size_t
--T LINE
--T BUFFER
--T WINDOW
--- /dev/null
+#!/bin/sh
+# $Id: jpf-indent,v 1.3 2004/05/29 19:14:45 tom Exp $
+# indent ncurses source written by Juergen Pfeifer
+NOOP=no
+OPTS='
+-npro
+--blank-lines-after-declarations
+--blank-lines-after-procedures
+--brace-indent2
+--braces-after-if-line
+--continue-at-parentheses
+--indent-level2
+--line-length80
+--no-space-after-casts
+--no-space-after-function-call-names
+--parameter-indentation4
+--swallow-optional-blank-lines
+--tab-size8
+-T FIELD
+-T FIELDTYPE
+-T FIELD_CELL
+-T FORM
+-T INLINE
+-T RegExp_Arg
+-T TypeArgument
+-T WINDOW
+-T attr_t
+-T bool
+-T cchar_t
+-T chtype
+-T enumARG
+-T va_list
+-T wchar_t
+'
+for name in $*
+do
+ case $name in
+ -v|-n)
+ NOOP=yes
+ OPTS="$OPTS -v"
+ ;;
+ -*)
+ OPTS="$OPTS $name"
+ ;;
+ *.[ch])
+ save="${name}".a$$
+ test="${name}".b$$
+ rm -f "$save" "$test"
+ mv "$name" "$save"
+ sed \
+ -e '/MODULE_ID(/s/)$/);/' \
+ -e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
+ -e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
+ "$save" >"$test"
+ cp "$test" "$name"
+ chmod u+w "$name"
+ # ${INDENT_PROG-indent} --version
+ ${INDENT_PROG-indent} $OPTS "$name"
+ sed \
+ -e '/MODULE_ID(/s/);$/)/' \
+ -e 's,;[ ]*//GCC_NORETURN;, GCC_NORETURN;,' \
+ -e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
+ "$name" >"$test"
+ mv "$test" "$name"
+ rm -f "${name}~"
+ if test $NOOP = yes ; then
+ if (cmp -s "$name" "$save" ) then
+ echo "** no change: $name"
+ else
+ diff -u "$save" "$name"
+ fi
+ rm -f "$name"
+ mv "$save" "$name"
+ elif ( cmp -s "$name" "$save" ) ; then
+ echo "** unchanged $name"
+ rm -f "${name}"
+ mv "$save" "$name"
+ else
+ echo "** updated $name"
+ rm -f "$save"
+ fi
+ ;;
+ *)
+ echo "** ignored: $name"
+ ;;
+ esac
+done
--- /dev/null
+#!/bin/sh
+# $Id: ncu-indent,v 1.12 2004/11/23 00:45:48 tom Exp $
+NOOP=no
+OPTS='
+--blank-lines-after-procedures
+--braces-on-if-line
+--continuation-indentation0
+--continue-at-parentheses
+--cuddle-else
+--indent-level4
+--leave-preprocessor-space
+--no-blank-lines-after-commas
+--no-blank-lines-after-declarations
+--no-space-after-function-call-names
+--procnames-start-lines
+--space-special-semicolon
+--swallow-optional-blank-lines
+--tab-size8
+
+-T NCURSES_EXPORT_VAR
+-T SCREEN
+-T TERMTYPE
+-T attr_t
+-T cchar_t
+-T chtype
+-T inline
+-T wchar_t
+-T wint_t
+
+-T BUFFER
+-T CHARTYPE
+-T FILE
+-T GCC_NORETURN
+-T LINE
+-T MARK
+-T RETSIGTYPE
+-T TBUFF
+-T WINDOW
+-T size_t
+-T va_list
+
+-T Cardinal
+-T Widget
+-T XtPointer
+'
+for name in $*
+do
+ case $name in
+ -v|-n)
+ NOOP=yes
+ OPTS="$OPTS -v"
+ ;;
+ -*)
+ OPTS="$OPTS $name"
+ ;;
+ *.[ch])
+ save="${name}".a$$
+ test="${name}".b$$
+ rm -f "$save" "$test"
+ mv "$name" "$save"
+ sed \
+ -e '/MODULE_ID(/s/)$/);/' \
+ -e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
+ -e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
+ "$save" >"$test"
+ cp "$test" "$name"
+ chmod u+w "$name"
+ # ${INDENT_PROG-indent} --version
+ ${INDENT_PROG-indent} -npro $OPTS "$name"
+ sed \
+ -e '/MODULE_ID(/s/);$/)/' \
+ -e 's,;[ ]*//GCC_NORETURN;, GCC_NORETURN;,' \
+ -e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
+ "$name" >"$test"
+ mv "$test" "$name"
+ rm -f "${name}~"
+ if test $NOOP = yes ; then
+ if (cmp -s "$name" "$save" ) then
+ echo "** no change: $name"
+ else
+ diff -u "$save" "$name"
+ fi
+ rm -f "$name"
+ mv "$save" "$name"
+ elif ( cmp -s "$name" "$save" ) ; then
+ echo "** unchanged $name"
+ rm -f "${name}"
+ mv "$save" "$name"
+ else
+ echo "** updated $name"
+ rm -f "$save"
+ fi
+ ;;
+ *)
+ echo "** ignored: $name"
+ ;;
+ esac
+done
#!@SHELL@
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
#
# Author: Thomas E. Dickey 1996,2000
#
-# $Id: run_tic.in,v 1.15 2003/09/06 22:31:44 Dan.Kegel Exp $
+# $Id: run_tic.in,v 1.20 2005/09/17 23:13:49 tom Exp $
# This script is used to install terminfo.src using tic. We use a script
# because the path checking is too awkward to do in a makefile.
#
: ${LN_S="@LN_S@"}
: ${THAT_CC=cc}
: ${THIS_CC=cc}
+: ${ext_funcs=@NCURSES_EXT_FUNCS@}
test -z "${DESTDIR}" && DESTDIR=
else
# Cross-compiling, so don't set PATH or run shlib.
SHLIB=
+# reset $suffix, since it applies to the target, not the build platform.
+suffix=
fi
-#
+
# set another env var that doesn't get reset when `shlib' runs, so `shlib' uses
# the PATH we just set.
-#
-NEWPATH=$PATH
-export NEWPATH
-PROG_BIN_DIR=${DESTDIR}$bindir
-export PROG_BIN_DIR
+SHLIB_PATH=$PATH
+export SHLIB_PATH
+# set a variable to simplify environment update in shlib
+SHLIB_HOST=@host_os@
+export SHLIB_HOST
+
+# don't use user's TERMINFO variable
TERMINFO=${DESTDIR}$ticdir ; export TERMINFO
umask 022
# Construct the name of the old (obsolete) pathname, e.g., /usr/lib/terminfo.
-TICDIR=`echo $TERMINFO | sed -e 's%/share/%/lib/%'`
+TICDIR=`echo $TERMINFO | sed -e 's%/share/\([^/]*\)$%/lib/\1%'`
# Remove the old terminfo stuff; we don't care if it existed before, and it
# would generate a lot of confusing error messages if we tried to overwrite it.
# the directory is actually a symbolic link.
( cd $TERMINFO && rm -fr ? 2>/dev/null )
-# If we're not installing into /usr/share/, we'll have to adjust the location
-# of the tabset files in terminfo.src (which are in a parallel directory).
-TABSET=`echo $ticdir | sed -e 's%/terminfo$%/tabset%'`
-if test "x$TABSET" != "x/usr/share/tabset" ; then
- echo '** adjusting tabset paths'
- TMP=${TMPDIR-/tmp}/$$
- sed -e s%/usr/share/tabset%$TABSET%g $source >$TMP
- trap "rm -f $TMP" 0 1 2 5 15
- source=$TMP
-fi
+if test "$ext_funcs" = 1 ; then
+cat <<EOF
+Running tic to install $TERMINFO ...
+
+ You may see messages regarding extended capabilities, e.g., AX.
+ These are extended terminal capabilities which are compiled
+ using
+ tic -x
+ If you have ncurses 4.2 applications, you should read the INSTALL
+ document, and install the terminfo without the -x option.
+EOF
+if ( $SHLIB tic$suffix -x -s -o $TERMINFO $source )
+then
+ echo '** built new '$TERMINFO
+else
+ echo '? tic could not build '$TERMINFO
+ exit 1
+fi
+else
cat <<EOF
Running tic to install $TERMINFO ...
You may see messages regarding unknown capabilities, e.g., AX.
- These are extended terminal capabilities which can be compiled
+ These are extended terminal capabilities which may be compiled
using
tic -x
- Read the INSTALL document before doing this - it can cause
- problems for older ncurses applications.
+ If you have ncurses 4.2 applications, you should read the INSTALL
+ document, and install the terminfo without the -x option.
EOF
if ( $SHLIB tic$suffix -s -o $TERMINFO $source )
echo '? tic could not build '$TERMINFO
exit 1
fi
+fi
# Make a symbolic link to provide compatibility with applications that expect
# to find terminfo under /usr/lib. That is, we'll _try_ to do that. Not
#!/bin/sh
##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2005 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"), #
#
# Author: Thomas E. Dickey <dickey@clark.net> 1996
#
-# $Id: shlib,v 1.7 2003/07/19 22:58:14 tom Exp $
+# $Id: shlib,v 1.10 2005/06/25 22:41:17 tom Exp $
# Use this script as a wrapper when running executables linked to shared
# libraries on systems that use the $LD_LIBRARY_PATH variable and don't embed
# the soname's path within the linked executable (such as IRIX), e.g,
# Special cases:
#
# BeOS R4.5 uses $LIBRARY_PATH rather than $LD_LIBRARY_PATH.
-
+# Cygwin uses $PATH
+# Mac OS X uses $DYLD_LIBRARY_PATH
#
-# Make sure that we use the PATH that was set in run_tic.sh
+# Other cases not handled by this script:
+#
+# AIX uses $LIBPATH
+# IRIX64 may use $LD_LIBRARY64_PATH or $LD_LIBRARYN32_PATH
+# Solaris may use $LD_LIBRARY_PATH_64
#
-if test X$NEWPATH != X ; then
- PATH=$NEWPATH
+CDPATH=
+#
+# Make sure that we use the PATH that was set in run_tic.sh
+if test -n "$SHLIB_PATH" ; then
+ PATH=$SHLIB_PATH
export PATH
fi
+# Find the lib-directory for this build tree
q=""
-for p in lib ../lib
+for p in lib ../lib ../../lib ../../../lib
do
if test -d $p; then
- q="$p"
+ q=`cd $p; pwd`
+ elif test -f configure && test ! -d ../$p ; then
+ break
fi
done
+
+# Set the environment variable.
if test -n "$q" ; then
- if test -n "$LD_LIBRARY_PATH"; then
- LD_LIBRARY_PATH="$q:$LD_LIBRARY_PATH"
+ system=
+ if test -n "$SHLIB_HOST" ; then
+ system="$SHLIB_HOST"
+ elif test -n "$PATHEXT" ; then
+ system=cygwin
elif test -n "$LIBRARY_PATH" ; then
- LIBRARY_PATH="$q:$LIBRARY_PATH"
+ system=beos
+ elif test -n "$DYLD_LIBRARY_PATH" ; then
+ system=darwin
+ elif test -n "$LD_LIBRARY_PATH"; then
+ system=unix
else
- LD_LIBRARY_PATH="$q"
+ for r in $q/*.*
+ do
+ if test -f "$r"
+ then
+ case $r in
+ *.dll)
+ system=cygwin
+ ;;
+ *.dylib)
+ system=darwin
+ ;;
+ esac
+ fi
+ test -n "$system" && break
+ done
fi
- export LD_LIBRARY_PATH
-fi
-# cygwin doesn't use LD_LIBRARY_PATH, but does use PATH
-if test -n "$PATHEXT" ; then
- PATH=$LD_LIBRARY_PATH:$PATH;
- export PATH
+ case .$system in
+ .cygwin*)
+ variable=PATH
+ ;;
+ .beos*)
+ variable=LIBRARY_PATH
+ ;;
+ .darwin*)
+ variable=DYLD_LIBRARY_PATH
+ ;;
+ *)
+ variable=LD_LIBRARY_PATH
+ ;;
+ esac
+
+ eval 'test -z "$'$variable'" && '$variable'=":"'
+ eval $variable'="$q:$'$variable'"'
+ eval 'export '$variable
fi
eval "$*"
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.227 $
-# $Date: 2004/01/18 01:37:18 $
+# $Revision: 1.268 $
+# $Date: 2005/07/24 00:22:25 $
#
# The original header is preserved below for reference. It is noted that there
-# is a newer version which differs in some cosmetic details; we have decided
-# to not change the header unless there is also a change in content.
+# is a "newer" version which differs in some cosmetic details (but actually
+# stopped updates several years ago); we have decided to not change the header
+# unless there is also a change in content.
#
#------------------------------------------------------------------------------
# Version 10.2.1
bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, ht=^I, kcub1=^H,
kcud1=^J, nel=^M^J, .kbs=^H,
-vanilla,
+vanilla|dumb tty,
OTbs,
bel=^G, cr=^M, cud1=^J, ind=^J,
kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
khome=\E[H,
ansi+sgr|ansi graphic renditions,
- blink=\E[5m, invis=\E[8m, rev=\E[7m, sgr0=\E[0m,
+ blink=\E[5m, invis=\E[8m, rev=\E[7m,
+ sgr=\E[0%?%p3%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%;,
+ sgr0=\E[0m,
ansi+sgrso|ansi standout only,
rmso=\E[m, smso=\E[7m,
ansi+sgrul|ansi underline only,
kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D,
kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmir=\E[4l,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
+ kspd=^Z, nel=^M^J, rc=\E8, rev=\E[7m, ri=\EM, rmam=\E[?7l,
+ rmir=\E[4l, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
- smir=\E[4h, smul=\E[4m, tbc=\E[3g, u6=\E[%i%d;%dR,
- u7=\E[6n, u8=\E[?6c, u9=\E[c, vpa=\E[%i%p1%dd,
- use=klone+sgr, use=ecma+color,
+ smam=\E[?7h, smir=\E[4h, smul=\E[4m, tbc=\E[3g,
+ u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c,
+ vpa=\E[%i%p1%dd, use=klone+sgr, use=ecma+color,
linux-m|Linux console no color,
colors@, pairs@,
dim=\E[2m, invis=\E[8m, op=\E[37;40m, rmso=\E[27m,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm, use=mach,
+# From: Marcus Brinkmann
+# http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/hurd/hurd/console/
+#
+# Comments in the original are summarized here:
+#
+# hurd uses 8-bit characters (km).
+#
+# Although it doesn't do XON/XOFF, we don't want padding characters (xon).
+#
+# Regarding compatibility to vt100: hurd doesn't specify <xenl>, as we don't
+# have the eat_newline_glitch. It doesn't support setting or removing tab
+# stops (hts/tbc).
+#
+# hurd uses ^H instead of \E[D for cub1, as only ^H implements <bw> and it is
+# one byte instead three.
+#
+# <ich1> is not included because hurd has insert mode.
+#
+# hurd doesn't use ^J for scrolling, because this could put things into the
+# scrollback buffer.
+#
+# gsbom/grbom are used to enable/disable real bold (not intensity bright) mode.
+# This is a GNU extension.
+#
+# The original has commented-out ncv, but is restored here.
+#
+# Reading the source, RIS resets cnorm, but not xmous.
+hurd|The GNU Hurd console server,
+ am, bce, bw, eo, km, mir, msgr, xon,
+ colors#8, it#8, ncv#18, pairs#64,
+ acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+ clear=\Ec, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
+ cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B,
+ cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
+ cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[34l, dch=\E[%p1%dP,
+ dch1=\E[P, dim=\E[2m, dl=\E[%p1%dM, dl1=\E[M,
+ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, flash=\Eg,
+ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@,
+ il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
+ invis=\E[8m, kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\EOD,
+ kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~,
+ kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+ kf2=\EOQ, kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf5=\E[15~,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+ kspd=^Z, nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\E[T,
+ rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E[10m, rmir=\E[4l,
+ rmso=\E[27m, rmul=\E[24m, rs1=\EM\E[?1000l, sc=\E7,
+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+ sgr0=\E[0m, sitm=\E[3m, smacs=\E[11m, smir=\E[4h,
+ smso=\E[7m, smul=\E[4m, vpa=\E[%i%p1%dd, grbom=\E[>1l,
+ gsbom=\E[>1h,
+
#### OSF Unix
#
# Entry for the DNARD OpenFirmware console, close to ANSI but not quite.
#
# (still unfinished, but good enough so far.)
-ofcons,
+ofcons|DNARD OpenFirmware console,
bw,
cols#80, lines#30,
bel=^G, blink=\2337;2m, bold=\2331m, clear=^L, cr=^M,
sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
sgr0=\2330m,
-# NetBSD "wscons" emulator in vt220 mode
-# These are micro-minimal and probably need to be redone for real
-# after the manner of the pcvt entries.
+# NetBSD "wscons" emulator in vt220 mode.
+# This entry is based on the NetBSD termcap entry, correcting the ncv value.
+# The emulator renders underlined text in red. Colors are otherwise usable.
+#
+# Testing the emulator and reading the source code (NetBSD 2.0), it appears
+# that "vt220" is inaccurate. There are a few vt220-features, but most of the
+# vt220 screens in vttest do not work with this emulator. For instance, it
+# identifies itself (primary DA response) as a vt220 with selective erase. But
+# the selective erase feature does not work. The secondary response is copied
+# from Kermit's emulation of vt220, does not correspond to actual vt220. At
+# the level of detail in a termcap, it is a passable emulator, since ECH does
+# work. Don't use it on a VMS system -TD
wsvt25|NetBSD wscons in 25 line DEC VT220 mode,
- cols#80, lines#25, use=vt220,
+ bce, msgr,
+ colors#8, cols#80, it#8, lines#25, ncv#2, pairs#64,
+ is2=\E[r\E[25;1H, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
+ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+ kf9=\E[20~, khome=\E[7~, op=\E[m, setab=\E[4%p1%dm,
+ setaf=\E[3%p1%dm, use=vt220,
wsvt25m|NetBSD wscons in 25 line DEC VT220 mode with Meta,
- km,
- cols#80, lines#25, use=vt220,
+ km, use=wsvt25,
# `rasterconsole' provided by 4.4BSD, NetBSD and OpenBSD on SPARC, and
# DECstation/pmax.
cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
cvvis=\E[=1C, dch=\E[%p1%dP, dch1=\E[P, dim=\E[30;1m,
- dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, home=\E[H,
- hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS, kb2=\E[E,
- kbs=^H, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
- kcuu1=\E[A, kdch1=\177, kend=\E[F, kf1=\E[M, kf10=\E[V,
- kf11=\E[W, kf12=\E[X, kf13=\E[Y, kf14=\E[Z, kf15=\E[a,
- kf16=\E[b, kf17=\E[c, kf18=\E[d, kf19=\E[e, kf2=\E[N,
- kf20=\E[f, kf21=\E[g, kf22=\E[h, kf23=\E[i, kf24=\E[j,
- kf25=\E[k, kf26=\E[l, kf27=\E[m, kf28=\E[n, kf29=\E[o,
- kf3=\E[O, kf30=\E[p, kf31=\E[q, kf32=\E[r, kf33=\E[s,
- kf34=\E[t, kf35=\E[u, kf36=\E[v, kf37=\E[w, kf38=\E[x,
- kf39=\E[y, kf4=\E[P, kf40=\E[z, kf41=\E[@, kf42=\E[[,
- kf43=\E[\\, kf44=\E[], kf45=\E[\^, kf46=\E[_, kf47=\E[`,
- kf48=\E[{, kf5=\E[Q, kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U,
- khome=\E[H, kich1=\E[L, knp=\E[G, kpp=\E[I, nel=\E[E,
- op=\E[x, rev=\E[7m, ri=\E[T, rin=\E[%p1%dT, rmso=\E[m,
- rs2=\E[x\E[m\Ec, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
+ home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich=\E[%p1%d@,
+ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=\E[S,
+ indn=\E[%p1%dS, kb2=\E[E, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\177, kend=\E[F,
+ kf1=\E[M, kf10=\E[V, kf11=\E[W, kf12=\E[X, kf13=\E[Y,
+ kf14=\E[Z, kf15=\E[a, kf16=\E[b, kf17=\E[c, kf18=\E[d,
+ kf19=\E[e, kf2=\E[N, kf20=\E[f, kf21=\E[g, kf22=\E[h,
+ kf23=\E[i, kf24=\E[j, kf25=\E[k, kf26=\E[l, kf27=\E[m,
+ kf28=\E[n, kf29=\E[o, kf3=\E[O, kf30=\E[p, kf31=\E[q,
+ kf32=\E[r, kf33=\E[s, kf34=\E[t, kf35=\E[u, kf36=\E[v,
+ kf37=\E[w, kf38=\E[x, kf39=\E[y, kf4=\E[P, kf40=\E[z,
+ kf41=\E[@, kf42=\E[[, kf43=\E[\\, kf44=\E[], kf45=\E[\^,
+ kf46=\E[_, kf47=\E[`, kf48=\E[{, kf5=\E[Q, kf6=\E[R,
+ kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H, kich1=\E[L,
+ knp=\E[G, kpp=\E[I, nel=\E[E, op=\E[x, rc=\E8, rev=\E[7m,
+ ri=\E[T, rin=\E[%p1%dT, rmso=\E[m, rs2=\E[x\E[m\Ec, sc=\E7,
+ setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ sgr=\E[0%?%p1%t;2;7%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
sgr0=\E[m, smso=\E[7m, vpa=\E[%i%p1%dd,
cons25|ansis|ansi80x25|freebsd console (25-line ansi mode),
acsc=-\030.^Y0\333`\004a\260f\370g\361h\261i\025j\331k\277l\332m\300n\305q\304t\303u\264v\301w\302x\263y\363z\362~\371,
use=cons25w,
cons25-m|ansis-mono|ansi80x25-mono|freebsd console (25-line mono ansi mode),
colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, smul=\E[4m,
- use=cons25,
+ bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
+ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
+ smul=\E[4m, use=cons25,
cons30|ansi80x30|freebsd console (30-line ansi mode),
lines#30, use=cons25,
cons30-m|ansi80x30-mono|freebsd console (30-line mono ansi mode),
use=cons25w,
cons25r-m|pc3r-m|ibmpc3r-mono|cons25-koi8r-m|freebsd console w/koi8-r cyrillic (mono),
colors@, pairs@,
- op@, rmul=\E[m, setab@, setaf@, smul=\E[4m, use=cons25r,
+ op@, rmul=\E[m, setab@, setaf@,
+ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;30;1%;%?%p6%t;1%;m,
+ smul=\E[4m, use=cons25r,
cons50r|cons50-koi8r|freebsd console w/koi8-r cyrillic (50 lines),
lines#50, use=cons25r,
cons50r-m|cons50-koi8r-m|freebsd console w/koi8-r cyrillic (50-line mono),
use=cons25w,
cons25l1-m|cons25-iso-m|freebsd console w/iso 8859-1 chars (mono),
colors@, pairs@,
- bold@, dim@, op@, rmul=\E[m, setab@, setaf@, smul=\E[4m,
- use=cons25l1,
+ bold@, dim@, op@, rmul=\E[m, setab@, setaf@,
+ sgr=\E[0%?%p1%t;2;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m,
+ smul=\E[4m, use=cons25l1,
cons50l1|cons50-iso8859|freebsd console w/iso 8859-1 chars (50 lines),
lines#50, use=cons25l1,
cons50l1-m|cons50-iso-m|freebsd console w/iso 8859-1 chars (50-line mono),
#### DEC VT52
# (<acsc>/<rmacs>/<smacs> capabilities aren't in DEC's official entry -- esr)
+#
+# Actually (TD pointed this out at the time the acsc string was added):
+# vt52 shouldn't define full acsc since most of the cells don't match.
+# see vt100 manual page A-31. This is the list that does match:
+# f degree
+# g plus/minus
+# h right-arrow
+# k down-arrow
+# m scan-1
+# o scan-3
+# q scan-5
+# s scan-7
+# The line-drawing happens to work in several terminal emulators, but should
+# not be used as a guide to the capabilities of the vt52. Note in particular
+# that vt52 does not support line-drawing characters (the scan-X values refer
+# to a crude plotting feature) -TD
vt52|dec vt52,
OTbs,
cols#80, it#8, lines#24,
- acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, clear=\EH\EJ, cr=^M, cub1=\ED, cud1=\EB, cuf1=\EC,
+ acsc=ffgghhompoqqss.k, bel=^G, clear=\EH\EJ, cr=^M,
+ cub1=\ED, cud1=\EB, cuf1=\EC,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c, cuu1=\EA, ed=\EJ,
el=\EK, home=\EH, ht=^I, ind=^J, kbs=^H, kcub1=\ED, kcud1=\EB,
kcuf1=\EC, kcuu1=\EA, nel=^M^J, ri=\EI, rmacs=\EG, smacs=\EF,
#
# (vt100: I added <rmam>/<smam> based on the init string, also <OTbs>. -- esr)
vt100|vt100-am|dec vt100 (w/advanced video),
- OTbs, am, msgr, xenl, xon,
+ OTbs, am, mc5i, msgr, xenl, xon,
cols#80, it#8, lines#24, vt#3,
acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m$<2>, bold=\E[1m$<2>,
cup=\E[%i%p1%d;%p2%dH$<5>, cuu=\E[%p1%dA,
cuu1=\E[A$<2>, ed=\E[J$<50>, el=\E[K$<3>, el1=\E[1K$<3>,
enacs=\E(B\E)0, home=\E[H, ht=^I, hts=\EH, ind=^J, kbs=^H,
- kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, rc=\E8,
- rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
+ kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, lf1=pf1,
+ lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[0i, mc4=\E[4i, mc5=\E[5i,
+ rc=\E8, rev=\E[7m$<2>, ri=\EM$<5>, rmacs=^O, rmam=\E[?7l,
rmkx=\E[?1l\E>, rmso=\E[m$<2>, rmul=\E[m$<2>,
rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h, sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;$<2>,
# This entry (or vt102-nsgr) is probably the right thing to use for
# these.
vt102|dec vt102,
- mir,
dch1=\E[P, dl1=\E[M, il1=\E[L, rmir=\E[4l, smir=\E[4h,
use=vt100,
vt102-w|dec vt102 in wide mode,
sgr@, sgr0=\E[m, use=vt102,
# VT125 Graphics CRT. Clear screen also erases graphics
+# Some vt125's came configured with vt102 support.
vt125|vt125 graphics terminal,
+ mir,
clear=\E[H\E[2J\EPpS(E)\E\\$<50>, use=vt100,
# This isn't a DEC entry, it came from University of Wisconsin.
kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\EOQ,
kf20=\E[34~, kf3=\EOR, kf4=\EOS, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, khlp=\E[28~,
- khome=\E[H, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~,
- kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i,
- mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
+ kich1=\E[2~, knp=\E[6~, kpp=\E[5~, krdo=\E[29~, kslt=\E[4~,
+ lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4, mc0=\E[i, mc4=\E[4i,
+ mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m, ri=\EM,
rmacs=\E(B$<4>, rmam=\E[?7l, rmir=\E[4l, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=\E(0$<2>,
- smam=\E[?7h, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+ sgr0=\E[m\E(B, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
+ smso=\E[7m, smul=\E[4m, tbc=\E[3g,
vt220-w|vt200-w|DEC vt220 in wide mode,
cols#132,
rs3=\E[?3h, use=vt220,
kfnd=\2331~, khlp=\23328~, khome=\233H, kich1=\2332~,
knp=\2336~, kpp=\2335~, krdo=\23329~, kslt=\2334~, lf1=pf1,
lf2=pf2, lf3=pf3, lf4=pf4, mc0=\233i, mc4=\2334i, mc5=\2335i,
- nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=^O, rmam=\233?7l,
- rmir=\2334l, rmso=\23327m, rmul=\23324m, rs1=\233?3l,
- sc=\E7, sgr0=\233m, smacs=^N, smam=\233?7h, smir=\2334h,
+ nel=\EE, rc=\E8, rev=\2337m, ri=\EM, rmacs=\E(B,
+ rmam=\233?7l, rmir=\2334l, rmso=\23327m, rmul=\23324m,
+ rs1=\233?3l, sc=\E7,
+ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h, smir=\2334h,
smso=\2337m, smul=\2334m, tbc=\2333g,
-#
# vt220d:
# This vt220 description regards F6--F10 as the second block of function keys
# at the top of the keyboard. This mapping follows the description given
#vt320|DEC VT320 in vt100 emulation mode,
# use=vt220,
-#
# Use v320n for SCO's LYRIX. Otherwise, use Adam Thompson's vt320-nam.
#
vt320nam|v320n|DEC VT320 in vt100 emul. mode with NO AUTO WRAP mode,
ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, fsl=\E[0$},
home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
il1=\E[L, ind=\ED,
- is2=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kdch1=\E[3~, kel=\E[4~, kf10=\E[21~, kf11=\E[23~,
kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[m,
rmul=\E[m,
- rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- sc=\E7, sgr0=\E[m, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+ sc=\E7,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
tsl=\E[1$}\E[H\E[K, use=vt220+keypad,
vt320-nam|vt300-nam|dec vt320 7 bit terminal with no am to make SAS happy,
am@,
- is2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3l\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+ is2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+ rs2=\E>\E[?3l\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
use=vt320,
# We have to init 132-col mode, not 80-col mode.
vt320-w|vt300-w|dec vt320 wide 7 bit terminal,
cols#132, wsl#132,
- is2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
+ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
use=vt320,
vt320-w-nam|vt300-w-nam|dec vt320 wide 7 bit terminal with no am,
am@,
- is2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
- rs2=\E>\E[?3h\E[?4l\E[5?l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+ is2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
+ rs2=\E>\E[?3h\E[?4l\E[?5l\E[?7l\E[?8h\E[1;24r\E[24;1H,
use=vt320-w,
# VT330 and VT340 -- These are ReGIS and SIXEL graphics terminals
cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=^J,
cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH,
- cuu=\E[%p1%dA, cuu1=\E[A, cvvis=\E[?25h, dch=\E[%p1%dP,
- dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
- flash=\E[?5h\E[?5l$<200/>, fsl=\E[$}, home=\E[H, ht=^I,
- hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
+ cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P,
+ dl=\E[%p1%dM, dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$},
+ ed=\E[J, el=\E[K, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
+ home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL,
+ il1=\E[L, ind=\ED,
is2=\E<\E F\E>\E[?1h\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
kbs=^H, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=^O,
+ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E[?3l, sc=\E7, sgr0=\E[m, smacs=^N,
- smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, tsl=\E[2$~\E[1$}\E[1;%dH,
+ rmul=\E[24m, rs1=\E[?3l, sc=\E7,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ tsl=\E[2$~\E[1$}\E[1;%dH,
# DEC doesn't supply a vt400 description, so we add Daniel Glasser's
# (originally written with vt420 as its primary name, and usable for it).
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+ dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J$<10/>,
el=\E[K$<4/>, flash=\E[?5h\E[?5l$<200/>, fsl=\E[$},
home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
il=\E[%p1%dL, il1=\E[L, ind=\ED,
kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS, kf6=\E[17~,
kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, lf1=pf1, lf2=pf2,
lf3=pf3, lf4=pf4, nel=^M\ED, rc=\E8, rev=\E[7m,
- rf=/usr/share/tabset/vt300, ri=\EM, rmacs=^O,
+ rf=/usr/share/tabset/vt300, ri=\EM, rmacs=\E(B,
rmam=\E[?7l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m,
- rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7, sgr0=\E[m,
- smacs=^N, smam=\E[?7h, smir=\E[4h, smkx=\E[?1h\E=,
- smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ rmul=\E[24m, rs1=\E<\E[?3l\E[!p\E[?7h, sc=\E7,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;$<2>,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smir=\E[4h,
+ smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
tsl=\E[2$~\E[1$}\E[1;%dH,
# (vt420: I removed <kf0>, it collided with <kf10>. I also restored
sgr0=\E[m$<2>, smacs=\E(0$<2>, smam=\E[?7h, smir=\E[4h,
smkx=\E=, smso=\E[7m, smul=\E[4m,
-#
# DEC VT220 and up support DECUDK (user-defined keys). DECUDK (i.e., pfx)
# takes two parameters, the key and the string. Translating the key is
# straightforward (keys 1-5 are not defined on real terminals, though some
hts=\EH, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
use=vt220, use=ecma+color,
-# PuTTY 0.51 (released 14 December 2000)
+# PuTTY 0.55 (released 3 August 2004)
# http://www.chiark.greenend.org.uk/~sgtatham/putty/
#
+# Comparing with 0.51, vttest is much better (only a few problems with the
+# cursor position reports and wrapping).
+#
+# PuTTY 0.51 (released 14 December 2000)
+#
# This emulates vt100 + vt52 (plus a few vt220 features: ech, SRM, DECTCEM, as
# well as SCO and Atari, color palettes from Linux console). Reading the code,
-# it is intended to be VT102 plus selected features By default, it sets $TERM
+# it is intended to be VT102 plus selected features. By default, it sets $TERM
# to xterm, which is incorrect, since several features are misimplemented:
#
# Alt+key always sends ESC+key, so 'km' capability is removed.
#
# Several features such as backspace/delete are optional; this entry documents
# the default behavior -TD
-putty|xterm clone (win32),
- am, bw, ccc, km, mir, msgr, xenl,
- colors#8, cols#80, it#8, lines#24, pairs#64,
- acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
- bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+
+putty|PuTTY terminal emulator,
+ am, bce, bw, ccc, hs, mir, msgr, xenl, xon,
+ colors#8, it#8, ncv#22, pairs#64,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
+ clear=\E[H\E[J, cnorm=\E[?25h, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
- cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
- cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, enacs=\E)0, home=\E[H,
- hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L,
- ind=^J,
- initc=\E]P%?%p1%{9}%>%t%p1%{10}%-%'a'%+%c%e%p1%d%;%p2%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p3%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%p4%{255}%&%Pr%gr%{16}%/%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;%gr%{15}%&%Px%?%gx%{9}%>%t%gx%{10}%-%'A'%+%c%e%gx%d%;,
- is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
- kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~,
- kpp=\E[5~, kslt=\E[4~, oc=\E]R, op=\E[39;49m, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmam=\E[?7l,
- rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
+ cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM,
+ dch=\E[%p1%dP, dch1=\E[P,
+ dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;,
+ dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX,
+ ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+ flash=\E[?5h\E[?5l, fsl=^G, home=\E[H, hpa=\E[%i%p1%dG,
+ ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, ind=^J,
+ indn=\E[%p1%dS,
+ initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
+ is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R,
+ kb2=\E[G, kbs=\177, kcan=^C, kcbt=\E[Z, kcub1=\E[D,
+ kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
+ kend=\E[4~, kf1=\E[11~, kf10=\E[21~, kf11=\E[23~,
+ kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
+ kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
+ kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, kf4=\E[14~,
+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+ kspd=^Z, nel=^M^J, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m,
+ ri=\EM, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l,
+ rmcup=\E[2J\E[?47l, rmir=\E[4l, rmpch=\E[10m,
rmso=\E[27m, rmul=\E[24m,
- rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>, sc=\E7,
+ rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l,
+ s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
- smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
- tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
- vpa=\E[%i%p1%dd,
+ sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+ sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h,
+ smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m,
+ tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c,
+ u9=\E[c, vpa=\E[%i%p1%dd,
+vt100-putty|Reset Putty to pure vt100,
+ rs2=\E<\E["p\Ec\E[?3l\E]R\E[40"p\E[61"p\E[50;1;2"p,
+ use=vt100,
# This entry is for Tera Term Pro version 2.3, for MS-Windows 95/NT written by
# T. Teranishi dated Mar 10, 1998. It is a free software terminal emulator
kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
kpp=\E[5~, kslt=\E[4~, op=\E[100m, rev=\E[7m, ri=\EM,
- rmso=\E[27m, rmul=\E[24m, sgr0=\E[m, smso=\E[7m,
+ rmso=\E[27m, rmul=\E[24m, sgr0=\E[0m\017, smso=\E[7m,
smul=\E[4m, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
vpa=\E[%i%p1%dd, use=klone+color, use=vt100,
# This version was released in XFree86 4.3.
xterm-xf86-v43|xterm terminal emulator (XFree86 4.3 Window System),
- npc,
kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~,
kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C,
- kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\EO2P, kf14=\EO2Q,
- kf15=\EO2R, kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~,
- kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~,
- kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P,
- kf26=\EO5Q, kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~,
- kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
+ kbeg@,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+ use=xterm-xf86-v40,
+
+# This version was released in XFree86 4.4.
+xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
+ cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
+ rin=\E[%p1%dT, use=xterm-xf86-v43,
+
+# This is the most common alias for xterm-new.
+xterm-xfree86|xterm terminal emulator (XFree86),
+ use=xterm-new,
+# use=xterm-old,
+
+# This version is current (XFree86 xterm patch #192).
+xterm-new|modern xterm terminal emulator,
+ npc,
+ indn=\E[%p1%dS, kDC=\E[3;2~, kEND=\E[1;2F, kHOM=\E[1;2H,
+ kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, kPRV=\E[5;2~,
+ kRIT=\E[1;2C, kb2=\EOE, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB,
+ kcuf1=\EOC, kcuu1=\EOA, kend=\EOF, kent=\EOM, khome=\EOH,
+ kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+ rin=\E[%p1%dT, use=xterm+pcfkeys, use=xterm-basic,
+#
+# This fragment describes as much of XFree86 xterm's "pc-style" function
+# keys as will fit into terminfo's 60 function keys.
+# From ctlseqs.ms:
+# Code Modifiers
+# ---------------------------------
+# 2 Shift
+# 3 Alt
+# 4 Shift + Alt
+# 5 Control
+# 6 Shift + Control
+# 7 Alt + Control
+# 8 Shift + Alt + Control
+# ---------------------------------
+# The meta key may also be used as a modifier in this scheme, adding another
+# bit to the parameter.
+xterm+pcfkeys|fragment for PC-style fkeys,
+ kf1=\EOP, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R, kf16=\EO2S,
+ kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ,
+ kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+ kf23=\E[23;2~, kf24=\E[24;2~, kf25=\EO5P, kf26=\EO5Q,
+ kf27=\EO5R, kf28=\EO5S, kf29=\E[15;5~, kf3=\EOR,
+ kf30=\E[17;5~, kf31=\E[18;5~, kf32=\E[19;5~,
kf33=\E[20;5~, kf34=\E[21;5~, kf35=\E[23;5~,
kf36=\E[24;5~, kf37=\EO6P, kf38=\EO6Q, kf39=\EO6R,
kf4=\EOS, kf40=\EO6S, kf41=\E[15;6~, kf42=\E[17;6~,
kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
- kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf5=\E[15~,
- kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, khome=\EOH,
- kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
- use=xterm-basic,
-
-# This version is current (XFree86 xterm patch #180).
-xterm-xfree86|xterm-new|xterm terminal emulator (XFree86 4.4 Window System),
- cnorm=\E[?12l\E[?25h, cvvis=\E[?12;25h, indn=\E[%p1%dS,
- rin=\E[%p1%dT, use=xterm-xf86-v43,
+ kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~, kf49=\EO3P,
+ kf5=\E[15~, kf50=\EO3Q, kf51=\EO3R, kf52=\EO3S,
+ kf53=\E[15;3~, kf54=\E[17;3~, kf55=\E[18;3~,
+ kf56=\E[19;3~, kf57=\E[20;3~, kf58=\E[21;3~,
+ kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, kf61=\EO4P,
+ kf62=\EO4Q, kf63=\EO4R, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ kDN=\E[1;2B, kDN5=\E[1;5B, kDN6=\E[1;6B, kLFT5=\E[1;5D,
+ kLFT6=\E[1;6D, kRIT5=\E[1;5C, kRIT6=\E[1;6C, kUP=\E[1;2A,
+ kUP5=\E[1;5A, kUP6=\E[1;6A,
#
# This chunk is used for building the VT220/Sun/PC keyboard variants.
xterm-basic|xterm terminal emulator - common (XFree86),
- am, bce, km, mc5i, mir, msgr, xenl,
+ OTbs, am, bce, km, mc5i, mir, msgr, xenl, AX,
colors#8, cols#80, it#8, lines#24, pairs#64,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
- clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+ clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
- ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+ cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
+ dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
ind=^J, invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kbs=^H,
kdch1=\E[3~, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
- memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
- rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>,
- rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
+ memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+ rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l, rmir=\E[4l,
+ rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\Ec,
rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?1049h,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m,
+ sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
vpa=\E[%i%p1%dd,
# From: David J. MacKenzie <djm@va.pubnix.com>, 14 Nov 1997
+# In retrospect, something like xterm-r6 was intended here -TD
xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
# This is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
xterm-16color|xterm with 16 colors like aixterm,
- ncv#32, use=ibm+16color, use=xterm-xfree86,
+ ncv#32, use=ibm+16color, use=xterm-new,
# These variants of XFree86 3.9.16 xterm are built as a configure option.
xterm-256color|xterm with 256 colors,
ccc,
- colors#256, ncv#32, pairs#256,
+ colors#256, pairs#32767,
initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
setab=\E[48;5;%p1%dm, setaf=\E[38;5;%p1%dm,
setb=\E[48;5;%p1%dm, setf=\E[38;5;%p1%dm,
- use=xterm-xfree86,
+ use=xterm-new,
xterm-88color|xterm with 88 colors,
- colors#88, pairs#88, use=xterm-256color,
+ colors#88, pairs#7744, use=xterm-256color,
# These two are used to demonstrate the any-event mouse support, i.e., by
# using an extended name "XM" which tells ncurses to put the terminal into
# a special mode when initializing the xterm mouse.
xterm-1002|testing xterm-mouse,
- XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-xfree86,
+ XM=\E[?1002%?%p1%{1}%=%th%el%;, use=xterm-new,
xterm-1003|testing xterm-mouse,
- XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-xfree86,
+ XM=\E[?1003%?%p1%{1}%=%th%el%;, use=xterm-new,
# This is another variant, for XFree86 4.0 xterm (T.Dickey)
# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
# CSI \E [ \233
#
xterm-8bit|xterm terminal emulator 8-bit controls (X Window System),
- OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl,
+ OTbs, am, bce, km, mc5i, mir, msgr, npc, xenl, AX,
colors#8, cols#80, it#8, lines#24, pairs#64,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\2335m, bold=\2331m, cbt=\233Z,
- civis=\233?25l, clear=\233H\2332J, cnorm=\233?25h, cr=^M,
- csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cub1=^H,
- cud=\233%p1%dB, cud1=^J, cuf=\233%p1%dC, cuf1=\233C,
- cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA, cuu1=\233A,
+ civis=\233?25l, clear=\233H\2332J,
+ cnorm=\233?25l\233?25h, cr=^M, csr=\233%i%p1%d;%p2%dr,
+ cub=\233%p1%dD, cub1=^H, cud=\233%p1%dB, cud1=^J,
+ cuf=\233%p1%dC, cuf1=\233C, cup=\233%i%p1%d;%p2%dH,
+ cuu=\233%p1%dA, cuu1=\233A, cvvis=\233?12;25h,
dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM, dl1=\233M,
ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
- enacs=\E(B\E)0, flash=\233?5h$<100/>\233?5l,
- home=\233H, hpa=\233%i%p1%dG, ht=^I, hts=\210,
- ich=\233%p1%d@, il=\233%p1%dL, il1=\233L, ind=^J,
- invis=\2338m,
- is2=\E7\E G\233r\233m\233?7h\233?1;3;4;6l\2334l\E8\E>,
+ flash=\233?5h$<100/>\233?5l, home=\233H,
+ hpa=\233%i%p1%dG, ht=^I, hts=\210, ich=\233%p1%d@,
+ il=\233%p1%dL, il1=\233L, ind=^J, invis=\2338m,
+ is2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
ka1=\217w, ka3=\217u, kb2=\217y, kbeg=\217E, kbs=^H,
kc1=\217q, kc3=\217s, kcbt=\233Z, kcub1=\217D, kcud1=\217B,
kcuf1=\217C, kcuu1=\217A, kdch1=\2333~, kend=\2334~,
kf9=\23320~, khome=\2331~, kich1=\2332~, kmous=\233M,
knp=\2336~, kpp=\2335~, mc0=\233i, mc4=\2334i, mc5=\2335i,
meml=\El, memu=\Em, op=\23339;49m, rc=\E8, rev=\2337m,
- ri=\215, rmacs=^O, rmam=\233?7l, rmcup=\233?1049l,
+ ri=\215, rmacs=\E(B, rmam=\233?7l, rmcup=\233?1049l,
rmir=\2334l, rmkx=\233?1l\E>, rmso=\23327m, rmul=\23324m,
rs1=\Ec,
- rs2=\E[62"p\E G\E7\233r\E8\233m\233?7h\233?1;3;4;6l\2334l\E>,
+ rs2=\E[62"p\E G\233m\233?7h\E>\E7\233?1;3;4;6l\2334l\233r\E8,
sc=\E7, setab=\2334%p1%dm, setaf=\2333%p1%dm,
setb=\2334%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
setf=\2333%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
- sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
- sgr0=\233m^O, smacs=^N, smam=\233?7h, smcup=\233?1049h,
- smir=\2334h, smkx=\233?1h\E=, smso=\2337m, smul=\2334m,
- tbc=\2333g, u6=\233[%i%d;%dR, u7=\E[6n, u8=\233[?1;2c,
- u9=\E[c, vpa=\233%i%p1%dd,
+ sgr=\2330%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\E(0%e\E(B%;,
+ sgr0=\2330m\E(B, smacs=\E(0, smam=\233?7h,
+ smcup=\233?1049h, smir=\2334h, smkx=\233?1h\E=,
+ smso=\2337m, smul=\2334m, tbc=\2333g, u6=\233[%i%d;%dR,
+ u7=\E[6n, u8=\233[?1;2c, u9=\E[c, vpa=\233%i%p1%dd,
xterm-hp|XFree86 xterm with hpterm function keys,
kclr=\EJ, kcub1=\ED, kcud1=\EB, kcuf1=\EC, kcuu1=\EA,
kf6=\E[R, kf7=\E[S, kf8=\E[T, kf9=\E[U, khome=\E[H,
kich1=\E[L, knp=\E[G, kpp=\E[I, use=xterm-basic,
-# The xterm-xfree86 description has all of the features, but is not completely
+# The xterm-new description has all of the features, but is not completely
# compatible with vt220. If you are using a Sun or PC keyboard, set the
# sunKeyboard resource to true:
# + maps the editing keypad
# + uses DEC-style control sequences for the application keypad.
#
xterm-vt220|XFree86 xterm emulating vt220,
- kbeg=\EOu, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
- kcuu1=\EOA, kend=\E[4~, kf10=\E[21~, kf11=\E[23~,
- kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~,
- kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~,
- kf20=\E[34~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
- kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, use=xterm-basic,
- use=vt220+keypad,
+ kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kend=\E[4~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf20=\E[34~,
+ kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~,
+ khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
+ use=xterm-basic, use=vt220+keypad,
xterm-vt52|XFree86 xterm emulating dec vt52,
cols#80, it#8, lines#24,
# This is xterm for ncurses.
xterm|xterm terminal emulator (X Window System),
- use=xterm-r6,
-# use=xterm-xfree86,
+ use=xterm-new,
# These entries allow access to the X titlebar and icon name as a status line.
# Note that twm (and possibly window managers descended from it such as tvtwm,
eslok, hs,
acsc=++\,\,--..00ii``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
csr=\E[%i%p1%d;%p2%dr, dsl=\E[?H, enacs=, fsl=\E[?F,
- kmous=\E[M, rc=\E8, rmacs=\E(B, sc=\E7, smacs=\E(0,
- tsl=\E[?E\E[?%i%dT, use=xterm-r6, use=ecma+color,
+ kmous=\E[M, rc=\E8, rmacs=\E(B, rmam=\E[?7l, sc=\E7,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h,
+ tsl=\E[?E\E[?%i%p1%dT, use=xterm-r6, use=ecma+color,
kterm-color|kterm-co|kterm with ANSI colors,
ncv@, use=kterm, use=ecma+color,
# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
rs1=\E(B\017\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- sgr0=\E[m, smacs=^N, smam=\E[?7h,
+ sgr0=\E[0m\017, smacs=^N, smam=\E[?7h,
smcup=\E[?1;41s\E[?1;41h\E=, smir=\E[4h, smso=\E[7m,
smul=\E[4m, use=ecma+color, use=vt220+keypad,
civis=\E[?25l, cnorm=\E[?25h, kdch1=\E[3~, kf1=\EOP,
kf2=\EOQ, kf3=\EOR, kf4=\EOS, rmam=\E[?7l,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\016%e\017%;,
- smam=\E[?7h, tbc@, use=xterm-color,
+ sgr0=\E[0m\017, smam=\E[?7h, tbc@, use=xterm-color,
# GNOME Terminal 2.0.1 (Redhat 8.0)
#
# more of its bugs using vttest.
#
# However, note that bce and msgr are broken in this release. Tabs (tbc and
-# hts) are broken as well. Sometimes flash (as in xterm-xfree86) works.
+# hts) are broken as well. Sometimes flash (as in xterm-new) works.
#
# kf1 and kf10 are not tested since they're assigned (hardcoded?) to menu
# operations. Shift-tab generates a distinct sequence so it can be argued
#
# bce and msgr are repaired.
gnome-rh90|GNOME Terminal,
- bce, msgr, use=gnome-rh80,
+ bce, msgr,
+ hpa=\E[%i%p1%dG, kDC=\E[3;2~, kLFT=\EO2D, kRIT=\EO2C,
+ kb2=\E[E, kcbt=\E[Z, kend=\EOF, khome=\EOH, tbc=\E[3g,
+ vpa=\E[%i%p1%dd, use=xterm+pcfkeys, use=gnome-rh80,
gnome|GNOME Terminal,
+ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
use=gnome-rh90,
# This is kvt 0-18.7, shipped with Redhat 6.0 (though whether it supports bce
# vt220, which is doubly incorrect because it does not implement vt220
# control sequences except for a few special cases). Treat it as a
# mildly-broken vt102.
+#
+# Update for konsole 1.3.2:
+# The 1049 private mode works (but see the other xterm screens in vttest).
+# Primary Device Attributes now returns the code for a vt100 with advanced
+# video option. Perhaps that's intended to be a "mildly-broken vt102".
konsole-base|KDE console window,
bce, km@, npc,
bel@, blink=\E[5m, civis=\E[?25l, cnorm=\E[?25h,
ech=\E[%p1%dX, flash=\E[?5h$<100/>\E[?5l,
- hpa=\E[%i%p1%dG, kbs@, kdch1@, kend@, kf1@, kf10@, kf11@, kf12@,
- kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@, kf2@, kf20@, kf3@,
- kf4@, kf5@, kf6@, kf7@, kf8@, kf9@, kfnd@, khome@, kslt@,
- rmam=\E[?7l, rmso=\E[27m, rmul=\E[24m,
+ hpa=\E[%i%p1%dG, indn=\E[%p1%dS, kbs=\177, kdch1@,
+ kend=\E[4~, kf1@, kf10@, kf11@, kf12@, kf13@, kf14@, kf15@, kf16@,
+ kf17@, kf18@, kf19@, kf2@, kf20@, kf3@, kf4@, kf5@, kf6@, kf7@, kf8@,
+ kf9@, kfnd@, khome=\E[1~, kslt@, rin=\E[%p1%dT, rmam=\E[?7l,
+ rmso=\E[27m, rmul=\E[24m,
+ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- smam=\E[?7h, vpa=\E[%i%p1%dd, use=ecma+color,
- use=xterm-r6,
+ sgr0=\E[0m\017, smam=\E[?7h, vpa=\E[%i%p1%dd,
+ use=ecma+color, use=xterm-r6,
konsole-linux|KDE console window with linux keyboard,
kdch1=\E[3~, kf1=\E[[A, kf10=\E[21~, kf11=\E[23~,
kf12=\E[24~, kf13@, kf14@, kf15@, kf16@, kf17@, kf18@, kf19@,
# The value for kbs reflects local customization rather than the settings used
# for XFree86 xterm.
konsole-xf4x|KDE console window with keyboard for XFree86 4.x xterm,
- kbs=^H, kend=\EOF, kf1=\EOP, kf2=\EOQ, kf3=\EOR, kf4=\EOS,
+ kend=\EOF, kf1=\EOP, kf13=\EO2P, kf14=\EO2Q, kf15=\EO2R,
+ kf16=\EO2S, kf17=\E[15;2~, kf18=\E[17;2~, kf19=\E[18;2~,
+ kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, kf22=\E[21;2~,
+ kf23=\E[23;2~, kf24=\E[24;2~, kf3=\EOR, kf4=\EOS,
khome=\EOH, use=konsole-vt100,
# KDE's "vt100" keyboard has no relationship to any terminal that DEC made, but
# it is still useful for deriving the other entries.
ncv#32, use=ibm+16color, use=konsole,
# make a default entry for konsole
konsole|KDE console window,
- use=konsole-linux,
+ use=konsole-xf4x,
+
+# Based on mlterm 2.8.0's mlterm.ti, with corrections/additions from reading
+# the source code and running tack -TD
+#
+# This is nominally a vt102 emulator, with features borrowed from rxvt and
+# xterm.
+#
+# There are some problems with vttest:
+# save/restore cursor doesn't restore character
+# test of character sets leaves it in line-drawing mode.
+mlterm|multi lingual terminal emulator,
+ am, eslok, km, mc5i, mir, msgr, npc, xenl,
+ colors#8, cols#80, it#8, lines#24, pairs#64,
+ acsc=00``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[2J, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+ ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K, enacs=,
+ home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@,
+ ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, indn=\E[%p1%dS,
+ is2=\E7\E[r\E[m\E[?7h\E[?1;3;4;6l\E[4l\E8\E>,
+ kbs=\177, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA,
+ kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\E[11~, kf10=\E[21~,
+ kf11=\E[23~, kf12=\E[24~, kf2=\E[12~, kf3=\E[13~,
+ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+ kf9=\E[20~, kfnd=\E[1~, khome=\EOH, kich1=\E[2~,
+ kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, mc0=\E[i,
+ nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+ rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l,
+ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E[?1l\E>,
+ rmso=\E[m, rmul=\E[m,
+ rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l,
+ sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7\E[?47h,
+ smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
+ tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
+ vpa=\E[%i%p1%dd,
# From: Thomas Dickey <dickey@clark.net> 04 Oct 1997
# Updated: Oezguer Kesim <kesim@math.fu-berlin.de> 02 Nov 1997
# rxvt is normally configured to look for "xterm" or "xterm-color" as $TERM.
# Since rxvt is not really compatible with xterm, it should be configured as
# "rxvt" (monochrome) and "rxvt-color".
+#
+# removed dch/dch1 because they are inconsistent with bce/ech -TD
rxvt-basic|rxvt terminal base (X Window System),
OTbs, am, bce, eo, km, mir, msgr, xenl, xon,
cols#80, it#8, lines#24,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J,
- el=\E[K, el1=\E[1K, enacs=\E(B\E)0, flash=\E[?5h\E[?5l,
- home=\E[H, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
- il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E[?47l\E=\E[?1l,
- is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
- kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$,
- kPRV=\E[5$, kRIT=\E[c, kbs=^H, kcbt=\E[Z, kcub1=\E[D,
- kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~,
- kel=\E[8\^, kend=\E[8~, kf1=\E[11~, kf10=\E[21~,
- kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~,
- kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~,
- kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~,
- kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
- kf9=\E[20~, kfnd=\E[1~, khome=\E[7~, kich1=\E[2~,
- kmous=\E[M, knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8,
- rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8,
- rmir=\E[4l, rmkx=\E>, rmso=\E[27m, rmul=\E[24m,
+ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+ enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, ht=^I,
+ hts=\EH, ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L,
+ ind=^J, is1=\E[?47l\E=\E[?1l,
+ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, kbs=^H,
+ kcbt=\E[Z, kmous=\E[M, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
+ rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmkx=\E>, rmso=\E[27m,
+ rmul=\E[24m,
rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
- s0ds=\E(B, s1ds=\E(0, sc=\E7, sgr0=\E[0m\017, smacs=^N,
- smcup=\E7\E[?47h, smir=\E[4h, smkx=\E=, smso=\E[7m,
- smul=\E[4m, tbc=\E[3g, use=vt220+keypad,
+ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
+ s0ds=\E(B, s1ds=\E(0, sc=\E7,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+ sgr0=\E[0m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h,
+ smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ use=vt220+keypad, use=rxvt+pcfkeys,
+# Key Codes from rxvt reference:
+#
+# Note: Shift + F1-F10 generates F11-F20
+#
+# For the keypad, use Shift to temporarily override Application-Keypad
+# setting use Num_Lock to toggle Application-Keypad setting if Num_Lock
+# is off, escape sequences toggle Application-Keypad setting.
+# Also note that values of Home, End, Delete may have been compiled
+# differently on your system.
+#
+# Normal Shift Control Ctrl+Shift
+# Tab ^I ESC [ Z ^I ESC [ Z
+# BackSpace ^H ^? ^? ^?
+# Find ESC [ 1 ~ ESC [ 1 $ ESC [ 1 ^ ESC [ 1 @
+# Insert ESC [ 2 ~ paste ESC [ 2 ^ ESC [ 2 @
+# Execute ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+# Select ESC [ 4 ~ ESC [ 4 $ ESC [ 4 ^ ESC [ 4 @
+# Prior ESC [ 5 ~ scroll-up ESC [ 5 ^ ESC [ 5 @
+# Next ESC [ 6 ~ scroll-down ESC [ 6 ^ ESC [ 6 @
+# Home ESC [ 7 ~ ESC [ 7 $ ESC [ 7 ^ ESC [ 7 @
+# End ESC [ 8 ~ ESC [ 8 $ ESC [ 8 ^ ESC [ 8 @
+# Delete ESC [ 3 ~ ESC [ 3 $ ESC [ 3 ^ ESC [ 3 @
+# F1 ESC [ 11 ~ ESC [ 23 ~ ESC [ 11 ^ ESC [ 23 ^
+# F2 ESC [ 12 ~ ESC [ 24 ~ ESC [ 12 ^ ESC [ 24 ^
+# F3 ESC [ 13 ~ ESC [ 25 ~ ESC [ 13 ^ ESC [ 25 ^
+# F4 ESC [ 14 ~ ESC [ 26 ~ ESC [ 14 ^ ESC [ 26 ^
+# F5 ESC [ 15 ~ ESC [ 28 ~ ESC [ 15 ^ ESC [ 28 ^
+# F6 ESC [ 17 ~ ESC [ 29 ~ ESC [ 17 ^ ESC [ 29 ^
+# F7 ESC [ 18 ~ ESC [ 31 ~ ESC [ 18 ^ ESC [ 31 ^
+# F8 ESC [ 19 ~ ESC [ 32 ~ ESC [ 19 ^ ESC [ 32 ^
+# F9 ESC [ 20 ~ ESC [ 33 ~ ESC [ 20 ^ ESC [ 33 ^
+# F10 ESC [ 21 ~ ESC [ 34 ~ ESC [ 21 ^ ESC [ 34 ^
+# F11 ESC [ 23 ~ ESC [ 23 $ ESC [ 23 ^ ESC [ 23 @
+# F12 ESC [ 24 ~ ESC [ 24 $ ESC [ 24 ^ ESC [ 24 @
+# F13 ESC [ 25 ~ ESC [ 25 $ ESC [ 25 ^ ESC [ 25 @
+# F14 ESC [ 26 ~ ESC [ 26 $ ESC [ 26 ^ ESC [ 26 @
+# F15 (Help) ESC [ 28 ~ ESC [ 28 $ ESC [ 28 ^ ESC [ 28 @
+# F16 (Menu) ESC [ 29 ~ ESC [ 29 $ ESC [ 29 ^ ESC [ 29 @
+# F17 ESC [ 31 ~ ESC [ 31 $ ESC [ 31 ^ ESC [ 31 @
+# F18 ESC [ 32 ~ ESC [ 32 $ ESC [ 32 ^ ESC [ 32 @
+# F19 ESC [ 33 ~ ESC [ 33 $ ESC [ 33 ^ ESC [ 33 @
+# F20 ESC [ 34 ~ ESC [ 34 $ ESC [ 34 ^ ESC [ 34 @
+# Application
+# Up ESC [ A ESC [ a ESC O a ESC O A
+# Down ESC [ B ESC [ b ESC O b ESC O B
+# Right ESC [ C ESC [ c ESC O c ESC O C
+# Left ESC [ D ESC [ d ESC O d ESC O D
+# KP_Enter ^M ESC O M
+# KP_F1 ESC O P ESC O P
+# KP_F2 ESC O Q ESC O Q
+# KP_F3 ESC O R ESC O R
+# KP_F4 ESC O S ESC O S
+# XK_KP_Multiply * ESC O j
+# XK_KP_Add + ESC O k
+# XK_KP_Separator , ESC O l
+# XK_KP_Subtract - ESC O m
+# XK_KP_Decimal . ESC O n
+# XK_KP_Divide / ESC O o
+# XK_KP_0 0 ESC O p
+# XK_KP_1 1 ESC O q
+# XK_KP_2 2 ESC O r
+# XK_KP_3 3 ESC O s
+# XK_KP_4 4 ESC O t
+# XK_KP_5 5 ESC O u
+# XK_KP_6 6 ESC O v
+# XK_KP_7 7 ESC O w
+# XK_KP_8 8 ESC O x
+# XK_KP_9 9 ESC O y
+rxvt+pcfkeys|fragment for PC-style fkeys,
+ kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kLFT=\E[d, kNXT=\E[6$,
+ kPRV=\E[5$, kRIT=\E[c, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+ kcuu1=\E[A, kdch1=\E[3~, kel=\E[8\^, kend=\E[8~,
+ kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
+ kf20=\E[34~, kf21=\E[23$, kf22=\E[24$, kf23=\E[11\^,
+ kf24=\E[12\^, kf25=\E[13\^, kf26=\E[14\^, kf27=\E[15\^,
+ kf28=\E[17\^, kf29=\E[18\^, kf3=\E[13~, kf30=\E[19\^,
+ kf31=\E[20\^, kf32=\E[21\^, kf33=\E[23\^, kf34=\E[24\^,
+ kf35=\E[25\^, kf36=\E[26\^, kf37=\E[28\^, kf38=\E[29\^,
+ kf39=\E[31\^, kf4=\E[14~, kf40=\E[32\^, kf41=\E[33\^,
+ kf42=\E[34\^, kf43=\E[23@, kf44=\E[24@, kf5=\E[15~,
+ kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~,
+ khome=\E[7~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kslt=\E[4~,
+ kDN=\E[b, kDN5=\EOb, kDN6=\EOB, kLFT5=\EOd, kLFT6=\EOD,
+ kRIT5=\EOc, kRIT6=\EOC, kUP=\E[a, kUP5=\EOa, kUP6=\EOA,
rxvt|rxvt terminal emulator (X Window System),
ncv@,
- cvvis=\E[?25h, hpa=\E[%i%p1%dG, kf0=\E[21~,
- sgr0=\E[m\017, vpa=\E[%i%p1%dd, use=rxvt-basic,
- use=ecma+color,
+ hpa=\E[%i%p1%dG, kf0=\E[21~, sgr0=\E[m\017,
+ vpa=\E[%i%p1%dd, use=rxvt-basic, use=ecma+color,
rxvt-color|rxvt terminal emulator (X Window System),
use=rxvt,
rxvt-xpm|rxvt terminal emulator (X Window System),
rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
rmkx=, rmso=\E[27m, rmul=\E[24m,
rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
- rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>,
+ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h,
sc=\E7,
sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7\E[?47h,
cols#80, lines#24, use=xterm-sun,
# This is for the extensible terminal emulator on the X11R6 contrib tape.
+# It corresponds to emu's internal emulation:
+# emu -term emu
+# emu's default sets TERM to "xterm", but that doesn't work well -TD
+# fixes: remove bogus rmacs/smacs, change oc to op, add bce, am -TD
+# fixes: add civis, cnorm, sgr -TD
emu|emu native mode,
- mir, msgr, xon,
+ am, bce, mir, msgr, xon,
colors#15, cols#80, it#8, lines#24, pairs#64, vt#200,
acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
- bel=^G, blink=\ES\EW, bold=\ES\EU, civis=\EZ,
- clear=\EP\EE0;0;, cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;,
- cub=\Eq-%p1%d;, cub1=^H, cud=\Ep%p1%d;, cud1=\EB,
- cuf=\Eq%p1%d;, cuf1=\ED, cup=\EE%p1%d;%p2%d;,
- cuu=\Ep-%p1%d;, cuu1=\EA, dch=\EI%p1%d;, dch1=\EI1;,
- dl=\ER%p1%d;, dl1=\ER1;, ech=\Ej%p1%d;, ed=\EN, el=\EK,
- el1=\EL, enacs=\0, home=\EE0;0;, ht=^I, hts=\Eh,
- il=\EQ%p1%d;, il1=\EQ1;, ind=\EG, is2=\ES\Er0;\Es0;,
- kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED, kcuu1=\EA,
- kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01, kf10=\EF10,
- kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14, kf15=\EF15,
- kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19, kf2=\EF02,
- kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05, kf6=\EF06,
- kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind, kich1=\Eins,
- knp=\Enext, kpp=\Eprior, kslt=\Esel, oc=\Es0;\Er0;,
- rev=\ES\ET, ri=\EF, rmacs=\0, rmir=\EX, rmso=\ES, rmul=\ES,
+ bel=^G, blink=\EW, bold=\EU, civis=\EZ, clear=\EP\EE0;0;,
+ cnorm=\Ea, cr=^M, csr=\Ek%p1%d;%p2%d;, cub=\Eq-%p1%d;,
+ cub1=^H, cud=\Ep%p1%d;, cud1=\EB, cuf=\Eq%p1%d;, cuf1=\ED,
+ cup=\EE%p1%d;%p2%d;, cuu=\Ep-%p1%d;, cuu1=\EA,
+ dch=\EI%p1%d;, dch1=\EI1;, dl=\ER%p1%d;, dl1=\ER1;,
+ ech=\Ej%p1%d;, ed=\EN, el=\EK, el1=\EL, home=\EE0;0;, ht=^I,
+ hts=\Eh, il=\EQ%p1%d;, il1=\EQ1;, ind=\EG,
+ is2=\ES\Er0;\Es0;, kbs=^H, kcub1=\EC, kcud1=\EB, kcuf1=\ED,
+ kcuu1=\EA, kdch1=\177, kent=^M, kf0=\EF00, kf1=\EF01,
+ kf10=\EF10, kf11=\EF11, kf12=\EF12, kf13=\EF13, kf14=\EF14,
+ kf15=\EF15, kf16=\EF16, kf17=\EF17, kf18=\EF18, kf19=\EF19,
+ kf2=\EF02, kf20=\EF20, kf3=\EF03, kf4=\EF04, kf5=\EF05,
+ kf6=\EF06, kf7=\EF07, kf8=\EF08, kf9=\EF09, kfnd=\Efind,
+ kich1=\Eins, knp=\Enext, kpp=\Eprior, kslt=\Esel,
+ op=\Es0;\Er0;, rev=\ET, ri=\EF, rmir=\EX, rmso=\ES, rmul=\ES,
rs2=\ES\Es0;\Er0;, setab=\Es%i%p1%d;,
- setaf=\Er%i%p1%d;, sgr0=\ES, smacs=\0, smir=\EY,
- smso=\ES\ET, smul=\ES\EV, tbc=\Ej,
-
+ setaf=\Er%i%p1%d;,
+ sgr=\ES%?%p1%t\ET%;%?%p2%t\EV%;%?%p3%t\ET%;%?%p4%t\EW%;%?%p6%t\EU%;,
+ sgr0=\ES, smir=\EY, smso=\ET, smul=\EV, tbc=\Ej,
+
+# vt220 Terminfo entry for the Emu emulation, corresponds to
+# emu -term vt220
+# with NumLock set (to make the keypad transmit kf0-kf9).
+# fixes: add am, xenl, corrected sgr0 -TD
+emu-220|Emu-220 (vt200-7bit mode),
+ am, xenl, xon,
+ cols#80, it#8, lines#24, vt#200,
+ acsc=aaffggjjkkllmmnnooqqssttuuvvwwxx~~, bel=^G,
+ blink=\E[0;5m, bold=\E[0;1m, civis=\E[?25l,
+ clear=\E[2J\E[H, cnorm=\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[1D,
+ cud=\E[%p1%dB, cud1=\E[1B, cuf=\E[%p1%dC, cuf1=\E[1C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[1A,
+ dch=\E[%p1%dP, dch1=\E[1P, dl=\E[%p1%dM, dl1=\E[1M,
+ ed=\E[0J, el=\E[0K, el1=\E[1K, enacs=\E)0, home=\E[H, ht=^I,
+ hts=\EH, if=/usr/share/tabset/vt300, il=\E[%p1%dL,
+ il1=\E[1L, ind=\ED, is2=\E>\E[?1l\E[?3l\E[4l\E[?7h,
+ kbs=^H, kcmd=\E[29~, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C,
+ kcuu1=\E[A, kdch1=\E[3~, kent=\EOM, kf0=\EOp, kf1=\EOq,
+ kf10=\EOl, kf11=\EOm, kf12=\EOn, kf13=\EOP, kf14=\EOQ,
+ kf15=\EOR, kf16=\EOS, kf2=\EOr, kf26=\E[17~, kf27=\E[18~,
+ kf28=\E[19~, kf29=\E[20~, kf3=\EOs, kf30=\E[21~,
+ kf34=\E[26~, kf37=\E[31~, kf38=\E[32~, kf39=\E[33~,
+ kf4=\EOt, kf40=\E[34~, kf5=\EOu, kf6=\EOv, kf7=\EOw,
+ kf8=\EOx, kf9=\EOy, kfnd=\E[1~, khlp=\E[28~, kich1=\E[2~,
+ knp=\E[6~, kpp=\E[5~, kslt=\E[4~, rc=\E8, rev=\E[0;7m,
+ ri=\EM, rmacs=^O, rmcup=\E>, rmkx=\E>, rmso=\E[m, rmul=\E[m,
+ rs2=\E[4l\E[34l\E[?1l\E[?3l\E[?5l\E[?7h, sc=\E7,
+ sgr=\E[0%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+ sgr0=\E[m, smacs=^N, smcup=\E[?1l\E=, smkx=\E=,
+ smso=\E[0;7m, smul=\E[0;4m, tbc=\E[3g,
# A commercial product, Reportedly a version of Xterm with an OPEN LOOK UI,
# print interface, ANSI X3.64 colour escape sequences, etc. Newsgroup postings
# indicate that it emulates more than one terminal, but incompletely.
il=\E[%p1%dL, il1=\E[L, ind=\E[S, indn=\E[%p1%dS,
invis=\E[8m, is2=\E)0\017, kbs=^H, nel=\EE, rev=\E[7m,
ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmir=\E[4l, rmso=\E[27m,
- rmul=\E[24m, sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m,
- smul=\E[4m, vpa=\E[%i%p1%dd,
+ rmul=\E[24m,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;,
+ sgr0=\E[m, smacs=^N, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ vpa=\E[%i%p1%dd,
# mterm normally sets $TERM to "mterm"
mterm|mouse-sun|Der Mouse term,
am, bw, mir,
home=^P, ht=^I, il1=^A, ind=^U, kbs=^H, ll=^R, nel=^M^U, ri=^W,
rmir=^O, rmso=^T, smir=^Q, smso=^V,
# "mterm -type decansi" sets $TERM to "decansi"
+#
+# note: kdch1, kfnd, kslt are in the source code, but do not work -TD
decansi|ANSI emulation with DEC compatibility hacks,
am, mir, msgr, xenl,
colors#8, it#8, pairs#64,
home=\E[H, hpa=\E[%i%p1%d`, ht=^I, ich1=, il=\E[%p1%dL,
il1=\E[L, ind=\E[S, indn=\E[%p1%dS, invis=\E[8m,
is2=\E)0\E[r\017, kbs=^H, kcub1=\EOD, kcud1=\EOB,
- kcuf1=\EOC, kcuu1=\EOA, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m,
+ kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, kf1=\E[11~,
+ kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
+ kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
+ kf18=\E[32~, kf19=\E[33~, kf2=\E[12~, kf20=\E[34~,
+ kf3=\E[13~, kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~,
+ kf8=\E[19~, kf9=\E[20~, kfnd=\E[1~, kich1=\E[2~, knp=\E[6~,
+ kpp=\E[5~, kslt=\E[4~, nel=\EE, op=\E[0m, rc=\E8, rev=\E[7m,
ri=\E[T, rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmir=\E[4l,
rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, sc=\E7,
setab=\E[4%p1%dm, setaf=\E[3%p1%dm,
khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
nel=\EE, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O,
rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m,
- rmul=\E[24m, rs2=\Ec, sc=\E7, sgr0=\E[m, smacs=^N,
- smcup=\E[?1049h, smir=\E[4h, smkx=\E[?1h\E=, smso=\E[3m,
- smul=\E[4m, tbc=\E[3g, E0=\E(B, S0=\E(%p1%c,
- use=ecma+color,
+ rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7,
+ sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
+ sgr0=\E[m, smacs=^N, smcup=\E[?1049h, smir=\E[4h,
+ smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, E0=\E(B,
+ S0=\E(%p1%c, use=ecma+color,
# The bce and status-line entries are from screen 3.9.13 (and require some
# changes to .screenrc).
screen-bce|VT 100/ANSI X3.64 virtual terminal with bce,
# xterm (-xfree86 or -r6) does not normally support kIC, kNXT and kPRV
# since the default translations override the built-in keycode
# translation. They are suppressed here to show what is tested by tack.
-screen.xterm-xfree86|screen customized for XFree86 xterm,
+screen.xterm-xfree86|screen.xterm-new|screen customized for modern xterm,
bce@, bw,
invis@, kIC@, kNXT@, kPRV@, kend=\E[4~, khome=\E[1~, meml@,
memu@,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;,
- use=xterm-xfree86,
+ sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m,
+ use=xterm-new,
# xterm-r6 does not really support khome/kend unless it is propped up by
# the translations resource.
screen.xterm-r6|screen customized for X11R6 xterm,
kf6=\E[23~, kf7=\E[24~, kf8=\E[25~, kf9=\E[26~, khlp=\E[1~,
khome=\E[2~, knp=\E[6~, kpp=\E[3~, mc4=\E[4i, mc5=\E[5i,
rc=\E8, rev=\E[7m, rf=/usr/share/tabset/vt100, ri=\EM,
- rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
+ rmacs=\E(B, rmam=\E[?7l, rmcup=\E[2J\E8, rmir=\E[4l,
rmso=\E[27m, rmul=\E[24m,
rs2=\E7\E[r\E8\E[m\E[?7h\E[?1;4;6l\E[4l\E>, sc=\E7,
sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p4%t;5%;%?%p1%p3%|%t;7%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E7,
+ sgr0=\E[m\E(B, smacs=\E(0, smam=\E[?7h, smcup=\E7,
smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, tsl=\E]0;,
u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?62;1;6c, u9=\E[c,
ncsa|NCSA Telnet 2.7 for Macintosh in vt220-8 mode,
sun-il|Sun Microsystems console with working insert-line,
am, km, msgr,
cols#80, lines#34,
- bel=^G, bold@, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
+ bel=^G, clear=^L, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu1=\E[A, dch=\E[%p1%dP,
dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, ht=^I,
ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
kf7=\E[230z, kf8=\E[231z, kf9=\E[232z, khome=\E[214z,
knp=\E[222z, kopt=\E[194z, kpp=\E[216z, kres=\E[193z,
kund=\E[195z, rev=\E[7m, rmso=\E[m, rmul@, rs2=\E[s,
- sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;m,
- sgr0=\E[m, smso=\E[7m, smul@, u8=\E[1t, u9=\E[11t,
+ sgr=\E[0%?%p1%p3%|%t;7%;m, sgr0=\E[m, smso=\E[7m,
+ u8=\E[1t, u9=\E[11t,
# On some versions of CGSIX framebuffer firmware (SparcStation 5), <il1>/<il>
# flake out on the last line. Unfortunately, without them the terminal has no
# way to scroll.
kcub1=\E[217z, kcud1=\E[221z, kcuf1=\E[219z,
kcuu1=\E[215z, use=sun-il,
+# Most of the current references to sun-color are from users wondering why this
+# is the default on install. Details from reading the wscons manpage, adding
+# cub, etc., here (rather than in the base sun-il entry) since it is not clear
+# when those were added -TD
+sun-color|Sun Microsystems Workstation console with color support (IA systems),
+ colors#8, pairs#64,
+ cub=\E[%p1%dD, cud=\E[%p1%dB, cuf=\E[%p1%dC,
+ cuu=\E[%p1%dA, home=\E[H, op=\E[m\E[p, setab=\E[4%p1%dm,
+ setaf=\E[3%p1%dm,
+ setb=\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+ setf=\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
+ use=sun,
+
#### Iris consoles
#
wy120|wyse120|wy150|wyse150|Wyse 120/150,
am, bw, hs, km, mc5i, mir, msgr, xon,
cols#80, it#8, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+ acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
wy60|wyse60|Wyse 60,
am, bw, hs, km, mc5i, mir, msgr,
cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+ acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<100>,
cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
wy99f|wy99fgt|wy-99fgt|Wyse WY-99GT (int'l PC keyboard),
am, bw, hs, km, mc5i, mir, msgr, xon,
cols#80, it#8, lines#25, wsl#46,
- acsc='x+y.wI~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
+ acsc='x+y.wi~_vj(k'l&m%n)o9q*s8t-u.v\,w+x=, bel=^G,
blink=\EG2, cbt=\EI, civis=\E`0, clear=\E'\E(\032,
cnorm=\E`4\E`1, cr=^M, cub1=^H, cud1=\Ej, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
wy160|wyse160|Wyse 160,
am, bw, hs, km, mc5i, mir, msgr,
cols#80, lh#1, lines#24, lw#8, nlab#8, wsl#38,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+ acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<30>,
cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<5>,
wy325|wyse325|Wyse epc,
am, bw, hs, mc5i, mir,
cols#80, lh#1, lines#24, lw#8, nlab#8, pb#9601, wsl#45,
- acsc=+/\,.0[Iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
+ acsc=+/\,.0[iha2fxgqh1jYk?lZm@nEqDtCu4vAwBx3yszr{c~~,
bel=^G, blink=\EG2, cbt=\EI, civis=\E`0, clear=\E+$<50>,
cnorm=\E`1, cr=^M, cub1=^H, cud1=^J, cuf1=^L,
cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dch1=\EW$<7>,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+ dsl=\E[2$~\r\E[1$}\E[K\E[$}, ed=\E[J, el=\E[K,
flash=\E[?5h\E[?5l, fsl=\E[$}, home=\E[H, ht=^I, hts=\EH,
ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L$<3/>, ind=\ED,
is2=\E>\E[?3l\E[?4l\E[?5l\E[?7h\E[?8h\E[1;24r\E[24;1H,
# (The <blink>/<bold>/<rev>/<smacs>/<smul>/<smso> capabilities exist only to
# tell ncurses that the corresponding highlights exist; it should use <sgr>,
# which is the only method that will actually work for multiple highlights.)
+#
+# Update by TD - 2004: half of this was inconsistent. Found documentation
+# and repaired most of the damage. sgr0 is probably incorrect, but the
+# available documentation gives no clues for a workable string.
avatar0|avatar terminal emulator level 0,
am, bce, msgr,
cols#80, it#8, lines#25,
- blink=^A^V\177, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
+ blink=^V^B, bold=^V^A^P, cr=^M, cub1=^V^E, cud1=^V^D,
cuf1=^V^F, cup=\026\010%p1%c%p2%c, cuu1=^V^C, el=^V^G,
- ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%d, rev=^A^Vp,
- rs2=^L,
- sgr=\026\001%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p4%t{128}%|%;%?%p6%t%{16}%|%;,
- sgr0=^V^A^G, smacs=, smso=^A^Vp, smul=^V^A, use=klone+acs,
+ ind=^J, invis=^V^A\0, rep=\031%p1%c%p2%c, rev=^V^Ap,
+ rmacs@, rs2=^L,
+ sgr=%?%p1%p2%|%p3%|%p6%|%p7%|%t\026\001%?%p7%t%{128}%e%{0}%?%p1%t%{112}%|%;%?%p2%t%{1}%|%;%?%p3%t%{112}%|%;%?%p6%t%{16}%|%;%;%c%;%?%p4%t\026\002%;,
+ sgr0=^V^A^G, smacs@, smso=^V^Ap, smul=^V^A^A,
+ use=klone+acs,
# From: Eric S. Raymond <esr@snark.thyrsus.com> 1 Nov 1995
avatar0+|avatar terminal emulator level 0+,
dch1=^V^N, rmir=\026\n\0\0\0\0, smir=^V^I, use=avatar0,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
clear=^L, cnorm=\E[?25h, cr=^M, csr=\E[%i%p1%d;%p2%dr,
cub1=^H, cud1=^C, cuf1=^B,
- cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^,
- cvvis=\E[?25h, dch1=^W, dl=\E[%p1%dM, dl1=^Z,
- ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I, il=\E[%p1%dL, il1=^K,
- ind=\ED, invis=\E[8m,
+ cup=\037%p2%{32}%+%c%p1%{32}%+%c, cuu1=^^, dch1=^W,
+ dl=\E[%p1%dM, dl1=^Z, ech=\E[%p1%dX, ed=^F5, el=^P^P, ht=^I,
+ il=\E[%p1%dL, il1=^K, ind=\ED, invis=\E[8m,
is2=\017\035\E(B\E)0\E[?7h\E[?3l\E[>8g, kbs=^H,
kcub1=^B, kcud1=^N, kcuf1=^F, kcuu1=^P, khome=^A, nel=^M\ED,
rc=\E8, rep=\030%p1%c%p2%c, rev=^R, ri=\EM, rmcup=, rmdc=,
# underline=01100000, rev=01010000, blink=01000010,dim=01000001,
# invis=01000100 and %c is the logical or of desired attributes.
# There is also a `tag bit' enabling attributes, set by \E) and unset by \E(.
+#
+# Update by TD - 2004:
+# Adapted from
+# http://www.cs.utk.edu/~shuford/terminal/adds_viewpoint_news.txt
+#
+# COMMANDS ASCII CODE
+#
+# Address, Absolute ESC,=,row,column
+# Beep BEL
+# Aux Port Enable ESC,@
+# Aux Port Disable ESC,A
+# Backspace BS
+# Cursor back BS
+# Cursor down LF
+# Cursor forward FF
+# Cursor home RS
+# Cursor up VT
+# Cursor supress ETB
+# Cursor enable CAN
+# Erase to end of line ESC,T
+# Erase to end of page ESC,Y
+# Erase screen SUB
+# Keyboard lock SI
+# Keyboard unlock SO
+# Read current cursor position ESC,?
+# Set Attribute ESC,0,x (see below for values of x)
+# Tag bit reset ESC,(
+# Tag bit set ESC,)
+# Transparent Print on ESC,3
+# Transparent Print off ESC,4
+#
+#
+# ATTRIBUTES
+#
+# Normal @ 0100
+# Half Intensity A 0101
+# Blinking B 0102
+# Half Intensity Blinking C 0103
+# Reverse Video P 0120
+# Reverse Video Half Intensity Q 0121
+# Reverse Video Blinking R 0122
+# Reverse Video Half Intensity
+# Blinking S 0123
+# Underlined ` 0140
+# Underlined Half Intensity a 0141
+# Underlined Blinking b 0142
+# Underlined Half Intensity
+# Blinking c 0143
+# Video suppress D 0104
vp3a+|viewpoint3a+|adds viewpoint 3a+,
am, bw,
cols#80, it#8, lines#24,
- civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M, cub1=^H, cud1=^J,
- cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, kbs=^H, kcub1=^H,
- kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^, nel=^M^J, rmso=\E(,
- sgr=\E0%{64}%?%p1%tQ%|%;%?%p2%t%{96}%|%;%?%p3%tP%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%?%p7%tD%|%;%c\E),
- sgr0=\E(, smso=\E0Q\E),
+ blink=\E0B\E), civis=^W, clear=\E*$<80>, cnorm=^X, cr=^M,
+ cub1=^H, cud1=^J, cuf1=^L,
+ cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K, dim=\E0A\E),
+ ed=\EY$<80>, el=\ET, home=^^, ht=^I, ind=^J, invis=\E0D\E),
+ kbs=^H, kcub1=^H, kcud1=^J, kcuf1=^L, kcuu1=^K, khome=^^,
+ nel=^M^J, rev=\E0P\E), rmso=\E(,
+ sgr=%?%p1%p2%|%p3%|%p4%|%p5%|%p7%|%t\E0%{64}%?%p1%t%{17}%|%;%?%p2%t%{32}%|%;%?%p3%t%{16}%|%;%?%p4%t%{2}%|%;%?%p5%t%{1}%|%;%c%?%p7%tD%;\E)%e\E(%;,
+ sgr0=\E(, smso=\E0Q\E), smul=\E0`\E),
vp60|viewpoint60|addsvp60|adds viewpoint60,
use=regent40,
#
bw@, eslok,
it#8, wsl#80,
blink=\EG2, bold=\EG0, civis=\E.1, cnorm=\E.2, cud1=^V,
- cvvis=\E.2, dim=\EG@, dl1=\ER, dsl=\Ef\r,
- flash=\Eb$<200/>\Ed, il1=\EE, ip@, is2@, kclr=^^, kdch1=\EW,
- kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf10@, kich1=\EQ,
- kil1=\EE, mc4=\Ea, mc5=\E`, ri=\EJ, rmacs=\E%%, rmir=\Er\EO,
- smacs=\E$, smir=\EO\Eq, smso=\EG<, tsl=\Ef, use=f100,
+ dim=\EG@, dl1=\ER, dsl=\Ef\r, flash=\Eb$<200/>\Ed, il1=\EE,
+ ip@, is2@, kclr=^^, kdch1=\EW, kdl1=\ER, ked=\EY, kel=\ET,
+ kf0=^AI\r, kf10@, kich1=\EQ, kil1=\EE, mc4=\Ea, mc5=\E`,
+ ri=\EJ, rmacs=\E%%, rmir=\Er\EO, smacs=\E$, smir=\EO\Eq,
+ smso=\EG<, tsl=\Ef, use=f100,
f110-14|Liberty Freedom 110 14inch,
dch1@, use=f110,
f110-w|Liberty Freedom 110 - 132 cols,
clear=^Z, cnorm=\E.1, cr=^M,
csr=\Em0%p1%{32}%+%c%p2%{32}%+%c, cub1=^H, cud1=^V,
cuf1=^L, cup=\E=%p1%{32}%+%c%p2%{32}%+%c, cuu1=^K,
- cvvis=\E.1, dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY,
- el=\ET, flash=\Eo$<200/>\En, fsl=^M, home=^^,
+ dch1=\EW, dim=\EG@, dl1=\ER, dsl=\Ef\r, ed=\EY, el=\ET,
+ flash=\Eo$<200/>\En, fsl=^M, home=^^,
hpa=\E]%p1%{32}%+%c, hts=\E1, il1=\EE, ind=^J, kbs=^H,
kclr=^^, kcub1=^H, kcud1=^V, kcuf1=^L, kcuu1=^K, kdch1=\EW,
kdl1=\ER, ked=\EY, kel=\ET, kf0=^AI\r, kf1=^A@\r, kf2=^AA\r,
jaixterm-m|IBM Kanji AIXterm Monochrome Terminal Emulator,
acsc@, use=aixterm-m,
+# This flavor is adapted from xterm, in turn from aixterm documentation -TD
+aixterm-16color|IBM Aixterm Terminal Emulator with 16 colors,
+ use=ibm+16color, use=aixterm,
+
#### Infoton/General Terminal Corp.
#
OTbs, am,
cols#80, lines#25,
bel=^G, clear=\E[2J, cr=^M, cub1=^H, cud1=^J, cuf1=\E[C,
- cup=%i\E[%p1%3d;%p2%3dH, cuu1=\E[A,
+ cup=\E[%i%p1%3d;%p2%3dH, cuu1=\E[A,
dch1=\E[4h\E[2Q\E[P\E[4l\E[0Q, dl1=\E[M, el=\E[N,
il1=\E[L, ind=^J, rmir=\E[4l\E[0Q, smir=\E[4h\E[2Q,
# (addrinfo: removed obsolete ":bc=^Z:" -- esr)
am,
cols#80, lines#24,
bel=^G, clear=^L, cr=^M, cub1=^Z, cud1=^J, cuf1=^Y,
- cup=\037%p1%{1}%-%c%p2%{1}%-%c, cuu1=^\, ed=^K, home=^H,
- ind=^J, ll=^H^\,
+ cup=\037%p1%c%p2%c, cuu1=^\, ed=^K, home=^H, ind=^J, ll=^H^\,
# (infoton: used to have the no-ops <lh#0>, <lw#0>, <nlab#0> -- esr)
infoton,
am,
ri=\E[L, rmir=\E[4l, rmso=\E[27m, rmul=\E[24m,
rs2=\E[&p\E[<12l\E F\E[3g\E[9;17;25;33;41;49;57;65;73 N,
sc=\E[%y,
- sgr=\E[%{0}%?%p1%p3%|%t%{4}%+%;%?%p2%t%{2}%+%;%?%p4%t%{1}%+%;%?%p6%t%{8}%+%;%?%p8%t%{32}%+%;%d%%{%?%p9%t\016%e\017%;,
- sgr0=\E[0m, smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[2g,
- tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
+ sgr=\E[%{0}%?%p1%p3%|%t%{7}%+%;%?%p2%t%{2}%+%;%?%p4%t%{5}%+%;%?%p6%t%{1}%+%;m%?%p8%t\E[%{32}%+%d%%{%;%?%p9%t\016%e\017%;,
+ sgr0=\E[0m\017, smir=\E[4h, smso=\E[7m, smul=\E[4m,
+ tbc=\E[2g, tsl=\E[%i%p1%d%%}, vpa=\E[%i%p1%dd,
# p9-w: Prism-9 in 132 column mode
# --------------------------------
cbt=\EI, civis=\E`0, clear=\014$<40>, cnorm=\E`5,
cr=\r$<2>, cub1=\010$<2>, cud1=\n$<2>, cuf1=\006$<2>,
cup=\EY%p1%{32}%+%c%p2%{32}%+%c$<5>, cuu1=\032$<2>,
- cvvis=\E`5, dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c,
- ed=\Ek$<2>, el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I,
- hts=\E1, il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
+ dch1=\EW$<2>, dim=\EGp, dl1=\El$<2>, dsl=\E`c, ed=\Ek$<2>,
+ el=\EK$<2>, fsl=^M, home=\036$<2>, ht=^I, hts=\E1,
+ il1=\EM$<2>, ind=\n$<2>, invis=\EG1,
is2=\Ee6\E~%$<100>\E+\E`\:\Ed/\E`1\EO\Ee4\Ec@0@\Ec@1A\EcB0\EcC1\Ee7$<100>,
kDC=\El, kEND=\Ek, kHOM=^A, kPRT=\E7, kRIT=^F, ka1=^A, ka3=\EJ,
kbs=^H, kc1=\ET, kc3=\EJ, kcub1=^U, kcud1=^J, kcuf1=^F,
smso=\2337m, smul=\2334m,
# From: Henning 'Faroul' Peters <Faroul@beyond.kn-bremen.de>, 25 Sep 1999
+#
+# Pavel Fedin added
+# Home Shift+Left
+# End Shift+Right
+# PgUp Shift+Up
+# PgDn Shift+Down
amiga-8bit|Amiga ANSI using 8-bit controls,
acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
- ind=\204, indn@, ri=\215, rin@, use=amiga-h,
+ ind=\204, indn@, kend=\233 @, khome=\233 A, knp=\233S,
+ kpp=\233T, ri=\215, rin@, use=amiga-h,
# From: Ruediger Kuhlmann <terminfo@ruediger-kuhlmann.de>, 18 Jul 2000
# requires use of appropriate preferences settings.
sgr0=\E[0m\017\E[30;85;>15m, smcup=\E[?7h, smkx=\E[?1h,
smso=\E[1m, smul=\E[4m,
+# MorphOS on Genesi Pegasos
+# By Pavel Fedin <sonic_amiga@rambler.ru>
+morphos,
+ acsc=, dl=\233%p1%dM, dl1=\233M, il=\233%p1%dL, il1=\233L,
+ ind=\204, indn@, kend=\23345~, kf11=\23320~, kf12=\23321~,
+ khome=\23344~, kich1=\23340~, knp=\23342~, kpp=\23341~,
+ ri=\215, rin@, use=amiga-h,
+
# Commodore B-128 microcomputer from Doug Tyrol <det@HEL-ACE.ARPA>
# I'm trying to write a termcap for a commodore b-128, and I'm
# having a little trouble. I've had to map most of my control characters
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=\E[D,
cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
- cvvis=\E[?25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
- dl1=\E[M, dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX,
- ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
+ dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, dl1=\E[M,
+ dsl=\E[1$}\E[2$~\n\E[0$}, ech=\E[%p1%dX, ed=\E[J,
+ el=\E[K, el1=\E[1K, enacs=\E(B\E)0,
flash=\E[?5h$<50>\E[?5l, fsl=\E[0$}, home=\E[H, ht=^I,
hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, ind=\ED,
is1=\E[63;1"p\E[2h,
khlp=\E[28~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~,
krdo=\E[29~, kslt=\E[4~, lf1=pf1, lf2=pf2, lf3=pf3, lf4=pf4,
mc0=\E[i, mc4=\E[4i, mc5=\E[5i, nel=\EE, rc=\E8, rev=\E[7m,
- ri=\EM, rmacs=^O, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
+ ri=\EM, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?7h, rmir=\E[4l,
rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, rs1=\E[!p,
rs2=\E[?3l, s0ds=\E(B, s1ds=\E(0, sc=\E7,
sgr=\E[%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;m%?%p9%t\E(0%e\E(B%;,
- sgr0=\E[0m\E(B, smacs=^N, smam=\E[?7h,
+ sgr0=\E[0m\E(B, smacs=\E(0, smam=\E[?7h,
smcup=\E[?7l\E[?1l\E(B, smir=\E[4h, smso=\E[7m,
smul=\E[4m, tbc=\E[3g, tsl=\E[1$}\E[2$~,
bq300-rv|Bull vt320 reverse 80 columns,
clear=\233H\233J, cnorm=\233?25h, cr=^M,
csr=\233%i%p1%d;%p2%dr, cub=\233%p1%dD, cud=\233%p1%dB,
cuf=\233%p1%dC, cup=\233%i%p1%d;%p2%dH, cuu=\233%p1%dA,
- cvvis=\233?25h, dch=\233%p1%dP, dch1=\233P,
- dl=\233%p1%dM, dsl=\2331$}\2332$~\n\2330$},
- ech=\233%p1%dX, ed=\233J, el=\233K, el1=\2331K,
- enacs=\E(B\E)0, flash=\233?5h$<50>\233?5l, fsl=\2330$},
- home=\233H, ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL,
- ind=\ED, is1=\E[63;2"p\E[2h,
+ dch=\233%p1%dP, dch1=\233P, dl=\233%p1%dM,
+ dsl=\2331$}\2332$~\n\2330$}, ech=\233%p1%dX, ed=\233J,
+ el=\233K, el1=\2331K, enacs=\E(B\E)0,
+ flash=\233?5h$<50>\233?5l, fsl=\2330$}, home=\233H,
+ ht=^I, hts=\EH, ich=\233%p1%d@, il=\233%p1%dL, ind=\ED,
+ is1=\E[63;2"p\E[2h,
is2=\E[?2h\E[?3l\E[?5l\E[?7h\E[?8h\E>\E[?1l\E G\E[?42l\E[?4l,
is3=\2330$}\233?25h\2332l\233H\233J, ka1=\217w,
ka3=\217y, kb2=\217u, kbs=^H, kc1=\217q, kc3=\217s,
cbt=\E[Z, civis=\E[?25l, clear=\E[H\E[2J$<6>,
cnorm=\E[?25h, cub=\E[%p1%dD, cud=\E[%p1%dB,
cuf=\E[%p1%dC, cup=\E[%p1%i%p1%d;%p2%dH, cuu=\E[%p1%dA,
- cvvis=\E[?25h, dch=\E[%p1%dP$<250>, dch1=\E[P,
- dl=\E[%p1%dM, ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K,
- el1=\E[1K, enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
+ dch=\E[%p1%dP$<250>, dch1=\E[P, dl=\E[%p1%dM,
+ ech=\E[%p1%dX$<20>, ed=\E[J$<6>, el=\E[0K, el1=\E[1K,
+ enacs=\E(B\E)0, ff=^L, flash=\E[?5h\E[?5l$<6>,
hpa=\E[%p1%{1}%+%dG, hts=\E[0W, ich=\E[%p1%d@$<250>,
il=\E[%p1%dL$<36>, ip=$<10>, is2=\E[1;24r\E[24;1H,
kcmd=\E[29~, kdch1=\E[P, kent=^J, kf1=\E[17~, kf10=\E[28~,
kf11=\E[29~, kf12=\E[31~, kf2=\E[18~, kf3=\E[19~,
kf4=\E[20~, kf5=\E[21~, kf6=\E[23~, kf7=\E[24~, kf8=\E[25~,
kf9=\E[26~, khome=\E[H, kich1=\E[@, knp=\E[S, kpp=\E[T,
- kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p,
+ kprt=^X, prot=\E&, rmacs=\017$<2>, rs2=\E[!p, sgr@,
smacs=\016$<2>, tbc=\E[3g, vpa=\E[%p1%{1}%+%dd,
use=vt220,
#
# * add vt100+ and vt-utf8 entries -TD
# * add uwin entry -TD
#
+# 2004-03-27
+# * add sgr strings to several common entries lacking them, e.g.,
+# screen, to make the entries more portable -TD
+# * remove cvvis from rxvt entry, since it is the same as cnorm -TD
+# * similar fixups for cvvis/cnorm various entries -TD
+#
+# 2004-05-22
+# * remove 'ncv' from xterm-256color (patch 188) -TD
+#
+# 2004-06-26
+# * add mlterm -TD
+# * add xterm-xf86-v44 -TD
+# * modify xterm-new aka xterm-xfree86 to accommodate luit, which relies
+# on G1 being used via an ISO-2022 escape sequence (report by
+# Juliusz Chroboczek) -TD
+# * add 'hurd' entry -TD
+#
+# 2004-07-03
+# * make xterm-xf86-v43 derived from xterm-xf86-v40 rather than
+# xterm-basic -TD
+# * align with xterm #192's use of xterm-new -TD
+# * update xterm-new and xterm-8bit for cvvis/cnorm strings -TD
+# * make xterm-new the default "xterm" -TD
+#
+# 2004-07-10
+# * minor fixes for emu -TD
+# * add emu-220
+# * add rmam/smam to linux (Trevor Van Bremen)
+# * change wyse acsc strings to use 'i' map rather than 'I' -TD
+# * fixes for avatar0 -TD
+# * fixes for vp3a+ -TD
+#
+# 2004-07-17
+# * add xterm-pc-fkeys -TD
+# * review/update gnome and gnome-rh90 entries (prompted by
+# Redhat Bugzilla #122815) -TD
+# * review/update konsole entries -TD
+# * add sgr, correct sgr0 for kterm and mlterm -TD
+# * correct tsl string in kterm -TD
+#
+# 2004-07-24
+# * make ncsa-m rmacs/smacs consistent with sgr -TD
+# * add sgr, rc/sc and ech to syscons entries -TD
+# * add function-keys to decansi -TD
+# * add sgr to mterm-ansi -TD
+# * add sgr, civis, cnorm to emu -TD
+# * correct/simplify cup in addrinfo -TD
+# * corrections for gnome and konsole entries
+# (Redhat Bugzilla #122815) -Hans de Goede
+# * modify DEC entries (vt220, etc), to add sgr string, and to use
+# ISO-2022 strings for rmacs/smacs -TD
+#
+# 2004-07-31
+# * rename xterm-pc-fkeys to xterm+pcfkeys -TD
+#
+# 2004-08-07
+# * improved putty entry -Robert de Bath
+#
+# 2004-08-14
+# * remove dch/dch1 from rxvt because they are implemented inconsistently
+# with the common usage of bce/ech -TD
+# * remove khome from vt220 (vt220's have no home key) -TD
+# * add rxvt+pcfkeys -TD
+#
+# 2004-08-21
+# * modify several entries to ensure xterm mouse and cursor visibility
+# are reset in rs2 string: hurd, putty, gnome, konsole-base, mlterm,
+# Eterm, screen. (The xterm entries are left alone - old ones for
+# compatibility, and the new ones do not require this change) -TD
+#
+# 2004-08-28
+# * add morphos entry -Pavel Fedin
+# * modify amiga-8bit to add khome/kend/knp/kpp -Pavel Fedin
+# * corrected \E[5?l to \E[?5l in vt320 entries -TD
+#
+# 2004-11-20
+# * update wsvt25 entry -TD
+#
+# 2005-01-29
+# * update pairs for xterm-88color and xterm-256color to reflect the
+# ncurses extended-color support -TD
+#
+# 2005-02-26
+# * modify sgr/sgr0 in xterm-new to improve tgetent's derived "me" -TD
+# * add aixterm-16color to demonstrate 16-color capability -TD
+#
+# 2005-04-23
+# * add media-copy to vt100 -TD
+# * corrected acsc string for vt52 -TD
+#
+# 2005-04-30
+# * add kUP, kDN (user-defined shifted up/down arrow) definitions for
+# xterm-new -TD
+# * add kUP5, kUP6, etc., for xterm-new and rxvt -TD
+#
+# 2005-05-07
+# * re-corrected acsc string for vt52 -TD
+#
+# 2005-05-28
+# * corrected sun-il sgr string which referred to bold and underline -TD
+# * add sun-color entry -TD
+#
+# 2005-07-23
+# * modify sgr0 in several entries to reset alternate-charset as in the
+# sgr string -TD
+# * modify sgr string of prism9 to better match the individual
+# attributes -TD
+#
# The following sets edit modes for GNU EMACS.
# Local Variables:
# fill-prefix:"\t"
-# $Id: mk-0th.awk,v 1.14 2002/08/31 21:36:54 tom Exp $
+# $Id: mk-0th.awk,v 1.17 2005/01/22 16:31:40 tom Exp $
##############################################################################
-# Copyright (c) 1998-2001 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
#
# Variables:
# libname (library name, e.g., "ncurses", "panel", "forms", "menus")
+# subsets (is used here to decide if wide-character code is used)
#
BEGIN {
- print ""
- print "# generated by mk-0th.awk"
- print ""
- print ".SUFFIXES: .c .cc .h .i .ii"
- print ".c.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ".cc.ii :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ".h.i :"
- printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
- print ""
+ using = 0;
found = 0;
}
!/^[@#]/ {
+ if (using == 0)
+ {
+ print ""
+ print "# generated by mk-0th.awk"
+ printf "# libname: %s\n", libname
+ printf "# subsets: %s\n", subsets
+ print ""
+ print ".SUFFIXES: .c .cc .h .i .ii"
+ print ".c.i :"
+ printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
+ print ".cc.ii :"
+ printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
+ print ".h.i :"
+ printf "\t$(CPP) $(CPPFLAGS) $< >$@\n"
+ print ""
+ using = 1;
+ }
if ( $0 != "" && $1 != "link_test" )
{
if ( found == 0 )
printf "\trm -f llib-l%s\n", libname
print ""
printf "llib-l%s : $(C_SRC)\n", libname
- printf "\tcproto -a -l -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
+ printf "\tcproto -a -l -DNCURSES_ENABLE_STDBOOL_H=0 -DLINT $(CPPFLAGS) $(C_SRC) >$@\n"
print ""
print "lintlib :"
printf "\tsh $(srcdir)/../misc/makellib %s $(CPPFLAGS)", libname
-# $Id: mk-1st.awk,v 1.62 2004/01/10 20:48:43 tom Exp $
+# $Id: mk-1st.awk,v 1.65 2005/06/18 19:15:57 tom Exp $
##############################################################################
-# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
# Generate list of objects for a given model library
# Variables:
# name (library name, e.g., "ncurses", "panel", "forms", "menus")
+# traces ("all" or "DEBUG", to control whether tracing is compiled in)
+# MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
# model (directory into which we compile, e.g., "obj")
# prefix (e.g., "lib", for Unix-style libraries)
# suffix (e.g., "_g.a", for debug libraries)
-# MODEL (e.g., "DEBUG", uppercase; toupper is not portable)
-# depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
# subset ("none", "base", "base+ext_funcs" or "termlib")
-# host (cross-compile host, if any)
# ShlibVer ("rel", "abi" or "auto", to augment DoLinks variable)
# ShlibVerInfix ("yes" or "no", determines location of version #)
# DoLinks ("yes", "reverse" or "no", flag to add symbolic links)
# rmSoLocs ("yes" or "no", flag to add extra clean target)
+# ldconfig (path for this tool, if used)
# overwrite ("yes" or "no", flag to add link to libcurses.a
+# depend (optional dependencies for all objects, e.g, ncurses_cfg.h)
+# host (cross-compile host, if any)
#
# Notes:
# CLIXs nawk does not like underscores in command-line variable names.
if (found == 0) {
print ""
printf "# generated by mk-1st.awk (subset=%s)\n", subset
+ printf "# name: %s\n", name
+ printf "# traces: %s\n", traces
+ printf "# MODEL: %s\n", MODEL
+ printf "# model: %s\n", model
+ printf "# prefix: %s\n", prefix
+ printf "# suffix: %s\n", suffix
+ printf "# subset: %s\n", subset
+ printf "# ShlibVer: %s\n", ShlibVer
+ printf "# ShlibVerInfix: %s\n", ShlibVerInfix
+ printf "# DoLinks: %s\n", DoLinks
+ printf "# rmSoLocs: %s\n", rmSoLocs
+ printf "# ldconfig: %s\n", ldconfig
+ printf "# overwrite: %s\n", overwrite
+ printf "# depend: %s\n", depend
+ printf "# host: %s\n", host
print ""
}
using = 1
}
if ( subset == "termlib" || subset == "termlib+ext_tinfo" ) {
- name = "tinfo"
OBJS = MODEL "_T"
} else {
OBJS = MODEL
print "uninstall.libs \\"
printf "uninstall.%s ::\n", name
printf "\t@echo uninstalling $(DESTDIR)$(libdir)/%s\n", lib_name
- printf "\t-@$(LIBTOOL_CLEAN) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
+ printf "\t-@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(libdir)/%s\n", lib_name
}
else
{
-# $Id: mk-2nd.awk,v 1.15 2003/11/01 22:42:50 tom Exp $
+# $Id: mk-2nd.awk,v 1.19 2005/01/22 16:30:04 tom Exp $
##############################################################################
-# Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
# development.
#
# Variables:
-# model
+# model directory into which objects are compiled.
# MODEL (uppercase version of "model"; toupper is not portable)
# echo (yes iff we will show the $(CC) lines)
# subset ("none", "base", "base+ext_funcs" or "termlib")
+# crenames ("yes" or "no", flag to control whether -c & -o options are used)
+# cxxrenames ("yes" or "no", flag to control whether -c & -o options are used)
+# traces ("all" or "DEBUG", to control whether tracing is compiled in)
+# srcdir is expanded when "configure --srcdir" was used
#
# Fields in src/modules:
# $1 = module name
if (found == 0) {
print ""
print "# generated by mk-2nd.awk"
- print ""
+ printf "# model: %s\n", model
+ printf "# MODEL: %s\n", MODEL
+ printf "# echo: %s\n", echo
+ printf "# subset: %s\n", subset
+ printf "# crenames: %s\n", crenames
+ printf "# cxxrenames: %s\n", cxxrenames
+ printf "# traces: %s\n", traces
+ printf "# srcdir: %s\n", srcdir
}
using = 1
}
if ( $2 == "c++" ) {
compile="CXX"
suffix=".cc"
+ use_c_o=cxxrenames
} else {
compile="CC"
suffix=".c"
+ use_c_o=crenames
}
printf "../%s/%s$o :\t%s/%s%s", model, $1, $3, $1, suffix
for (n = 4; n <= NF; n++) printf " \\\n\t\t\t%s", $n
atsign="@"
printf "\t@echo 'compiling %s (%s)'\n", $1, model
}
+ printf "\t%s", atsign;
+ if ( use_c_o != "yes" ) {
+ printf "cd ../%s; ", model;
+ }
+ # The choice here is between
+ # base+ext_funcs and
+ # termlib+ext_tinfo
+ # but they may appear in the same value.
+ if ( subset ~ /base/ ) {
+ mycflags=""
+ } else if ( subset ~ /termlib/ ) {
+ mycflags=" -DUSE_TERMLIB"
+ }
+ printf "$(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s)%s -c ", compile, MODEL, mycflags
if ( $3 == "." || srcdir == "." ) {
dir = $3 "/"
sub("^\\$\\(srcdir\\)/","",dir);
sub("^\\./","",dir);
- printf "\t%scd ../%s; $(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s) -c ../%s/%s%s%s", atsign, model, compile, MODEL, name, dir, $1, suffix
- } else
- printf "\t%scd ../%s; $(LIBTOOL_COMPILE) $(%s) $(CFLAGS_%s) -c %s/%s%s", atsign, model, compile, MODEL, $3, $1, suffix
+ printf "../%s/%s%s%s", name, dir, $1, suffix
+ } else {
+ printf "%s/%s%s", $3, $1, suffix
+ }
+ if ( use_c_o == "yes" ) {
+ printf " -o ../%s/%s$o", model, $1
+ }
} else {
printf "%s", $1
for (n = 2; n <= NF; n++) printf " %s", $n
-# $Id: Makefile.in,v 1.91 2003/11/01 22:48:53 tom Exp $
+# $Id: Makefile.in,v 1.96 2005/05/07 18:57:05 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
+BUILD_CPPFLAGS = -I../include @BUILD_CPPFLAGS@
BUILD_CC = @BUILD_CC@
-BUILD_CCFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) @BUILD_CPPFLAGS@ @BUILD_CFLAGS@
+BUILD_CCFLAGS = -DHAVE_CONFIG_H -I../ncurses -I$(srcdir) -I$(INCDIR) $(BUILD_CPPFLAGS) @BUILD_CFLAGS@
BUILD_LDFLAGS = @BUILD_LDFLAGS@
BUILD_LIBS = @BUILD_LIBS@
TEST_DEPS = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
TEST_ARGS = -L../lib -lncurses@DFT_ARG_SUFFIX@
-TEST_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
+TEST_LDFLAGS = @LD_MODEL@ $(TEST_ARGS) @LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
TEST_PROGS = \
captoinfo$x \
fgrep undef >$@
init_keytry.h: make_keys$(BUILD_EXEEXT) keys.list
- ./make_keys keys.list > $@
+ ./make_keys$(BUILD_EXEEXT) keys.list > $@
keys.list : $(tinfo)/MKkeys_list.sh
AWK=$(AWK) sh $(tinfo)/MKkeys_list.sh $(TERMINFO_CAPS) | sort >$@
echo | $(AWK) -f $(base)/MKunctrl.awk >$@
tags:
- ctags *.[ch]
+ ctags *.[ch] */*.[ch]
@MAKE_UPPER_TAGS@TAGS:
-@MAKE_UPPER_TAGS@ etags *.[ch]
+@MAKE_UPPER_TAGS@ etags *.[ch] */*.[ch]
mostlyclean ::
-rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
****************************************************************************/
/*
- * $Id: SigAction.h,v 1.7 2003/12/07 01:00:03 tom Exp $
+ * $Id: SigAction.h,v 1.8 2005/08/06 20:05:32 tom Exp $
*
* This file exists to handle non-POSIX systems which don't have <unistd.h>,
* and usually no sigaction() nor <termios.h>
#if HAVE_SIGVEC
-#if HAVE_LIBC_H
-#include <libc.h>
-#endif
-
#undef SIG_BLOCK
#define SIG_BLOCK 00
-# $Id: MKkeyname.awk,v 1.24 2002/09/01 19:43:34 tom Exp $
+# $Id: MKkeyname.awk,v 1.28 2005/04/30 19:26:25 tom Exp $
##############################################################################
-# Copyright (c) 1999-2001,2002 Free Software Foundation, Inc. #
+# Copyright (c) 1999-2002,2005 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"), #
print ""
print "#include <curses.priv.h>"
print "#include <tic.h>"
+ print "#include <term_entry.h>"
print ""
print "const struct kn _nc_key_names[] = {"
}
print ""
print "NCURSES_EXPORT(NCURSES_CONST char *) keyname (int c)"
print "{"
- print "static char **table;"
- print "int i;"
- print "char name[20];"
- print "char *p;"
+ print " static char **table;"
+ print " int i;"
+ print " char name[20];"
+ print " char *p;"
+ print " NCURSES_CONST char *result = 0;"
print ""
- print "\tif (c == -1) return \"-1\";"
+ print " if (c == -1) {"
+ print " result = \"-1\";"
+ print " } else {"
+ print " for (i = 0; _nc_key_names[i].name != 0; i++) {"
+ print " if (_nc_key_names[i].code == c) {"
+ print " result = (NCURSES_CONST char *)_nc_key_names[i].name;"
+ print " break;"
+ print " }"
+ print " }"
print ""
- print "\tfor (i = 0; _nc_key_names[i].name != 0; i++)"
- print "\t\tif (_nc_key_names[i].code == c)"
- print "\t\t\treturn (NCURSES_CONST char *)_nc_key_names[i].name;"
- print "\tif (c < 0 || c >= 256) return 0;"
+ print " if (result == 0 && (c >= 0 && c < 256)) {"
+ print " if (table == 0)"
+ print " table = typeCalloc(char *, 256);"
+ print " if (table != 0) {"
+ print " if (table[c] == 0) {"
+ print " p = name;"
+ print " if (c >= 128) {"
+ print " strcpy(p, \"M-\");"
+ print " p += 2;"
+ print " c -= 128;"
+ print " }"
+ print " if (c < 32)"
+ print " sprintf(p, \"^%c\", c + '@');"
+ print " else if (c == 127)"
+ print " strcpy(p, \"^?\");"
+ print " else"
+ print " sprintf(p, \"%c\", c);"
+ print " table[c] = strdup(name);"
+ print " }"
+ print " result = table[c];"
+ print " }"
+ print "#if NCURSES_EXT_FUNCS && NCURSES_XNAMES"
+ print " } else if (result == 0 && cur_term != 0) {"
+ print " int j, k;"
+ print " char * bound;"
+ print " TERMTYPE *tp = &(cur_term->type);"
+ print " int save_trace = _nc_tracing;"
print ""
- print "\tif (table == 0)"
- print "\t\ttable = typeCalloc(char *, 256);"
- print "\tif (table == 0)"
- print "\t\treturn keyname(256);"
- print ""
- print "\tif (table[c] == 0) {"
- print "\t\tp = name;"
- print "\t\tif (c >= 128) {"
- print "\t\t\tstrcpy(p, \"M-\");"
- print "\t\t\tp += 2;"
- print "\t\t\tc -= 128;"
- print "\t\t}"
- print "\t\tif (c < 32)"
- print "\t\t\tsprintf(p, \"^%c\", c + '@');"
- print "\t\telse if (c == 127)"
- print "\t\t\tstrcpy(p, \"^?\");"
- print "\t\telse"
- print "\t\t\tsprintf(p, \"%c\", c);"
- print "\t\ttable[c] = strdup(name);"
- print "\t}"
- print "\treturn (NCURSES_CONST char *)table[c];"
+ print " _nc_tracing = 0; /* prevent recursion via keybound() */"
+ print " for (j = 0; (bound = keybound(c, j)) != 0; ++j) {"
+ print " for(k = STRCOUNT; k < NUM_STRINGS(tp); k++) {"
+ print " if (tp->Strings[k] != 0 && !strcmp(bound, tp->Strings[k])) {"
+ print " result = ExtStrname(tp, k, strnames);"
+ print " break;"
+ print " }"
+ print " }"
+ print " if (result != 0)"
+ print " break;"
+ print " }"
+ print " _nc_tracing = save_trace;"
+ print "#endif"
+ print " }"
+ print " }"
+ print " return result;"
print "}"
print ""
print "#if USE_WIDEC_SUPPORT"
print "NCURSES_EXPORT(NCURSES_CONST char *) key_name (wchar_t c)"
print "{"
- print "\tNCURSES_CONST char *result = keyname((int)c);"
- print "\tif (!strncmp(result, \"M-\", 2)) result = 0;"
- print "\treturn result;"
+ print " NCURSES_CONST char *result = keyname((int)c);"
+ print " if (!strncmp(result, \"M-\", 2)) result = 0;"
+ print " return result;"
print "}"
print "#endif"
}
#
# MKlib_gen.sh -- generate sources from curses.h macro definitions
#
-# ($Id: MKlib_gen.sh,v 1.23 2004/02/07 13:31:35 tom Exp $)
+# ($Id: MKlib_gen.sh,v 1.24 2005/06/11 19:26:05 tom Exp $)
#
##############################################################################
-# Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
#
# This script accepts a file of prototypes on standard input. It discards
# any that don't have a `generated' comment attached. It then parses each
-# prototype (relying on the fact that none of the macros take function
+# prototype (relying on the fact that none of the macros take function
# pointer or array arguments) and generates C source from it.
#
# Here is what the pipeline stages are doing:
#
# 1. sed: extract prototypes of generated functions
# 2. sed: decorate prototypes with generated arguments a1. a2,...z
-# 3. awk: generate the calls with args matching the formals
+# 3. awk: generate the calls with args matching the formals
# 4. sed: prefix function names in prototypes so the preprocessor won't expand
# them.
# 5. cpp: macro-expand the file so the macro calls turn into C calls
comma = ""
num = 0;
pointer = 0;
+ va_list = 0;
+ varargs = 0;
argtype = ""
for (i = myfunc; i <= NF; i++) {
ch = $i;
if ( ch == "*" )
pointer = 1;
else if ( ch == "va_list" )
- pointer = 1;
+ va_list = 1;
+ else if ( ch == "..." )
+ varargs = 1;
else if ( ch == "char" )
argtype = "char";
else if ( ch == "int" )
argtype = "attr";
if ( ch == "," || ch == ")" ) {
- if (pointer) {
+ if (va_list) {
+ call = call "%s"
+ } else if (varargs) {
+ call = call "%s"
+ } else if (pointer) {
if ( argtype == "char" ) {
call = call "%s"
comma = comma "_nc_visbuf2(" num ","
comma = comma "(long)"
}
}
- if (ch == ",")
+ if (ch == ",") {
args = args comma "a" ++num;
- else if ( argcount != 0 && $check != "..." )
- args = args comma "z"
+ } else if ( argcount != 0 ) {
+ if ( va_list ) {
+ args = args comma "\"va_list\""
+ } else if ( varargs ) {
+ args = args comma "\"...\""
+ } else {
+ args = args comma "z"
+ }
+ }
call = call ch
if (pointer == 0 && argcount != 0 && argtype != "" )
args = args ")"
-# $Id: MKunctrl.awk,v 1.9 2001/06/02 23:59:20 skimo Exp $
+# $Id: MKunctrl.awk,v 1.10 2004/04/03 22:50:37 tom Exp $
##############################################################################
-# Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. #
+# Copyright (c) 1998,2001,2004 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
printf "%s", gap
}
print "};"
+ print "int check = ChCharOf(ch);"
print ""
- print "\treturn (NCURSES_CONST char *)table[ChCharOf(ch)];"
+ print "\tif (check < 0 || check >= (int)SIZEOF(table)) return 0;"
+ print ""
+ print "\treturn (NCURSES_CONST char *)table[check];"
print "}"
}
/****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: define_key.c,v 1.8 2003/05/17 23:28:05 tom Exp $")
+MODULE_ID("$Id: define_key.c,v 1.9 2005/04/30 16:21:26 tom Exp $")
NCURSES_EXPORT(int)
define_key(const char *str, int keycode)
int code = ERR;
T((T_CALLED("define_key(%s,%d)"), _nc_visbuf(str), keycode));
- if (keycode > 0) {
+ if (SP == 0) {
+ code = ERR;
+ } else if (keycode > 0) {
if (str != 0) {
define_key(str, 0);
} else if (has_key(keycode)) {
/****************************************************************************
- * Copyright (c) 1999-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: keybound.c,v 1.4 2003/03/08 19:39:31 tom Exp $")
+MODULE_ID("$Id: keybound.c,v 1.5 2005/04/30 16:53:42 tom Exp $")
/*
* Returns the count'th string definition which is associated with the
NCURSES_EXPORT(char *)
keybound(int code, int count)
{
+ char *result = 0;
+
T((T_CALLED("keybound(%d,%d)"), code, count));
- returnPtr(_nc_expand_try(SP->_keytry, code, &count, 0));
+ if (SP != 0) {
+ result = _nc_expand_try(SP->_keytry, code, &count, 0);
+ }
+ returnPtr(result);
}
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_addch.c,v 1.80 2004/02/07 18:20:46 tom Exp $")
+MODULE_ID("$Id: lib_addch.c,v 1.95 2005/03/27 16:52:16 tom Exp $")
/*
* Ugly microtweaking alert. Everything from here to end of module is
*/
/* Return bit mask for clearing color pair number if given ch has color */
-#define COLOR_MASK(ch) (~(attr_t)((ch)&A_COLOR?A_COLOR:0))
+#define COLOR_MASK(ch) (~(attr_t)((ch) & A_COLOR ? A_COLOR : 0))
static inline NCURSES_CH_T
render_char(WINDOW *win, NCURSES_CH_T ch)
/* compute a rendition of the given char correct for the current context */
{
attr_t a = win->_attrs;
+ int pair = GetPair(ch);
- if (ISBLANK(ch) && AttrOf(ch) == A_NORMAL) {
- /* color in attrs has precedence over bkgrnd */
+ if (ISBLANK(ch)
+ && AttrOf(ch) == A_NORMAL
+ && pair == 0) {
+ /* color/pair in attrs has precedence over bkgrnd */
ch = win->_nc_bkgd;
- SetAttr(ch, a | (AttrOf(win->_nc_bkgd) & COLOR_MASK(a)));
+ SetAttr(ch, a | AttrOf(win->_nc_bkgd));
+ if ((pair = GET_WINDOW_PAIR(win)) == 0)
+ pair = GetPair(win->_nc_bkgd);
+ SetPair(ch, pair);
} else {
/* color in attrs has precedence over bkgrnd */
a |= AttrOf(win->_nc_bkgd) & COLOR_MASK(a);
/* color in ch has precedence */
+ if (pair == 0) {
+ if ((pair = GET_WINDOW_PAIR(win)) == 0)
+ pair = GetPair(win->_nc_bkgd);
+ }
+#if 0
+ if (pair > 255) {
+ NCURSES_CH_T fixme = ch;
+ SetPair(fixme, pair);
+ }
+#endif
AddAttr(ch, (a & COLOR_MASK(AttrOf(ch))));
+ SetPair(ch, pair);
}
- TR(TRACE_VIRTPUT, ("render_char bkg %s, attrs %s -> ch %s",
- _tracech_t2(1, CHREF(win->_nc_bkgd)),
- _traceattr(win->_attrs),
- _tracech_t2(3, CHREF(ch))));
+ TR(TRACE_VIRTPUT,
+ ("render_char bkg %s (%d), attrs %s (%d) -> ch %s (%d)",
+ _tracech_t2(1, CHREF(win->_nc_bkgd)),
+ GetPair(win->_nc_bkgd),
+ _traceattr(win->_attrs),
+ GET_WINDOW_PAIR(win),
+ _tracech_t2(3, CHREF(ch)),
+ GetPair(ch)));
return (ch);
}
#define CHECK_POSITION(win, x, y) /* nothing */
#endif
+/*
+ * The _WRAPPED flag is useful only for telling an application that we've just
+ * wrapped the cursor. We don't do anything with this flag except set it when
+ * wrapping, and clear it whenever we move the cursor. If we try to wrap at
+ * the lower-right corner of a window, we cannot move the cursor (since that
+ * wouldn't be legal). So we return an error (which is what SVr4 does).
+ * Unlike SVr4, we can successfully add a character to the lower-right corner
+ * (Solaris 2.6 does this also, however).
+ */
+static int
+wrap_to_next_line(WINDOW *win)
+{
+ win->_flags |= _WRAPPED;
+ if (++win->_cury > win->_regbottom) {
+ win->_cury = win->_regbottom;
+ win->_curx = win->_maxx;
+ if (!win->_scroll)
+ return (ERR);
+ scroll(win);
+ }
+ win->_curx = 0;
+ return (OK);
+}
+
+#if USE_WIDEC_SUPPORT
+static int waddch_literal(WINDOW *, NCURSES_CH_T);
+/*
+ * Fill the given number of cells with blanks using the current background
+ * rendition. This saves/restores the current x-position.
+ */
+static void
+fill_cells(WINDOW *win, int count)
+{
+ NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
+ int save_x = win->_curx;
+ int save_y = win->_cury;
+
+ while (count-- > 0) {
+ if (waddch_literal(win, blank) == ERR)
+ break;
+ }
+ win->_curx = save_x;
+ win->_cury = save_y;
+}
+#endif
+
+/*
+ * Build up the bytes for a multibyte character, returning the length when
+ * complete (a positive number), -1 for error and -2 for incomplete.
+ */
+#if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(int)
+_nc_build_wch(WINDOW *win, ARG_CH_T ch)
+{
+ char *buffer = WINDOW_EXT(win, addch_work);
+ int len;
+ int x = win->_curx;
+ int y = win->_cury;
+ mbstate_t state;
+ wchar_t result;
+
+ if ((WINDOW_EXT(win, addch_used) != 0) &&
+ (WINDOW_EXT(win, addch_x) != x ||
+ WINDOW_EXT(win, addch_y) != y)) {
+ /* discard the incomplete multibyte character */
+ WINDOW_EXT(win, addch_used) = 0;
+ TR(TRACE_VIRTPUT,
+ ("Alert discarded multibyte on move (%d,%d) -> (%d,%d)",
+ WINDOW_EXT(win, addch_y), WINDOW_EXT(win, addch_x),
+ y, x));
+ }
+ WINDOW_EXT(win, addch_x) = x;
+ WINDOW_EXT(win, addch_y) = y;
+
+ init_mb(state);
+ buffer[WINDOW_EXT(win, addch_used)] = CharOf(CHDEREF(ch));
+ WINDOW_EXT(win, addch_used) += 1;
+ buffer[WINDOW_EXT(win, addch_used)] = '\0';
+ if ((len = mbrtowc(&result,
+ buffer,
+ WINDOW_EXT(win, addch_used), &state)) > 0) {
+ attr_t attrs = AttrOf(CHDEREF(ch));
+ SetChar(CHDEREF(ch), result, attrs);
+ WINDOW_EXT(win, addch_used) = 0;
+ } else {
+ if (len == -1) {
+ /*
+ * An error occurred. We could either discard everything,
+ * or assume that the error was in the previous input.
+ * Try the latter.
+ */
+ TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
+ buffer[0] = CharOf(CHDEREF(ch));
+ WINDOW_EXT(win, addch_used) = 1;
+ }
+ }
+ return len;
+}
+#endif /* USE_WIDEC_SUPPORT */
+
static
#if !USE_WIDEC_SUPPORT /* cannot be inline if it is recursive */
- inline
+inline
#endif
int
waddch_literal(WINDOW *win, NCURSES_CH_T ch)
CHECK_POSITION(win, x, y);
- /*
- * If we're trying to add a character at the lower-right corner more
- * than once, fail. (Moving the cursor will clear the flag).
- */
-#if 0 /* Solaris 2.6 allows updating the corner more than once */
- if (win->_flags & _WRAPPED) {
- if (x >= win->_maxx)
- return (ERR);
- win->_flags &= ~_WRAPPED;
- }
-#endif
-
ch = render_char(win, ch);
line = win->_line + y;
* Build up multibyte characters until we have a wide-character.
*/
if_WIDEC({
- if (WINDOW_EXT(win, addch_used) == 0 && Charable(ch)) {
- WINDOW_EXT(win, addch_used) = 0;
- } else {
- char *buffer = WINDOW_EXT(win, addch_work);
- int len;
- mbstate_t state;
- wchar_t result;
-
- if ((WINDOW_EXT(win, addch_used) != 0) &&
- (WINDOW_EXT(win, addch_x) != x ||
- WINDOW_EXT(win, addch_y) != y)) {
- /* discard the incomplete multibyte character */
- WINDOW_EXT(win, addch_used) = 0;
- }
- WINDOW_EXT(win, addch_x) = x;
- WINDOW_EXT(win, addch_y) = y;
-
- memset(&state, 0, sizeof(state));
- buffer[WINDOW_EXT(win, addch_used)] = CharOf(ch);
- WINDOW_EXT(win, addch_used) += 1;
- buffer[WINDOW_EXT(win, addch_used)] = '\0';
- if ((len = mbrtowc(&result,
- buffer,
- WINDOW_EXT(win, addch_used), &state)) > 0) {
- attr_t attrs = AttrOf(ch);
- SetChar(ch, result, attrs);
- WINDOW_EXT(win, addch_used) = 0;
- if (CharOf(ch) < 256) {
+ if (WINDOW_EXT(win, addch_used) != 0 || !Charable(ch)) {
+ int len = _nc_build_wch(win, CHREF(ch));
+
+ if (len > 0) {
+ if (is8bits(CharOf(ch))) {
const char *s = unctrl(CharOf(ch));
if (s[1] != 0) {
return waddstr(win, s);
}
}
} else {
- if (len == -1) {
- /*
- * An error occurred. We could either discard everything,
- * or assume that the error was in the previous input.
- * Try the latter.
- */
- TR(TRACE_VIRTPUT, ("Alert! mbrtowc returns error"));
- buffer[0] = CharOf(ch);
- WINDOW_EXT(win, addch_used) = 1;
- }
return OK;
}
}
});
/*
- * Handle non-spacing characters
+ * Non-spacing characters are added to the current cell.
+ *
+ * Spacing characters that are wider than one column require some display
+ * adjustments.
*/
if_WIDEC({
- if (wcwidth(CharOf(ch)) == 0) {
- int i;
+ int len = wcwidth(CharOf(ch));
+ int i;
+ int j;
+
+ if (len == 0) { /* non-spacing */
if ((x > 0 && y >= 0)
|| ((y = win->_cury - 1) >= 0 &&
(x = win->_maxx) > 0)) {
wchar_t *chars = (win->_line[y].text[x - 1].chars);
for (i = 0; i < CCHARW_MAX; ++i) {
if (chars[i] == 0) {
+ TR(TRACE_VIRTPUT,
+ ("added non-spacing %d: %x",
+ x, (int) CharOf(ch)));
chars[i] = CharOf(ch);
break;
}
}
}
goto testwrapping;
+ } else if (len > 1) { /* multi-column characters */
+ /*
+ * Check if the character will fit on the current line. If it does
+ * not fit, fill in the remainder of the line with blanks. and
+ * move to the next line.
+ */
+ if (len > win->_maxx + 1) {
+ TR(TRACE_VIRTPUT, ("character will not fit"));
+ return ERR;
+ } else if (x + len > win->_maxx + 1) {
+ int count = win->_maxx + 1 - x;
+ TR(TRACE_VIRTPUT, ("fill %d remaining cells", count));
+ fill_cells(win, count);
+ if (wrap_to_next_line(win) == ERR)
+ return ERR;
+ x = win->_curx;
+ y = win->_cury;
+ }
+ /*
+ * Check for cells which are orphaned by adding this character, set
+ * those to blanks.
+ *
+ * FIXME: this actually could fill j-i cells, more complicated to
+ * setup though.
+ */
+ for (i = 0; i < len; ++i) {
+ if (isWidecBase(win->_line[y].text[i])) {
+ break;
+ } else if (isWidecExt(win->_line[y].text[x + i])) {
+ for (j = i; x + j <= win->_maxx; ++j) {
+ if (!isWidecExt(win->_line[y].text[x + j])) {
+ TR(TRACE_VIRTPUT, ("fill %d orphan cells", j));
+ fill_cells(win, j);
+ break;
+ }
+ }
+ break;
+ }
+ }
+ /*
+ * Finally, add the cells for this character.
+ */
+ for (i = 0; i < len; ++i) {
+ NCURSES_CH_T value = ch;
+ SetWidecExt(value, i);
+ TR(TRACE_VIRTPUT, ("multicolumn %d:%d", i + 1, len));
+ line->text[x] = value;
+ CHANGED_CELL(line, x);
+ ++x;
+ }
+ goto testwrapping;
}
});
+
+ /*
+ * Single-column characters.
+ */
line->text[x++] = ch;
/*
- * Provide for multi-column characters
+ * This label is used only for wide-characters.
*/
- if_WIDEC({
- int len = wcwidth(CharOf(ch));
- while (len-- > 1) {
- if (x + (len - 1) > win->_maxx) {
- NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
- AddAttr(blank, AttrOf(ch));
- if (waddch_literal(win, blank) != ERR)
- return waddch_literal(win, ch);
- return ERR;
- }
- AddAttr(line->text[x++], WA_NAC);
- TR(TRACE_VIRTPUT, ("added NAC %d", x - 1));
- }
- }
+ if_WIDEC(
testwrapping:
);
- TR(TRACE_VIRTPUT, ("(%d, %d) = %s", win->_cury, x, _tracech_t(CHREF(ch))));
+ TR(TRACE_VIRTPUT, ("cell (%d, %d..%d) = %s",
+ win->_cury, win->_curx, x - 1,
+ _tracech_t(CHREF(ch))));
+
if (x > win->_maxx) {
- /*
- * The _WRAPPED flag is useful only for telling an application that
- * we've just wrapped the cursor. We don't do anything with this flag
- * except set it when wrapping, and clear it whenever we move the
- * cursor. If we try to wrap at the lower-right corner of a window, we
- * cannot move the cursor (since that wouldn't be legal). So we return
- * an error (which is what SVr4 does). Unlike SVr4, we can
- * successfully add a character to the lower-right corner (Solaris 2.6
- * does this also, however).
- */
- win->_flags |= _WRAPPED;
- if (++win->_cury > win->_regbottom) {
- win->_cury = win->_regbottom;
- win->_curx = win->_maxx;
- if (!win->_scroll)
- return (ERR);
- scroll(win);
- }
- win->_curx = 0;
- return (OK);
+ return wrap_to_next_line(win);
}
win->_curx = x;
return OK;
{
int x, y;
chtype t = CharOf(ch);
- const char *s = 0;
+ const char *s = unctrl(t);
/*
* If we are using the alternate character set, forget about locale.
* claims the code is printable, treat it that way.
*/
if ((AttrOf(ch) & A_ALTCHARSET)
- || ((s = unctrl(t))[1] == 0 ||
- (
- isprint(t)
+ || (
+#if USE_WIDEC_SUPPORT
+ (SP != 0 && SP->_legacy_coding) &&
+#endif
+ s[1] == 0
+ )
+ || (
+ isprint(t)
#if USE_WIDEC_SUPPORT
- || WINDOW_EXT(win, addch_used)
+ || ((SP == 0 || !SP->_legacy_coding) &&
+ (WINDOW_EXT(win, addch_used)
+ || !_nc_is_charable(CharOf(ch))))
#endif
- )))
+ ))
return waddch_literal(win, ch);
/*
}
/*
- * The versions below call _nc_synhook(). We wanted to avoid this in the
+ * The versions below call _nc_synchook(). We wanted to avoid this in the
* version exported for string puts; they'll call _nc_synchook once at end
* of run.
*/
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
* *
- * Rewritten 2001-2002 to support wide-characters by *
+ * Rewritten 2001-2004 to support wide-characters by *
* Sven Verdoolaege *
* Thomas Dickey *
****************************************************************************/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_addstr.c,v 1.39 2003/12/06 18:04:33 tom Exp $")
+MODULE_ID("$Id: lib_addstr.c,v 1.43 2004/12/12 00:15:31 tom Exp $")
NCURSES_EXPORT(int)
waddnstr(WINDOW *win, const char *astr, int n)
#if USE_WIDEC_SUPPORT
NCURSES_EXPORT(int)
-_nc_wchstrlen(const cchar_t * s)
+_nc_wchstrlen(const cchar_t *s)
{
int result = 0;
while (CharOf(s[result]) != L'\0') {
}
NCURSES_EXPORT(int)
-wadd_wchnstr(WINDOW *win, const cchar_t * astr, int n)
+wadd_wchnstr(WINDOW *win, const cchar_t *astr, int n)
{
+ NCURSES_CH_T blank = NewChar(BLANK_TEXT);
NCURSES_SIZE_T y = win->_cury;
NCURSES_SIZE_T x = win->_curx;
int code = OK;
struct ldat *line;
- int i, start, end;
+ int i, j, start, len, end;
T((T_CALLED("wadd_wchnstr(%p,%s,%d)"), win, _nc_viscbuf(astr, n), n));
line = &(win->_line[y]);
start = x;
end = x + n - 1;
- if (isnac(line->text[x])) {
- line->text[x - 1] = win->_nc_bkgd;
- --start;
+
+ /*
+ * Reset orphaned cells of multi-column characters that extend up to the
+ * new string's location to blanks.
+ */
+ if (x > 0 && isWidecExt(line->text[x])) {
+ for (i = 0; i <= x; ++i) {
+ if (!isWidecExt(line->text[x - i])) {
+ /* must be isWidecBase() */
+ start -= i;
+ while (i > 0) {
+ line->text[x - i--] = _nc_render(win, blank);
+ }
+ break;
+ }
+ }
}
+
+ /*
+ * Copy the new string to the window.
+ */
for (i = 0; i < n && x <= win->_maxx; ++i) {
- line->text[x++] = astr[i];
- if (wcwidth(CharOf(astr[i])) > 1) {
- if (x <= win->_maxx)
- AddAttr(line->text[x++], WA_NAC);
- else
- line->text[x - 1] = win->_nc_bkgd;
+ if (isWidecExt(astr[i]))
+ continue;
+
+ len = wcwidth(CharOf(astr[i]));
+
+ if (x + len - 1 <= win->_maxx) {
+ line->text[x] = _nc_render(win, astr[i]);
+ if (len > 1) {
+ for (j = 0; j < len; ++j) {
+ if (j != 0) {
+ line->text[x + j] = line->text[x];
+ }
+ SetWidecExt(line->text[x + j], j);
+ }
+ }
+ x += len;
+ end += len - 1;
+ } else {
+ break;
}
}
- if (x <= win->_maxx && isnac(line->text[x])) {
- line->text[x] = win->_nc_bkgd;
+
+ /*
+ * Set orphaned cells of multi-column characters which lie after the new
+ * string to blanks.
+ */
+ while (x <= win->_maxx && isWidecExt(line->text[x])) {
+ line->text[x] = _nc_render(win, blank);
++end;
+ ++x;
}
CHANGED_RANGE(line, start, end);
}
NCURSES_EXPORT(int)
-waddnwstr(WINDOW *win, const wchar_t * str, int n)
+waddnwstr(WINDOW *win, const wchar_t *str, int n)
{
int code = ERR;
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
#include <term.h> /* beep, flash */
-MODULE_ID("$Id: lib_beep.c,v 1.9 2000/12/10 02:43:26 tom Exp $")
+MODULE_ID("$Id: lib_beep.c,v 1.10 2005/04/09 15:20:04 tom Exp $")
/*
* beep()
T((T_CALLED("beep()")));
/* FIXME: should make sure that we are not in altchar mode */
- if (bell) {
+ if (cur_term == 0) {
+ res = ERR;
+ } else if (bell) {
TPUTS_TRACE("bell");
res = putp(bell);
_nc_flush();
/****************************************************************************
- * Copyright (c) 1998,2001-2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Juergen Pfeifer 1997 *
+ * and: Sven Verdoolaege 2000 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_bkgd.c,v 1.30 2003/07/05 16:46:49 tom Exp $")
+MODULE_ID("$Id: lib_bkgd.c,v 1.32 2005/04/16 18:03:48 tom Exp $")
/*
* Set the window's background information.
toggle_attr_off(win->_attrs, off);
toggle_attr_on(win->_attrs, on);
- if (CharOf(CHDEREF(ch)) == L('\0'))
+#if NCURSES_EXT_COLORS
+ {
+ int pair;
+
+ if ((pair = GetPair(win->_nc_bkgd)) != 0)
+ SET_WINDOW_PAIR(win, 0);
+ if ((pair = GetPair(CHDEREF(ch))) != 0)
+ SET_WINDOW_PAIR(win, pair);
+ }
+#endif
+
+ if (CharOf(CHDEREF(ch)) == L('\0')) {
SetChar(win->_nc_bkgd, BLANK_TEXT, AttrOf(CHDEREF(ch)));
- else
+ SetPair(win->_nc_bkgd, GetPair(CHDEREF(ch)));
+ } else {
win->_nc_bkgd = CHDEREF(ch);
+ }
#if USE_WIDEC_SUPPORT
/*
* If we're compiled for wide-character support, _bkgrnd is the
int tmp;
wgetbkgrnd(win, &wch);
- tmp = _nc_to_char(CharOf(wch));
+ tmp = _nc_to_char((wint_t) CharOf(wch));
- win->_bkgd = ((tmp == EOF) ? ' ' : (chtype) tmp) | AttrOf(wch);
+ win->_bkgd = (((tmp == EOF) ? ' ' : (chtype) tmp)
+ | (AttrOf(wch) & ALL_BUT_COLOR)
+ | COLOR_PAIR(GET_WINDOW_PAIR(win)));
}
#endif
}
/****************************************************************************
- * Copyright (c) 1998,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Sven Verdoolaege 2001 *
+ * and: Thomas E. Dickey 2005 *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_chgat.c,v 1.5 2001/06/03 00:05:02 skimo Exp $")
+MODULE_ID("$Id: lib_chgat.c,v 1.6 2005/01/29 21:46:12 tom Exp $")
NCURSES_EXPORT(int)
-wchgat
-(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED)
+wchgat(WINDOW *win, int n, attr_t attr, short color, const void *opts GCC_UNUSED)
{
int i;
if (win) {
toggle_attr_on(attr, COLOR_PAIR(color));
- for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++)
+ for (i = win->_curx; i <= win->_maxx && (n == -1 || (n-- > 0)); i++) {
SetAttr(win->_line[win->_cury].text[i], attr);
+ SetPair(win->_line[win->_cury].text[i], color);
+ }
returnCode(OK);
} else
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/* lib_color.c
#include <term.h>
#include <tic.h>
-MODULE_ID("$Id: lib_color.c,v 1.62 2002/09/28 20:40:05 tom Exp $")
+MODULE_ID("$Id: lib_color.c,v 1.75 2005/06/18 20:19:08 tom Exp $")
/*
* These should be screen structure members. They need to be globals for
#define DATA(r,g,b) {r,g,b, 0,0,0, 0}
+#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+
/*
* Given a RGB range of 0..1000, we'll normally set the individual values
* to about 2/3 of the maximum, leaving full-range for bold/bright colors.
T((T_CALLED("start_color()")));
- if (!SP->_coloron) {
+ if (SP == 0) {
+ result = ERR;
+ } else if (SP->_coloron) {
+ result = OK;
+ } else {
if (reset_color_pair() != TRUE) {
set_foreground_color(default_fg(), _nc_outch);
COLOR_PAIRS = SP->_pair_count = max_pairs;
COLORS = SP->_color_count = max_colors;
- if ((SP->_color_pairs = typeCalloc(unsigned short,
- (unsigned) max_pairs)) != 0) {
- if ((SP->_color_table = typeCalloc(color_t, max_colors)) != 0) {
+ if ((SP->_color_pairs = TYPE_CALLOC(colorpair_t,
+ max_pairs)) != 0) {
+ if ((SP->_color_table = TYPE_CALLOC(color_t,
+ max_colors)) != 0) {
SP->_color_pairs[0] = PAIR_OF(default_fg(), default_bg());
init_color_table();
SP->_coloron = 1;
result = OK;
- } else {
+ } else if (SP->_color_pairs != 0) {
FreeAndNull(SP->_color_pairs);
}
}
+ } else {
+ result = OK;
}
}
- returnCode(OK);
+ returnCode(result);
}
/* This function was originally written by Daniel Weaver <danw@znyx.com> */
NCURSES_EXPORT(int)
init_pair(short pair, short f, short b)
{
- unsigned result;
+ colorpair_t result;
T((T_CALLED("init_pair(%d,%d,%d)"), pair, f, b));
- if ((pair < 0) || (pair >= COLOR_PAIRS))
+ if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron)
returnCode(ERR);
#if NCURSES_EXT_FUNCS
if (SP->_default_color) {
if (f < 0)
- f = C_MASK;
+ f = COLOR_DEFAULT;
if (b < 0)
- b = C_MASK;
- if (f >= COLORS && f != C_MASK)
+ b = COLOR_DEFAULT;
+ if (f >= COLORS && !isDefaultColor(f))
returnCode(ERR);
- if (b >= COLORS && b != C_MASK)
+ if (b >= COLORS && !isDefaultColor(b))
returnCode(ERR);
} else
#endif
if (SP->_color_pairs[pair] != 0
&& SP->_color_pairs[pair] != result) {
int y, x;
- attr_t z = COLOR_PAIR(pair);
for (y = 0; y <= curscr->_maxy; y++) {
struct ldat *ptr = &(curscr->_line[y]);
bool changed = FALSE;
for (x = 0; x <= curscr->_maxx; x++) {
- if ((AttrOf(ptr->text[x]) & A_COLOR) == z) {
+ if (GetPair(ptr->text[x]) == pair) {
/* Set the old cell to zero to ensure it will be
updated on the next doupdate() */
SetChar(ptr->text[x], 0, 0);
}
}
SP->_color_pairs[pair] = result;
- if ((int) (SP->_current_attr & A_COLOR) == COLOR_PAIR(pair))
- SP->_current_attr |= A_COLOR; /* force attribute update */
+ if (GET_SCREEN_PAIR(SP) == pair)
+ SET_SCREEN_PAIR(SP, ~0); /* force attribute update */
if (initialize_pair) {
const color_t *tp = hue_lightness_saturation ? hls_palette : cga_palette;
returnCode(OK);
}
-#define okRGB(n) ((n) >= 0 && (n) < 1000)
+#define okRGB(n) ((n) >= 0 && (n) <= 1000)
NCURSES_EXPORT(int)
init_color(short color, short r, short g, short b)
T((T_CALLED("init_color(%d,%d,%d,%d)"), color, r, g, b));
if (initialize_color != NULL
+ && SP != 0
+ && SP->_coloron
&& (color >= 0 && color < COLORS)
&& (okRGB(r) && okRGB(g) && okRGB(b))) {
NCURSES_EXPORT(int)
color_content(short color, short *r, short *g, short *b)
{
- T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
- if (color < 0 || color >= COLORS)
- returnCode(ERR);
+ int result;
- if (r)
- *r = SP->_color_table[color].red;
- if (g)
- *g = SP->_color_table[color].green;
- if (b)
- *b = SP->_color_table[color].blue;
- T(("...color_content(%d,%d,%d,%d)", color, *r, *g, *b));
- returnCode(OK);
+ T((T_CALLED("color_content(%d,%p,%p,%p)"), color, r, g, b));
+ if (color < 0 || color >= COLORS || SP == 0 || !SP->_coloron) {
+ result = ERR;
+ } else {
+ NCURSES_COLOR_T c_r = SP->_color_table[color].red;
+ NCURSES_COLOR_T c_g = SP->_color_table[color].green;
+ NCURSES_COLOR_T c_b = SP->_color_table[color].blue;
+
+ if (r)
+ *r = c_r;
+ if (g)
+ *g = c_g;
+ if (b)
+ *b = c_b;
+
+ T(("...color_content(%d,%d,%d,%d)", color, c_r, c_g, c_b));
+ result = OK;
+ }
+ returnCode(result);
}
NCURSES_EXPORT(int)
pair_content(short pair, short *f, short *b)
{
+ int result;
+
T((T_CALLED("pair_content(%d,%p,%p)"), pair, f, b));
- if ((pair < 0) || (pair >= COLOR_PAIRS))
- returnCode(ERR);
- if (f)
- *f = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
- if (b)
- *b = (SP->_color_pairs[pair] & C_MASK);
+ if ((pair < 0) || (pair >= COLOR_PAIRS) || SP == 0 || !SP->_coloron) {
+ result = ERR;
+ } else {
+ NCURSES_COLOR_T fg = ((SP->_color_pairs[pair] >> C_SHIFT) & C_MASK);
+ NCURSES_COLOR_T bg = (SP->_color_pairs[pair] & C_MASK);
- T(("...pair_content(%d,%d,%d)", pair, *f, *b));
- returnCode(OK);
+#if NCURSES_EXT_FUNCS
+ if (fg == COLOR_DEFAULT)
+ fg = -1;
+ if (bg == COLOR_DEFAULT)
+ bg = -1;
+#endif
+
+ if (f)
+ *f = fg;
+ if (b)
+ *b = bg;
+
+ T(("...pair_content(%d,%d,%d)", pair, fg, bg));
+ result = OK;
+ }
+ returnCode(result);
}
NCURSES_EXPORT(void)
_nc_do_color(int old_pair, int pair, bool reverse, int (*outc) (int))
{
- NCURSES_COLOR_T fg = C_MASK, bg = C_MASK;
+ NCURSES_COLOR_T fg = COLOR_DEFAULT;
+ NCURSES_COLOR_T bg = COLOR_DEFAULT;
NCURSES_COLOR_T old_fg, old_bg;
if (pair < 0 || pair >= COLOR_PAIRS) {
if (old_pair >= 0
&& SP != 0
&& pair_content(old_pair, &old_fg, &old_bg) != ERR) {
- if ((fg == C_MASK && old_fg != C_MASK)
- || (bg == C_MASK && old_bg != C_MASK)) {
+ if ((isDefaultColor(fg) && !isDefaultColor(old_fg))
+ || (isDefaultColor(bg) && !isDefaultColor(old_bg))) {
#if NCURSES_EXT_FUNCS
/*
* A minor optimization - but extension. If "AX" is specified in
* the terminal description, treat it as screen's indicator of ECMA
* SGR 39 and SGR 49, and assume the two sequences are independent.
*/
- if (SP->_has_sgr_39_49 && old_bg == C_MASK && old_fg != C_MASK) {
+ if (SP->_has_sgr_39_49
+ && isDefaultColor(old_bg)
+ && !isDefaultColor(old_fg)) {
tputs("\033[39m", 1, outc);
- } else if (SP->_has_sgr_39_49 && old_fg == C_MASK && old_bg != C_MASK) {
+ } else if (SP->_has_sgr_39_49
+ && isDefaultColor(old_fg)
+ && !isDefaultColor(old_bg)) {
tputs("\033[49m", 1, outc);
} else
#endif
}
#if NCURSES_EXT_FUNCS
- if (fg == C_MASK)
+ if (isDefaultColor(fg))
fg = default_fg();
- if (bg == C_MASK)
+ if (isDefaultColor(bg))
bg = default_bg();
#endif
TR(TRACE_ATTRS, ("setting colors: pair = %d, fg = %d, bg = %d", pair,
fg, bg));
- if (fg != C_MASK) {
+ if (!isDefaultColor(fg)) {
set_foreground_color(fg, outc);
}
- if (bg != C_MASK) {
+ if (!isDefaultColor(bg)) {
set_background_color(bg, outc);
}
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer, 1998 *
+ * Author: Juergen Pfeifer, 1998 *
+ * and: Thomas E. Dickey, 2005 *
****************************************************************************/
/*
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_colorset.c,v 1.10 2003/12/07 00:15:27 tom Exp $")
+MODULE_ID("$Id: lib_colorset.c,v 1.11 2005/01/29 21:40:51 tom Exp $")
NCURSES_EXPORT(int)
wcolor_set(WINDOW *win, short color_pair_number, void *opts)
&& !opts
&& (color_pair_number >= 0)
&& (color_pair_number < COLOR_PAIRS)) {
- TR(TRACE_ATTRS, ("... current %ld", (long) PAIR_NUMBER(win->_attrs)));
- win->_attrs &= ALL_BUT_COLOR;
- win->_attrs |= COLOR_PAIR(color_pair_number);
+ TR(TRACE_ATTRS, ("... current %ld", (long) GET_WINDOW_PAIR(win)));
+ SET_WINDOW_PAIR(win, color_pair_number);
+ if_EXT_COLORS(win->_color = color_pair_number);
returnCode(OK);
} else
returnCode(ERR);
/****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997,1999 *
+ * Author: Thomas E. Dickey *
****************************************************************************/
#include <curses.priv.h>
#include <term.h>
-MODULE_ID("$Id: lib_dft_fgbg.c,v 1.15 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_dft_fgbg.c,v 1.17 2005/01/29 21:42:15 tom Exp $")
/*
* Modify the behavior of color-pair 0 so that the library doesn't assume that
use_default_colors(void)
{
T((T_CALLED("use_default_colors()")));
- returnCode(assume_default_colors(C_MASK, C_MASK));
+ returnCode(assume_default_colors(-1, -1));
}
/*
if (initialize_pair) /* don't know how to handle this */
returnCode(ERR);
- SP->_default_color = (fg < 0 || fg == C_MASK) || (bg < 0 || bg == C_MASK);
+ SP->_default_color = isDefaultColor(fg) || isDefaultColor(bg);
SP->_has_sgr_39_49 = (tigetflag("AX") == TRUE);
- SP->_default_fg = (fg >= 0) ? (fg & C_MASK) : C_MASK;
- SP->_default_bg = (bg >= 0) ? (bg & C_MASK) : C_MASK;
- if (SP->_color_pairs != 0)
+ SP->_default_fg = isDefaultColor(fg) ? COLOR_DEFAULT : (fg & C_MASK);
+ SP->_default_bg = isDefaultColor(bg) ? COLOR_DEFAULT : (bg & C_MASK);
+ if (SP->_color_pairs != 0) {
+ bool save = SP->_default_color;
+ SP->_default_color = TRUE;
init_pair(0, fg, bg);
+ SP->_default_color = save;
+ }
returnCode(OK);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
#include <term_entry.h>
+#include <tic.h>
#if HAVE_NC_FREEALL
extern int malloc_errfd; /* FIXME */
#endif
-MODULE_ID("$Id: lib_freeall.c,v 1.26 2003/12/27 18:21:57 tom Exp $")
+MODULE_ID("$Id: lib_freeall.c,v 1.33 2005/06/04 22:34:01 tom Exp $")
/*
* Free all ncurses data. This is used for testing only (there's no practical
T((T_CALLED("_nc_freeall()")));
#if NO_LEAKS
_nc_free_tparm();
- FreeAndNull(_nc_oldnums);
+ if (_nc_oldnums != 0) {
+ FreeAndNull(_nc_oldnums);
+ }
#endif
if (SP != 0) {
while (_nc_windows != 0) {
del_curterm(cur_term);
_nc_free_entries(_nc_head);
+ _nc_get_type(0);
+ _nc_first_name(0);
+#if USE_WIDEC_SUPPORT
+ FreeIfNeeded(_nc_wacs);
+#endif
+#if NO_LEAKS
+ _nc_alloc_entry_leaks();
+ _nc_captoinfo_leaks();
+ _nc_comp_scan_leaks();
+#endif
if ((s = _nc_home_terminfo()) != 0)
free(s);
#if HAVE_LIBDBMALLOC
malloc_dump(malloc_errfd);
#elif HAVE_LIBDMALLOC
+#elif HAVE_LIBMPATROL
+ __mp_summary();
#elif HAVE_PURIFY
purify_all_inuse();
#endif
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_getch.c,v 1.71 2003/05/17 23:49:28 tom Exp $")
+MODULE_ID("$Id: lib_getch.c,v 1.73 2005/06/11 18:08:57 tom Exp $")
#include <fifo_defs.h>
T((T_CALLED("_nc_wgetch(%p)"), win));
*result = 0;
- if (!win)
+ if (win == 0 || SP == 0)
returnCode(ERR);
if (cooked_key_in_fifo()) {
T((T_CALLED("wgetch(%p)"), win));
code = _nc_wgetch(win,
&value,
- SP->_use_meta
+ (SP ? SP->_use_meta : 0)
EVENTLIST_2nd((_nc_eventlist *) 0));
if (code != ERR)
code = value;
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_insch.c,v 1.18 2002/11/23 21:41:05 tom Exp $")
+MODULE_ID("$Id: lib_insch.c,v 1.24 2005/02/26 19:27:28 tom Exp $")
/*
* Insert the given character, updating the current location to simplify
* inserting a string.
*/
-void
+NCURSES_EXPORT(int)
_nc_insert_ch(WINDOW *win, chtype ch)
{
+ int code = OK;
NCURSES_CH_T wch;
int count;
+ NCURSES_CONST char *s;
switch (ch) {
case '\t':
- for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--)
- _nc_insert_ch(win, ' ');
+ for (count = (TABSIZE - (win->_curx % TABSIZE)); count > 0; count--) {
+ if ((code = _nc_insert_ch(win, ' ')) != OK)
+ break;
+ }
break;
case '\n':
case '\r':
_nc_waddch_nosync(win, wch);
break;
default:
- if (is7bits(ch) && iscntrl(ch)) {
- _nc_insert_ch(win, '^');
- _nc_insert_ch(win, '@' + (ch));
- } else if (win->_curx <= win->_maxx) {
- struct ldat *line = &(win->_line[win->_cury]);
- NCURSES_CH_T *end = &(line->text[win->_curx]);
- NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
- NCURSES_CH_T *temp2 = temp1 - 1;
-
+ if (
+#if USE_WIDEC_SUPPORT
+ WINDOW_EXT(win, addch_used) == 0 &&
+#endif
+ is8bits(ChCharOf(ch)) &&
+ isprint(ChCharOf(ch))) {
+ if (win->_curx <= win->_maxx) {
+ struct ldat *line = &(win->_line[win->_cury]);
+ NCURSES_CH_T *end = &(line->text[win->_curx]);
+ NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
+ NCURSES_CH_T *temp2 = temp1 - 1;
+
+ SetChar2(wch, ch);
+
+ CHANGED_TO_EOL(line, win->_curx, win->_maxx);
+ while (temp1 > end)
+ *temp1-- = *temp2--;
+
+ *temp1 = _nc_render(win, wch);
+ win->_curx++;
+ }
+ } else if (is8bits(ChCharOf(ch)) && iscntrl(ChCharOf(ch))) {
+ s = unctrl(ChCharOf(ch));
+ while (*s != '\0') {
+ if ((code = _nc_insert_ch(win, ChAttrOf(ch) | UChar(*s))) != OK)
+ break;
+ ++s;
+ }
+ }
+#if USE_WIDEC_SUPPORT
+ else {
+ /*
+ * Handle multibyte characters here
+ */
SetChar2(wch, ch);
-
- CHANGED_TO_EOL(line, win->_curx, win->_maxx);
- while (temp1 > end)
- *temp1-- = *temp2--;
-
- *temp1 = _nc_render(win, wch);
-
- win->_curx++;
+ wch = _nc_render(win, wch);
+ if (_nc_build_wch(win, &wch) >= 0)
+ code = wins_wch(win, &wch);
}
+#endif
break;
}
+ return code;
}
NCURSES_EXPORT(int)
oy = win->_cury;
ox = win->_curx;
- _nc_insert_ch(win, c);
-
- win->_curx = ox;
- win->_cury = oy;
- _nc_synchook(win);
- code = OK;
- }
- returnCode(code);
-}
-
-NCURSES_EXPORT(int)
-winsnstr(WINDOW *win, const char *s, int n)
-{
- int code = ERR;
- NCURSES_SIZE_T oy;
- NCURSES_SIZE_T ox;
- const unsigned char *str = (const unsigned char *) s;
- const unsigned char *cp;
-
- T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n));
+ code = _nc_insert_ch(win, c);
- if (win != 0 && str != 0) {
- oy = win->_cury;
- ox = win->_curx;
- for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
- _nc_insert_ch(win, (chtype) UChar(*cp));
- }
win->_curx = ox;
win->_cury = oy;
_nc_synchook(win);
- code = OK;
}
returnCode(code);
}
--- /dev/null
+/****************************************************************************
+ * Copyright (c) 2004 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************/
+
+/****************************************************************************
+ * Author: Thomas E. Dickey *
+ ****************************************************************************/
+
+/*
+** lib_insnstr.c
+**
+** The routine winsnstr().
+**
+*/
+
+#include <curses.priv.h>
+#include <ctype.h>
+
+MODULE_ID("$Id: lib_insnstr.c,v 1.1 2004/02/28 23:44:56 tom Exp $")
+
+NCURSES_EXPORT(int)
+winsnstr(WINDOW *win, const char *s, int n)
+{
+ int code = ERR;
+ NCURSES_SIZE_T oy;
+ NCURSES_SIZE_T ox;
+ const unsigned char *str = (const unsigned char *) s;
+ const unsigned char *cp;
+
+ T((T_CALLED("winsnstr(%p,%s,%d)"), win, _nc_visbufn(s, n), n));
+
+ if (win != 0 && str != 0) {
+ oy = win->_cury;
+ ox = win->_curx;
+ for (cp = str; *cp && (n <= 0 || (cp - str) < n); cp++) {
+ _nc_insert_ch(win, (chtype) UChar(*cp));
+ }
+ win->_curx = ox;
+ win->_cury = oy;
+ _nc_synchook(win);
+ code = OK;
+ }
+ returnCode(code);
+}
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_instr.c,v 1.12 2002/10/05 23:23:05 tom Exp $")
+MODULE_ID("$Id: lib_instr.c,v 1.14 2005/04/16 17:51:12 tom Exp $")
NCURSES_EXPORT(int)
winnstr(WINDOW *win, char *str, int n)
n = win->_maxx - win->_curx + 1;
for (; i < n;) {
+#if USE_WIDEC_SUPPORT
+ cchar_t *cell = &(win->_line[row].text[col]);
+ wchar_t *wch;
+ attr_t attrs;
+ short pair;
+ int n2;
+ bool done = FALSE;
+ mbstate_t state;
+ size_t i3, n3;
+ char *tmp;
+
+ if (!isWidecExt(*cell)) {
+ n2 = getcchar(cell, 0, 0, 0, 0);
+ if (n2 > 0
+ && (wch = typeCalloc(wchar_t, (unsigned) n2 + 1)) != 0) {
+ if (getcchar(cell, wch, &attrs, &pair, 0) == OK) {
+
+ init_mb(state);
+ n3 = wcstombs(0, wch, 0);
+ if (isEILSEQ(n3) || (n3 == 0)) {
+ ;
+ } else if ((int) (n3 + i) >= n) {
+ done = TRUE;
+ } else if ((tmp = typeCalloc(char, n3 + 10)) == 0) {
+ done = TRUE;
+ } else {
+ init_mb(state);
+ wcstombs(tmp, wch, n3);
+ for (i3 = 0; i3 < n3; ++i3)
+ str[i++] = tmp[i3];
+ free(tmp);
+ }
+ }
+ free(wch);
+ if (done)
+ break;
+ }
+ }
+#else
str[i++] = CharOf(win->_line[row].text[col]);
+#endif
if (++col > win->_maxx) {
col = 0;
if (++row > win->_maxy)
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-2003 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
* This module is intended to encapsulate ncurses's interface to pointing
* devices.
*
- * The first method used is xterm's internal mouse-tracking facility.
- * The second is Alessandro Rubini's GPM server.
+ * The primary method used is xterm's internal mouse-tracking facility.
+ * Additional methods depend on the platform:
+ * Alessandro Rubini's GPM server (Linux)
+ * sysmouse (FreeBSD)
+ * special-purpose mouse interface for OS/2 EMX.
*
* Notes for implementors of new mouse-interface methods:
*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_mouse.c,v 1.68 2003/11/08 21:50:50 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.77 2005/09/10 22:58:57 tom Exp $")
#include <term.h>
#include <tic.h>
#undef buttons /* term.h defines this, and gpm uses it! */
#include <gpm.h>
#include <linux/keyboard.h> /* defines KG_* macros */
+/* use dynamic loader to avoid linkage dependency */
+#include <dlfcn.h>
+#ifdef RTLD_NOW
+#define my_RTLD RTLD_NOW
+#else
+#ifdef RTLD_LAZY
+#define my_RTLD RTLD_LAZY
+#else
+make an error
#endif
#endif
+#endif
+#endif /* USE_GPM_SUPPORT */
#if USE_SYSMOUSE
#undef buttons /* symbol conflict in consio.h */
#else
#include <machine/console.h>
#endif
-#endif /* use_SYSMOUSE */
+#endif /* use_SYSMOUSE */
#define MY_TRACE TRACE_ICALLS|TRACE_IEVENT
-#define MASK_RELEASE(x) ((001 << (6 * ((x) - 1))))
-#define MASK_PRESS(x) ((002 << (6 * ((x) - 1))))
-#define MASK_CLICK(x) ((004 << (6 * ((x) - 1))))
-#define MASK_DOUBLE_CLICK(x) ((010 << (6 * ((x) - 1))))
-#define MASK_TRIPLE_CLICK(x) ((020 << (6 * ((x) - 1))))
-#define MASK_RESERVED_EVENT(x) ((040 << (6 * ((x) - 1))))
-
-#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED)
-#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED)
-#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED)
+#define MASK_RELEASE(x) NCURSES_MOUSE_MASK(x, 001)
+#define MASK_PRESS(x) NCURSES_MOUSE_MASK(x, 002)
+#define MASK_CLICK(x) NCURSES_MOUSE_MASK(x, 004)
+#define MASK_DOUBLE_CLICK(x) NCURSES_MOUSE_MASK(x, 010)
+#define MASK_TRIPLE_CLICK(x) NCURSES_MOUSE_MASK(x, 020)
+#define MASK_RESERVED_EVENT(x) NCURSES_MOUSE_MASK(x, 040)
+
+#if NCURSES_MOUSE_VERSION == 1
+#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED | BUTTON4_CLICKED)
+#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED | BUTTON4_PRESSED)
+#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED | BUTTON4_RELEASED)
+#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED)
+#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED)
+#define MAX_BUTTONS 4
+#else
+#define BUTTON_CLICKED (BUTTON1_CLICKED | BUTTON2_CLICKED | BUTTON3_CLICKED | BUTTON4_CLICKED | BUTTON5_CLICKED)
+#define BUTTON_PRESSED (BUTTON1_PRESSED | BUTTON2_PRESSED | BUTTON3_PRESSED | BUTTON4_PRESSED | BUTTON5_PRESSED)
+#define BUTTON_RELEASED (BUTTON1_RELEASED | BUTTON2_RELEASED | BUTTON3_RELEASED | BUTTON4_RELEASED | BUTTON5_RELEASED)
+#define BUTTON_DOUBLE_CLICKED (BUTTON1_DOUBLE_CLICKED | BUTTON2_DOUBLE_CLICKED | BUTTON3_DOUBLE_CLICKED | BUTTON4_DOUBLE_CLICKED | BUTTON5_DOUBLE_CLICKED)
+#define BUTTON_TRIPLE_CLICKED (BUTTON1_TRIPLE_CLICKED | BUTTON2_TRIPLE_CLICKED | BUTTON3_TRIPLE_CLICKED | BUTTON4_TRIPLE_CLICKED | BUTTON5_TRIPLE_CLICKED)
+#define MAX_BUTTONS 5
+#endif
#define INVALID_EVENT -1
#define NORMAL_EVENT 0
#if USE_GPM_SUPPORT
#ifndef LINT
-static Gpm_Connect gpm_connect;
-#endif
+
+#ifndef LIBGPM_SONAME
+#define LIBGPM_SONAME "libgpm.so"
#endif
+#define GET_DLSYM(name) (my_##name = (TYPE_##name) dlsym(obj, #name))
+
+static Gpm_Connect gpm_connect;
+
+typedef int *TYPE_gpm_fd;
+typedef int (*TYPE_Gpm_Open) (Gpm_Connect *, int);
+typedef int (*TYPE_Gpm_Close) (void);
+typedef int (*TYPE_Gpm_GetEvent) (Gpm_Event *);
+
+static TYPE_gpm_fd my_gpm_fd;
+static TYPE_Gpm_Open my_Gpm_Open;
+static TYPE_Gpm_Close my_Gpm_Close;
+static TYPE_Gpm_GetEvent my_Gpm_GetEvent;
+
+#endif /* LINT */
+#endif /* USE_GPM_SUPPORT */
+
static mmask_t eventmask; /* current event mask */
static bool _nc_mouse_parse(int);
DosExit(EXIT_THREAD, 0L);
}
-static void
-server_state(const int state)
-{ /* It would be nice to implement pointer-off and stop looping... */
- mouse_activated = state;
-}
-
#endif /* USE_EMX_MOUSE */
#if USE_SYSMOUSE
work->y = the_mouse.u.data.y / SP->_sysmouse_char_height;
}
}
-#endif
+#endif /* USE_SYSMOUSE */
static int initialized;
SP->_mouse_xtermcap = "\033[?1000%?%p1%{1}%=%th%el%;";
}
-#if !USE_EMX_MOUSE
static void
enable_xterm_mouse(int enable)
{
+#if USE_EMX_MOUSE
+ mouse_activated = enable;
+#else
putp(tparm(SP->_mouse_xtermcap, enable));
+#endif
+ SP->_mouse_active = enable;
}
-#endif /* !USE_EMX_MOUSE */
-
-static void
-initialize_mousetype(void)
-{
- static const char *xterm_kmous = "\033[M";
- /* Try gpm first, because gpm may be configured to run in xterm */
#if USE_GPM_SUPPORT
+static int
+allow_gpm_mouse(void)
+{
/* GPM does printf's without checking if stdout is a terminal */
if (isatty(fileno(stdout))) {
+ char *env = getenv("TERM");
+ /* GPM checks the beginning of the $TERM variable to decide if
+ * it should pass xterm events through. There is no real advantage
+ * in allowing GPM to do this.
+ */
+ if (env == 0 || strncmp(env, "xterm", 5))
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool
+enable_gpm_mouse(int enable)
+{
+ bool result;
+
+ T((T_CALLED("enable_gpm_mouse(%d)"), enable));
+
+ if (enable && !SP->_mouse_active) {
/* GPM: initialize connection to gpm server */
gpm_connect.eventMask = GPM_DOWN | GPM_UP;
gpm_connect.defaultMask = ~(gpm_connect.eventMask | GPM_HARD);
gpm_connect.minMod = 0;
- gpm_connect.maxMod = ~((1 << KG_SHIFT) | (1 << KG_SHIFTL) | (1 << KG_SHIFTR));
- if (Gpm_Open(&gpm_connect, 0) >= 0) { /* returns the file-descriptor */
+ gpm_connect.maxMod = (unsigned short) (~((1 << KG_SHIFT) |
+ (1 << KG_SHIFTL) |
+ (1 << KG_SHIFTR)));
+ /*
+ * Note: GPM hardcodes \E[?1001s and \E[?1000h during its open.
+ * The former is recognized by wscons (SunOS), and the latter by
+ * xterm. Those will not show up in ncurses' traces.
+ */
+ result = (my_Gpm_Open(&gpm_connect, 0) >= 0);
+ SP->_mouse_active = result;
+ T(("GPM open %s", result ? "succeeded" : "failed"));
+ } else {
+ if (!enable && SP->_mouse_active) {
+ /* GPM: close connection to gpm server */
+ my_Gpm_Close();
+ SP->_mouse_active = FALSE;
+ T(("GPM closed"));
+ }
+ result = FALSE;
+ }
+ returnBool(result);
+}
+#endif /* USE_GPM_SUPPORT */
+
+static void
+initialize_mousetype(void)
+{
+ static const char *xterm_kmous = "\033[M";
+
+ T((T_CALLED("initialize_mousetype()")));
+
+ /* Try gpm first, because gpm may be configured to run in xterm */
+#if USE_GPM_SUPPORT
+ if (allow_gpm_mouse()) {
+ static bool first = TRUE;
+ static bool found = FALSE;
+
+ if (first) {
+ void *obj;
+ first = FALSE;
+
+ if ((obj = dlopen(LIBGPM_SONAME, my_RTLD)) != 0) {
+ if (GET_DLSYM(gpm_fd) == 0 ||
+ GET_DLSYM(Gpm_Open) == 0 ||
+ GET_DLSYM(Gpm_Close) == 0 ||
+ GET_DLSYM(Gpm_GetEvent) == 0) {
+ T(("GPM initialization failed: %s", dlerror()));
+ dlclose(obj);
+ } else {
+ found = TRUE;
+ }
+ }
+ }
+
+ /*
+ * The gpm_fd file-descriptor may be negative (xterm). So we have to
+ * maintain our notion of whether the mouse connection is active
+ * without testing the file-descriptor.
+ */
+ if (found && enable_gpm_mouse(TRUE)) {
SP->_mouse_type = M_GPM;
- SP->_mouse_fd = gpm_fd;
- return;
+ SP->_mouse_fd = *my_gpm_fd;
+ T(("GPM mouse_fd %d", SP->_mouse_fd));
+ returnVoid;
}
}
-#endif
+#endif /* USE_GPM_SUPPORT */
/* OS/2 VIO */
#if USE_EMX_MOUSE
if (pipe(handles) < 0) {
perror("mouse pipe error");
- return;
+ returnVoid;
} else {
int rc;
mouse_server, 0, 0, 8192);
if (rc) {
printf("mouse thread error %d=%#x", rc, rc);
- return;
} else {
SP->_mouse_type = M_XTERM;
- return;
}
+ returnVoid;
}
}
-#endif
+#endif /* USE_EMX_MOUSE */
#if USE_SYSMOUSE
{
if (SP->_sysmouse_char_height <= 0)
SP->_sysmouse_char_height = 16;
SP->_mouse_type = M_SYSMOUSE;
- return;
+ returnVoid;
}
}
}
if (key_mouse != 0) {
if (!strcmp(key_mouse, xterm_kmous)) {
init_xterm_mouse();
- return;
}
} else if (strstr(cur_term->type.term_names, "xterm") != 0) {
(void) _nc_add_to_try(&(SP->_keytry), xterm_kmous, KEY_MOUSE);
init_xterm_mouse();
- return;
}
+ returnVoid;
}
-static void
+static bool
_nc_mouse_init(void)
/* initialize the mouse */
{
int i;
- if (!initialized) {
+ if (!initialized && (SP != 0)) {
initialized = TRUE;
TR(MY_TRACE, ("_nc_mouse_init() called"));
T(("_nc_mouse_init() set mousetype to %d", SP->_mouse_type));
}
+ return initialized;
}
/*
* fifo_push() in lib_getch.c
*/
static bool
-_nc_mouse_event(SCREEN * sp GCC_UNUSED)
+_nc_mouse_event(SCREEN *sp GCC_UNUSED)
{
bool result = FALSE;
/* query server for event, return TRUE if we find one */
Gpm_Event ev;
- if (Gpm_GetEvent(&ev) == 1) {
+ if (my_Gpm_GetEvent(&ev) == 1) {
/* there's only one mouse... */
eventp->id = NORMAL_EVENT;
}
static bool
-_nc_mouse_inline(SCREEN * sp)
+_nc_mouse_inline(SCREEN *sp)
/* mouse report received in the keyboard stream -- parse its info */
{
+ int b;
bool result = FALSE;
TR(MY_TRACE, ("_nc_mouse_inline() called"));
* (End quote) By the time we get here, we've eaten the
* key prefix. FYI, the loop below is necessary because
* mouse click info isn't guaranteed to present as a
- * single clist item. It always does under Linux but often
- * fails to under Solaris.
+ * single clist item.
+ *
+ * Wheel mice may return buttons 4 and 5 when the wheel is turned.
+ * We encode those as button presses.
*/
for (grabbed = 0; grabbed < 3; grabbed += res) {
switch (kbuf[0] & 0x3) {
case 0x0:
- PRESS_POSITION(1);
+ if (kbuf[0] & 64)
+ eventp->bstate = MASK_PRESS(4);
+ else
+ PRESS_POSITION(1);
break;
case 0x1:
- PRESS_POSITION(2);
+#if NCURSES_MOUSE_VERSION == 2
+ if (kbuf[0] & 64)
+ eventp->bstate = MASK_PRESS(5);
+ else
+#endif
+ PRESS_POSITION(2);
break;
case 0x2:
*/
if (prev & (BUTTON_PRESSED | BUTTON_RELEASED)) {
eventp->bstate = BUTTON_RELEASED;
- if (!(prev & BUTTON1_PRESSED))
- eventp->bstate &= ~BUTTON1_RELEASED;
- if (!(prev & BUTTON2_PRESSED))
- eventp->bstate &= ~BUTTON2_RELEASED;
- if (!(prev & BUTTON3_PRESSED))
- eventp->bstate &= ~BUTTON3_RELEASED;
+ for (b = 1; b <= MAX_BUTTONS; ++b) {
+ if (!(prev & MASK_PRESS(b)))
+ eventp->bstate &= ~MASK_RELEASE(b);
+ }
} else {
/*
* XFree86 xterm will return a stream of release-events to
if (!on && !initialized)
return;
- _nc_mouse_init();
+ if (!_nc_mouse_init())
+ return;
if (on) {
keyok(KEY_MOUSE, on);
#endif
TPUTS_TRACE("xterm mouse initialization");
-#if USE_EMX_MOUSE
- server_state(1);
-#else
enable_xterm_mouse(1);
-#endif
break;
#if USE_GPM_SUPPORT
case M_GPM:
- SP->_mouse_fd = gpm_fd;
+ if (enable_gpm_mouse(1)) {
+ SP->_mouse_fd = *my_gpm_fd;
+ T(("GPM mouse_fd %d", SP->_mouse_fd));
+ }
break;
#endif
#if USE_SYSMOUSE
case M_SYSMOUSE:
signal(SIGUSR2, handle_sysmouse);
+ SP->_mouse_active = TRUE;
break;
#endif
case M_NONE:
SP->_mouse_parse = _nc_mouse_parse;
SP->_mouse_resume = _nc_mouse_resume;
SP->_mouse_wrap = _nc_mouse_wrap;
-
} else {
switch (SP->_mouse_type) {
case M_XTERM:
TPUTS_TRACE("xterm mouse deinitialization");
-#if USE_EMX_MOUSE
- server_state(0);
-#else
enable_xterm_mouse(0);
-#endif
break;
#if USE_GPM_SUPPORT
case M_GPM:
+ enable_gpm_mouse(0);
break;
#endif
#if USE_SYSMOUSE
case M_SYSMOUSE:
signal(SIGUSR2, SIG_IGN);
+ SP->_mouse_active = FALSE;
break;
#endif
case M_NONE:
{
MEVENT *ep, *runp, *next, *prev = PREV(eventp);
int n;
+ int b;
bool merge;
TR(MY_TRACE, ("_nc_mouse_parse(%d) called", runcount));
do {
merge = FALSE;
for (ep = runp; (next = NEXT(ep)) != eventp; ep = next) {
+
+#define MASK_CHANGED(x) (!(ep->bstate & MASK_PRESS(x)) \
+ == !(next->bstate & MASK_RELEASE(x)))
+
if (ep->x == next->x && ep->y == next->y
&& (ep->bstate & BUTTON_PRESSED)
- && (!(ep->bstate & BUTTON1_PRESSED)
- == !(next->bstate & BUTTON1_RELEASED))
- && (!(ep->bstate & BUTTON2_PRESSED)
- == !(next->bstate & BUTTON2_RELEASED))
- && (!(ep->bstate & BUTTON3_PRESSED)
- == !(next->bstate & BUTTON3_RELEASED))
+ && MASK_CHANGED(1)
+ && MASK_CHANGED(2)
+ && MASK_CHANGED(3)
+ && MASK_CHANGED(4)
+#if NCURSES_MOUSE_VERSION == 2
+ && MASK_CHANGED(5)
+#endif
) {
- if ((eventmask & BUTTON1_CLICKED)
- && (ep->bstate & BUTTON1_PRESSED)) {
- ep->bstate &= ~BUTTON1_PRESSED;
- ep->bstate |= BUTTON1_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_CLICKED)
- && (ep->bstate & BUTTON2_PRESSED)) {
- ep->bstate &= ~BUTTON2_PRESSED;
- ep->bstate |= BUTTON2_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_CLICKED)
- && (ep->bstate & BUTTON3_PRESSED)) {
- ep->bstate &= ~BUTTON3_PRESSED;
- ep->bstate |= BUTTON3_CLICKED;
- merge = TRUE;
+ for (b = 1; b <= MAX_BUTTONS; ++b) {
+ if ((eventmask & MASK_CLICK(b))
+ && (ep->bstate & MASK_PRESS(b))) {
+ ep->bstate &= ~MASK_PRESS(b);
+ ep->bstate |= MASK_CLICK(b);
+ merge = TRUE;
+ }
}
if (merge)
next->id = INVALID_EVENT;
/* merge click events forward */
if ((ep->bstate & BUTTON_CLICKED)
&& (follower->bstate & BUTTON_CLICKED)) {
- if ((eventmask & BUTTON1_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON1_CLICKED)) {
- follower->bstate &= ~BUTTON1_CLICKED;
- follower->bstate |= BUTTON1_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON2_CLICKED)) {
- follower->bstate &= ~BUTTON2_CLICKED;
- follower->bstate |= BUTTON2_DOUBLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_DOUBLE_CLICKED)
- && (follower->bstate & BUTTON3_CLICKED)) {
- follower->bstate &= ~BUTTON3_CLICKED;
- follower->bstate |= BUTTON3_DOUBLE_CLICKED;
- merge = TRUE;
+ for (b = 1; b <= MAX_BUTTONS; ++b) {
+ if ((eventmask & MASK_DOUBLE_CLICK(b))
+ && (follower->bstate & MASK_CLICK(b))) {
+ follower->bstate &= ~MASK_CLICK(b);
+ follower->bstate |= MASK_DOUBLE_CLICK(b);
+ merge = TRUE;
+ }
}
if (merge)
ep->id = INVALID_EVENT;
}
/* merge double-click events forward */
- if ((ep->bstate &
- (BUTTON1_DOUBLE_CLICKED
- | BUTTON2_DOUBLE_CLICKED
- | BUTTON3_DOUBLE_CLICKED))
+ if ((ep->bstate & BUTTON_DOUBLE_CLICKED)
&& (follower->bstate & BUTTON_CLICKED)) {
- if ((eventmask & BUTTON1_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON1_CLICKED)) {
- follower->bstate &= ~BUTTON1_CLICKED;
- follower->bstate |= BUTTON1_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON2_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON2_CLICKED)) {
- follower->bstate &= ~BUTTON2_CLICKED;
- follower->bstate |= BUTTON2_TRIPLE_CLICKED;
- merge = TRUE;
- }
- if ((eventmask & BUTTON3_TRIPLE_CLICKED)
- && (follower->bstate & BUTTON3_CLICKED)) {
- follower->bstate &= ~BUTTON3_CLICKED;
- follower->bstate |= BUTTON3_TRIPLE_CLICKED;
- merge = TRUE;
+ for (b = 1; b <= MAX_BUTTONS; ++b) {
+ if ((eventmask & MASK_TRIPLE_CLICK(b))
+ && (follower->bstate & MASK_CLICK(b))) {
+ follower->bstate &= ~MASK_CLICK(b);
+ follower->bstate |= MASK_TRIPLE_CLICK(b);
+ merge = TRUE;
+ }
}
if (merge)
ep->id = INVALID_EVENT;
}
static void
-_nc_mouse_wrap(SCREEN * sp GCC_UNUSED)
+_nc_mouse_wrap(SCREEN *sp GCC_UNUSED)
/* release mouse -- called by endwin() before shellout/exit */
{
TR(MY_TRACE, ("_nc_mouse_wrap() called"));
#if USE_GPM_SUPPORT
/* GPM: pass all mouse events to next client */
case M_GPM:
+ if (eventmask)
+ mouse_activate(FALSE);
break;
#endif
#if USE_SYSMOUSE
}
static void
-_nc_mouse_resume(SCREEN * sp GCC_UNUSED)
+_nc_mouse_resume(SCREEN *sp GCC_UNUSED)
/* re-connect to mouse -- called by doupdate() after shellout */
{
TR(MY_TRACE, ("_nc_mouse_resume() called"));
#if USE_GPM_SUPPORT
case M_GPM:
/* GPM: reclaim our event set */
+ if (eventmask)
+ mouse_activate(TRUE);
break;
#endif
{
mmask_t result = 0;
- T((T_CALLED("mousemask(%#lx,%p)"), newmask, oldmask));
+ T((T_CALLED("mousemask(%#lx,%p)"), (unsigned long) newmask, oldmask));
if (oldmask)
*oldmask = eventmask;
returnBits(0);
_nc_mouse_init();
- if (SP->_mouse_type != M_NONE) {
+ if (SP != 0 && SP->_mouse_type != M_NONE) {
eventmask = newmask &
(REPORT_MOUSE_POSITION | BUTTON_ALT | BUTTON_CTRL | BUTTON_SHIFT
| BUTTON_PRESSED
| BUTTON_RELEASED
| BUTTON_CLICKED
- | BUTTON1_DOUBLE_CLICKED | BUTTON1_TRIPLE_CLICKED
- | BUTTON2_DOUBLE_CLICKED | BUTTON2_TRIPLE_CLICKED
- | BUTTON3_DOUBLE_CLICKED | BUTTON3_TRIPLE_CLICKED);
+ | BUTTON_DOUBLE_CLICKED
+ | BUTTON_TRIPLE_CLICKED);
mouse_activate(eventmask != 0);
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2004 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_move.c,v 1.11 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_move.c,v 1.12 2004/12/04 21:50:07 tom Exp $")
NCURSES_EXPORT(int)
wmove(WINDOW *win, int y, int x)
{
T((T_CALLED("wmove(%p,%d,%d)"), win, y, x));
- if (win &&
- x >= 0 && x <= win->_maxx &&
- y >= 0 && y <= win->_maxy) {
+ if (LEGALYX(win, y, x)) {
win->_curx = (NCURSES_SIZE_T) x;
win->_cury = (NCURSES_SIZE_T) y;
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2004 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <term.h> /* clear_screen, cup & friends, cur_term */
#include <tic.h>
-MODULE_ID("$Id: lib_newterm.c,v 1.57 2002/10/20 00:10:56 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_newterm.c,v 1.58 2004/08/14 20:36:39 tom Exp $")
#ifndef ONLCR /* Allows compilation under the QNX 4.2 OS */
#define ONLCR 0
}
NCURSES_EXPORT(SCREEN *)
-newterm(NCURSES_CONST char *name, FILE * ofp, FILE * ifp)
+newterm(NCURSES_CONST char *name, FILE *ofp, FILE *ifp)
{
int errret;
int slk_format = _nc_slk_format;
_nc_signal_handler(TRUE);
+#if USE_SIZECHANGE
+ /*
+ * Pretend we received a SIGWINCH, just in case we're starting up in a
+ * terminal that cannot initialize its size properly (Debian #265631).
+ */
+ SP->_sig_winch = TRUE;
+#endif
+
returnSP(SP);
}
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_newwin.c,v 1.34 2002/08/18 00:12:30 tom Exp $")
+MODULE_ID("$Id: lib_newwin.c,v 1.36 2005/04/09 15:23:04 tom Exp $")
static WINDOW *
remove_window_from_screen(WINDOW *win)
if (num_columns == 0)
num_columns = screen_columns - begx;
- if (num_columns + begx > SP->_columns || num_lines + begy > SP->_lines_avail)
- returnWin(0);
-
if ((win = _nc_makenew(num_lines, num_columns, begy, begx, 0)) == 0)
returnWin(0);
T(("_nc_makenew(%d,%d,%d,%d)", num_lines, num_columns, begy, begx));
+ if (SP == 0)
+ return 0;
+
if (!dimension_limit(num_lines) || !dimension_limit(num_columns))
return 0;
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_pad.c,v 1.38 2002/08/03 23:29:26 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_pad.c,v 1.39 2004/10/23 18:48:09 tom Exp $")
NCURSES_EXPORT(WINDOW *)
newpad(int l, int c)
*/
if (j == pmincol
&& j > 0
- && isnac(ch)) {
+ && isWidecExt(ch)) {
SetChar(ch, L(' '), AttrOf(oline->text[j - 1]));
}
#endif
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_printw.c,v 1.15 2003/02/08 20:50:13 tom Exp $")
+MODULE_ID("$Id: lib_printw.c,v 1.16 2005/06/11 19:30:51 tom Exp $")
NCURSES_EXPORT(int)
printw(const char *fmt,...)
char *buf;
int code = ERR;
- T((T_CALLED("vwprintw(%p,%s,%p)"),
- win, _nc_visbuf(fmt), argp));
+ T((T_CALLED("vwprintw(%p,%s,va_list)"), win, _nc_visbuf(fmt)));
if ((buf = _nc_printf_string(fmt, argp)) != 0) {
code = waddstr(win, buf);
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_refresh.c,v 1.32 2002/05/26 00:17:04 tom Exp $")
+MODULE_ID("$Id: lib_refresh.c,v 1.33 2005/04/09 15:20:58 tom Exp $")
NCURSES_EXPORT(int)
wrefresh(WINDOW *win)
T((T_CALLED("wrefresh(%p)"), win));
- if (win == curscr) {
+ if (win == 0) {
+ code = ERR;
+ } else if (win == curscr) {
curscr->_clear = TRUE;
code = doupdate();
} else if ((code = wnoutrefresh(win)) == OK) {
/****************************************************************************
- * Copyright (c) 1998,2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_scroll.c,v 1.24 2003/07/26 23:25:26 tom Exp $")
+MODULE_ID("$Id: lib_scroll.c,v 1.25 2004/12/11 18:28:51 tom Exp $")
NCURSES_EXPORT(void)
-_nc_scroll_window(WINDOW *win, int const n, NCURSES_SIZE_T const top,
- NCURSES_SIZE_T const bottom, NCURSES_CH_T blank)
+_nc_scroll_window(WINDOW *win,
+ int const n,
+ NCURSES_SIZE_T const top,
+ NCURSES_SIZE_T const bottom,
+ NCURSES_CH_T blank)
{
int limit;
int line;
}
}
touchline(win, top, bottom - top + 1);
+
+ if_WIDEC({
+ if (WINDOW_EXT(win, addch_used) != 0) {
+ int next = WINDOW_EXT(win, addch_y) + n;
+ if (next < 0 || next > win->_maxy) {
+ TR(TRACE_VIRTPUT,
+ ("Alert discarded multibyte on scroll"));
+ WINDOW_EXT(win, addch_y) = 0;
+ } else {
+ TR(TRACE_VIRTPUT, ("scrolled working position to %d,%d",
+ WINDOW_EXT(win, addch_y),
+ WINDOW_EXT(win, addch_x)));
+ WINDOW_EXT(win, addch_y) = next;
+ }
+ }
+ })
}
NCURSES_EXPORT(int)
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-2003 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <term.h> /* cur_term */
#include <tic.h>
-MODULE_ID("$Id: lib_set_term.c,v 1.81 2003/11/15 23:57:01 tom Exp $")
+MODULE_ID("$Id: lib_set_term.c,v 1.85 2005/01/22 17:36:01 tom Exp $")
NCURSES_EXPORT(SCREEN *)
-set_term(SCREEN * screenp)
+set_term(SCREEN *screenp)
{
SCREEN *oldSP;
* Free the storage associated with the given SCREEN sp.
*/
NCURSES_EXPORT(void)
-delscreen(SCREEN * sp)
+delscreen(SCREEN *sp)
{
SCREEN **scan = &_nc_screen_chain;
int i;
_nc_free_keytry(sp->_key_ok);
sp->_key_ok = 0;
+ FreeIfNeeded(sp->_current_attr);
+
FreeIfNeeded(sp->_color_table);
FreeIfNeeded(sp->_color_pairs);
#define N_RIPS SIZEOF(SP->_rippedoff)
static bool
-no_mouse_event(SCREEN * sp GCC_UNUSED)
+no_mouse_event(SCREEN *sp GCC_UNUSED)
{
return FALSE;
}
static bool
-no_mouse_inline(SCREEN * sp GCC_UNUSED)
+no_mouse_inline(SCREEN *sp GCC_UNUSED)
{
return FALSE;
}
}
static void
-no_mouse_resume(SCREEN * sp GCC_UNUSED)
+no_mouse_resume(SCREEN *sp GCC_UNUSED)
{
}
static void
-no_mouse_wrap(SCREEN * sp GCC_UNUSED)
+no_mouse_wrap(SCREEN *sp GCC_UNUSED)
{
}
if (!_nc_alloc_screen())
returnCode(ERR);
+ T(("created SP %p", SP));
SP->_next_screen = _nc_screen_chain;
_nc_screen_chain = SP;
+ if ((SP->_current_attr = typeCalloc(NCURSES_CH_T, 1)) == 0)
+ returnCode(ERR);
+
#ifdef __DJGPP__
T(("setting output mode to binary"));
fflush(output);
SP->_screen_acs_fix = (_nc_unicode_locale() && _nc_locale_breaks_acs());
{
char *env = _nc_get_locale();
- SP->_posix_locale = ((env == 0)
- || !strcmp(env, "C")
- || !strcmp(env, "POSIX"));
+ SP->_legacy_coding = ((env == 0)
+ || !strcmp(env, "C")
+ || !strcmp(env, "POSIX"));
}
#endif
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * Authors: *
+ * Gerhard Fuernkranz 1993 (original) *
+ * Zeyd M. Ben-Halim 1992,1995 (sic) *
+ * Eric S. Raymond *
+ * Juergen Pfeifer 1996-on *
+ * Thomas E. Dickey *
****************************************************************************/
/*
#include <ctype.h>
#include <term.h> /* num_labels, label_*, plab_norm */
-MODULE_ID("$Id: lib_slk.c,v 1.28 2003/05/24 21:10:28 tom Exp $")
+MODULE_ID("$Id: lib_slk.c,v 1.30 2005/01/08 21:56:36 tom Exp $")
/*
* We'd like to move these into the screen context structure, but cannot,
* work.
*/
if ((no_color_video & 1) == 0)
- SP->_slk->attr = A_STANDOUT;
+ SetAttr(SP->_slk->attr, A_STANDOUT);
else
- SP->_slk->attr = A_REVERSE;
+ SetAttr(SP->_slk->attr, A_REVERSE);
SP->_slk->maxlab = ((num_labels > 0)
? num_labels
max_length = SP->_slk->maxlen;
for (i = 0; i < SP->_slk->labcnt; i++) {
+ size_t used = max_length + 1;
- if ((SP->_slk->ent[i].ent_text = (char *)_nc_doalloc(0, max_length + 1)) == 0)
+ if ((SP->_slk->ent[i].ent_text = (char *) _nc_doalloc(0, used)) == 0)
returnCode(slk_failed());
- memset(SP->_slk->ent[i].ent_text, 0, max_length + 1);
+ memset(SP->_slk->ent[i].ent_text, 0, used);
- if ((SP->_slk->ent[i].form_text = (char *)_nc_doalloc(0, max_length + 1)) == 0)
+ if ((SP->_slk->ent[i].form_text = (char *) _nc_doalloc(0, used)) == 0)
returnCode(slk_failed());
- memset(SP->_slk->ent[i].form_text, 0, max_length + 1);
+ memset(SP->_slk->ent[i].form_text, 0, used);
memset(SP->_slk->ent[i].form_text, ' ', max_length);
SP->_slk->ent[i].visible = (i < SP->_slk->maxlab);
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
/****************************************************************************
* Author: Juergen Pfeifer, 1998 *
+ * and: Thomas E. Dickey 2005 *
****************************************************************************/
/*
* lib_slkatr_set.c
* Soft key routines.
- * Set the labels attributes
+ * Set the label's attributes
*/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_slkatr_set.c,v 1.7 2003/10/25 15:27:03 tom Exp $")
+MODULE_ID("$Id: lib_slkatr_set.c,v 1.9 2005/01/08 22:59:37 tom Exp $")
NCURSES_EXPORT(int)
-slk_attr_set
-(const attr_t attr, short color_pair_number, void *opts)
+slk_attr_set(const attr_t attr, short color_pair_number, void *opts)
{
T((T_CALLED("slk_attr_set(%s,%d)"), _traceattr(attr), color_pair_number));
if (SP != 0 && SP->_slk != 0 && !opts &&
color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) {
- SP->_slk->attr = attr;
- toggle_attr_on(SP->_slk->attr, COLOR_PAIR(color_pair_number));
+ TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
+ SetAttr(SP->_slk->attr, attr);
+ if (color_pair_number > 0) {
+ SetPair(SP->_slk->attr, color_pair_number);
+ }
+ TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
returnCode(OK);
} else
returnCode(ERR);
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * Author: Juergen Pfeifer, 1997 *
+ * and: Thomas E. Dickey 2005 *
****************************************************************************/
/*
*/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_slkatrof.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkatrof.c,v 1.8 2005/01/08 23:01:32 tom Exp $")
NCURSES_EXPORT(int)
slk_attroff(const chtype attr)
T((T_CALLED("slk_attroff(%s)"), _traceattr(attr)));
if (SP != 0 && SP->_slk != 0) {
- toggle_attr_off(SP->_slk->attr, attr);
+ TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
+ RemAttr(SP->_slk->attr, attr);
+ if ((attr & A_COLOR) != 0) {
+ SetPair(SP->_slk->attr, 0);
+ }
+ TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
returnCode(OK);
} else
returnCode(ERR);
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * Author: Juergen Pfeifer, 1997 *
+ * and: Thomas E. Dickey 2005 *
****************************************************************************/
/*
*/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_slkatron.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkatron.c,v 1.8 2005/01/08 23:02:01 tom Exp $")
NCURSES_EXPORT(int)
slk_attron(const chtype attr)
T((T_CALLED("slk_attron(%s)"), _traceattr(attr)));
if (SP != 0 && SP->_slk != 0) {
- toggle_attr_on(SP->_slk->attr, attr);
+ TR(TRACE_ATTRS, ("... current %s", _tracech_t(CHREF(SP->_slk->attr))));
+ AddAttr(SP->_slk->attr, attr);
+ if ((attr & A_COLOR) != 0) {
+ SetPair(SP->_slk->attr, PAIR_NUMBER(attr));
+ }
+ TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
returnCode(OK);
} else
returnCode(ERR);
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * Author: Juergen Pfeifer, 1997 *
+ * and: Thomas E. Dickey 2005 *
****************************************************************************/
/*
*/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_slkatrset.c,v 1.6 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkatrset.c,v 1.7 2005/01/08 21:46:47 tom Exp $")
NCURSES_EXPORT(int)
slk_attrset(const chtype attr)
T((T_CALLED("slk_attrset(%s)"), _traceattr(attr)));
if (SP != 0 && SP->_slk != 0) {
- SP->_slk->attr = attr;
+ SetAttr(SP->_slk->attr, attr);
returnCode(OK);
} else
returnCode(ERR);
****************************************************************************/
/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * Author: Juergen Pfeifer, 1997 *
+ * and: Thomas E. Dickey 2005 *
****************************************************************************/
/*
*/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_slkattr.c,v 1.5 2000/12/10 02:43:27 tom Exp $")
+MODULE_ID("$Id: lib_slkattr.c,v 1.6 2005/01/08 21:44:28 tom Exp $")
NCURSES_EXPORT(attr_t)
slk_attr(void)
T((T_CALLED("slk_attr()")));
if (SP != 0 && SP->_slk != 0) {
- returnAttr(SP->_slk->attr);
+ attr_t result = AttrOf(SP->_slk->attr) & ALL_BUT_COLOR;
+ int pair = GetPair(SP->_slk->attr);
+
+ result |= COLOR_PAIR(pair);
+ returnAttr(result);
} else
returnAttr(0);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
/****************************************************************************
* Author: Juergen Pfeifer, 1998 *
+ * and: Thomas E. Dickey 2005 *
****************************************************************************/
/*
* lib_slkcolor.c
+ * Soft key routines.
+ * Set the label's color
*/
#include <curses.priv.h>
-MODULE_ID("$Id: lib_slkcolor.c,v 1.9 2003/10/25 15:27:03 tom Exp $")
+MODULE_ID("$Id: lib_slkcolor.c,v 1.12 2005/01/28 21:11:53 tom Exp $")
NCURSES_EXPORT(int)
slk_color(short color_pair_number)
if (SP != 0 && SP->_slk != 0 &&
color_pair_number >= 0 && color_pair_number < COLOR_PAIRS) {
- T(("... current %ld", (long) PAIR_NUMBER(SP->_slk->attr)));
- toggle_attr_on(SP->_slk->attr, COLOR_PAIR(color_pair_number));
+ TR(TRACE_ATTRS, ("... current is %s", _tracech_t(CHREF(SP->_slk->attr))));
+ SetPair(SP->_slk->attr, color_pair_number);
+ TR(TRACE_ATTRS, ("new attribute is %s", _tracech_t(CHREF(SP->_slk->attr))));
returnCode(OK);
} else
returnCode(ERR);
/****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Juergen Pfeifer 1996-on *
+ * and: Thomas E. Dickey *
****************************************************************************/
/*
#include <curses.priv.h>
#include <term.h> /* num_labels, label_*, plab_norm */
-MODULE_ID("$Id: lib_slkrefr.c,v 1.11 2003/03/29 22:53:48 tom Exp $")
+MODULE_ID("$Id: lib_slkrefr.c,v 1.13 2005/01/08 21:46:31 tom Exp $")
/*
* Write the soft labels to the soft-key window.
}
} else {
wmove(slk->win, SLK_LINES(fmt) - 1, slk->ent[i].ent_x);
- if (SP && SP->_slk)
- wattrset(slk->win, SP->_slk->attr);
- waddnstr(slk->win, slk->ent[i].form_text,
- MAX_SKEY_LEN(fmt));
+ if (SP && SP->_slk) {
+ wattrset(slk->win, AttrOf(SP->_slk->attr));
+ }
+ waddstr(slk->win, slk->ent[i].form_text);
/* if we simulate SLK's, it's looking much more
natural to use the current ATTRIBUTE also
for the label window */
/****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
- * and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * Author: Juergen Pfeifer *
+ * and: Thomas E. Dickey *
****************************************************************************/
/*
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_slkset.c,v 1.10 2003/04/12 21:32:16 tom Exp $")
+#if USE_WIDEC_SUPPORT
+#include <wctype.h>
+#endif
+
+MODULE_ID("$Id: lib_slkset.c,v 1.15 2005/04/16 17:47:34 tom Exp $")
NCURSES_EXPORT(int)
slk_set(int i, const char *astr, int format)
{
SLK *slk = SP->_slk;
- size_t len;
int offset;
+ int numchrs;
+ int numcols;
+ int limit;
const char *str = astr;
const char *p;
returnCode(ERR);
if (str == NULL)
str = "";
+ --i; /* Adjust numbering of labels */
+ limit = MAX_SKEY_LEN(SP->slk_format);
while (isspace(UChar(*str)))
str++; /* skip over leading spaces */
p = str;
+
+#if USE_WIDEC_SUPPORT
+ numcols = 0;
+ while (*p != 0) {
+ mbstate_t state;
+ wchar_t wc;
+ size_t need;
+
+ init_mb(state);
+ need = mbrtowc(0, p, strlen(p), &state);
+ if (need == (size_t) -1)
+ break;
+ mbrtowc(&wc, p, need, &state);
+ if (!iswprint((wint_t) wc))
+ break;
+ if (wcwidth(wc) + numcols > limit)
+ break;
+ numcols += wcwidth(wc);
+ p += need;
+ }
+ numchrs = (p - str);
+#else
while (isprint(UChar(*p)))
p++; /* The first non-print stops */
- --i; /* Adjust numbering of labels */
+ numcols = (p - str);
+ if (numcols > limit)
+ numcols = limit;
+ numchrs = numcols;
+#endif
- len = (size_t) (p - str);
- if (len > (size_t) slk->maxlen)
- len = slk->maxlen;
- if (len == 0)
- slk->ent[i].ent_text[0] = 0;
- else
- strncpy(slk->ent[i].ent_text, str, len)[len] = 0;
- memset(slk->ent[i].form_text, ' ', (unsigned) slk->maxlen);
- slk->ent[i].ent_text[slk->maxlen] = 0;
+ FreeIfNeeded(slk->ent[i].ent_text);
+ if ((slk->ent[i].ent_text = strdup(str)) == 0)
+ returnCode(ERR);
+ slk->ent[i].ent_text[numchrs] = '\0';
+
+ if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text,
+ (unsigned) (limit +
+ numchrs + 1))
+ ) == 0)
+ returnCode(ERR);
switch (format) {
default:
offset = 0;
break;
case 1: /* centered */
- offset = (slk->maxlen - len) / 2;
+ offset = (limit - numcols) / 2;
break;
case 2: /* right-justified */
- offset = slk->maxlen - len;
+ offset = limit - numcols;
break;
}
+ if (offset <= 0)
+ offset = 0;
+ else
+ memset(slk->ent[i].form_text, ' ', (unsigned) offset);
+
memcpy(slk->ent[i].form_text + offset,
slk->ent[i].ent_text,
- len);
- slk->ent[i].form_text[slk->maxlen] = 0;
+ (unsigned) numchrs);
+
+ if (offset < limit) {
+ memset(slk->ent[i].form_text + offset + numchrs,
+ ' ',
+ (unsigned) (limit - (offset + numcols)));
+ }
+
+ slk->ent[i].form_text[numchrs - numcols + limit] = 0;
slk->ent[i].dirty = TRUE;
returnCode(OK);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_wattroff.c,v 1.7 2002/07/20 17:07:16 tom Exp $")
+MODULE_ID("$Id: lib_wattroff.c,v 1.8 2005/01/29 21:20:03 tom Exp $")
NCURSES_EXPORT(int)
wattr_off(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
{
T((T_CALLED("wattr_off(%p,%s)"), win, _traceattr(at)));
if (win) {
- T(("... current %s", _traceattr(win->_attrs)));
+ T(("... current %s (%d)", _traceattr(win->_attrs), GET_WINDOW_PAIR(win)));
+ if_EXT_COLORS({
+ if (at & A_COLOR)
+ win->_color = 0;
+ });
toggle_attr_off(win->_attrs, at);
returnCode(OK);
} else
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_wattron.c,v 1.7 2002/07/20 17:07:16 tom Exp $")
+MODULE_ID("$Id: lib_wattron.c,v 1.8 2005/01/29 21:23:08 tom Exp $")
NCURSES_EXPORT(int)
wattr_on(WINDOW *win, attr_t at, void *opts GCC_UNUSED)
{
T((T_CALLED("wattr_on(%p,%s)"), win, _traceattr(at)));
- if (win) {
- T(("... current %s", _traceattr(win->_attrs)));
+ if (win != 0) {
+ T(("... current %s (%d)", _traceattr(win->_attrs), GET_WINDOW_PAIR(win)));
+ if_EXT_COLORS({
+ if (at & A_COLOR)
+ win->_color = PAIR_NUMBER(at);
+ });
toggle_attr_on(win->_attrs, at);
returnCode(OK);
} else
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
#include <term.h>
-MODULE_ID("$Id: resizeterm.c,v 1.15 2002/12/28 01:21:34 tom Exp $")
+MODULE_ID("$Id: resizeterm.c,v 1.17 2004/07/31 20:24:38 tom Exp $")
#define stolen_lines (screen_lines - SP->_lines_avail)
static int current_lines;
static int current_cols;
+#ifdef TRACE
+static void
+show_window_sizes(const char *name)
+{
+ WINDOWLIST *wp;
+
+ _tracef("%s resizing: %2d x %2d (%2d x %2d)", name, LINES, COLS,
+ screen_lines, screen_columns);
+ for (wp = _nc_windows; wp != 0; wp = wp->next) {
+ _tracef(" window %p is %2d x %2d at %2d,%2d",
+ &(wp->win),
+ wp->win._maxy + 1,
+ wp->win._maxx + 1,
+ wp->win._begy,
+ wp->win._begx);
+ }
+}
+#endif
+
NCURSES_EXPORT(bool)
is_term_resized(int ToLines, int ToCols)
{
- return (ToLines != screen_lines
- || ToCols != screen_columns);
+ T((T_CALLED("is_term_resized(%d, %d)"), ToLines, ToCols));
+ returnCode(ToLines > 0
+ && ToCols > 0
+ && (ToLines != screen_lines
+ || ToCols != screen_columns));
}
/*
if (!(win->_flags & _ISPAD)) {
if (child_depth(win) == depth) {
+ found = TRUE;
if (adjust_window(win, ToLines, ToCols, stolen) != OK)
returnCode(ERR);
}
if (!(win->_flags & _ISPAD)) {
if (parent_depth(win) == depth) {
+ found = TRUE;
if (adjust_window(win, ToLines, ToCols, stolen) != OK)
returnCode(ERR);
}
int myLines = current_lines = screen_lines;
int myCols = current_cols = screen_columns;
+#ifdef TRACE
+ if (_nc_tracing & TRACE_UPDATE)
+ show_window_sizes("before");
+#endif
if (ToLines > screen_lines) {
increase_size(myLines = ToLines, myCols, was_stolen);
current_lines = myLines;
if (SP->newhash) {
FreeAndNull(SP->newhash);
}
+#ifdef TRACE
+ if (_nc_tracing & TRACE_UPDATE) {
+ LINES = ToLines - was_stolen;
+ COLS = ToCols;
+ show_window_sizes("after");
+ }
+#endif
}
/*
/****************************************************************************
- * Copyright (c) 1998-2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: tries.c,v 1.19 2003/05/17 23:11:24 tom Exp $")
+MODULE_ID("$Id: tries.c,v 1.20 2005/04/30 19:14:18 tom Exp $")
/*
* Expand a keycode into the string that it corresponds to, returning null if
if ((result[len] = ptr->ch) == 0)
*((unsigned char *) (result + len)) = 128;
#ifdef TRACE
- if (len == 0)
+ if (len == 0 && _nc_tracing != 0)
_tracef("expand_key %s %s", _tracechar(code), _nc_visbuf(result));
#endif
}
/****************************************************************************
- * Copyright (c) 1999-2000,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: version.c,v 1.5 2004/01/10 21:18:17 tom Exp $")
+MODULE_ID("$Id: version.c,v 1.6 2005/01/02 01:23:54 tom Exp $")
NCURSES_EXPORT(const char *)
curses_version(void)
{
T((T_CALLED("curses_version()")));
- returnPtr("ncurses " NCURSES_VERSION_STRING);
+ returnCPtr("ncurses " NCURSES_VERSION_STRING);
}
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
#if !HAVE_VSSCANF
-MODULE_ID("$Id: vsscanf.c,v 1.17 2003/05/24 21:10:28 tom Exp $")
+MODULE_ID("$Id: vsscanf.c,v 1.18 2004/04/03 20:27:02 tom Exp $")
#if !(HAVE_VFSCANF || HAVE__DOSCAN)
chunk = ctest;
} else if ((otest = other_ch(format[n])) != oUnknown) {
other = otest;
- } else if (isalpha(format[n])) {
+ } else if (isalpha(UChar(format[n]))) {
state = sFinal;
chunk = cError;
}
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-2002 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
- * $Id: curses.priv.h,v 1.255 2004/02/01 01:05:58 Stanislav.Ievlev Exp $
+ * $Id: curses.priv.h,v 1.286 2005/09/10 22:34:50 tom Exp $
*
* curses.priv.h
*
# include <sys/param.h>
#endif
+#include <assert.h>
+#include <stdio.h>
+
+#include <errno.h>
+
#ifndef PATH_MAX
# if defined(_POSIX_PATH_MAX)
# define PATH_MAX _POSIX_PATH_MAX
# endif
#endif
-#include <assert.h>
-#include <stdio.h>
-
-#include <errno.h>
-
#if DECL_ERRNO
extern int errno;
#endif
unsigned short value; /* code of string so far. 0 if none. */
};
-/*
- * Definitions for color pairs
- */
-#define C_SHIFT 8 /* we need more bits than there are colors */
-#define C_MASK ((1 << C_SHIFT) - 1)
-
-#define PAIR_OF(fg, bg) ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
-
/*
* Common/troublesome character definitions
*/
#include <curses.h> /* we'll use -Ipath directive to get the right one! */
#include <term.h>
+#include <term_entry.h>
+
+#if NCURSES_EXT_COLORS && USE_WIDEC_SUPPORT
+#define if_EXT_COLORS(stmt) stmt
+#define NetPair(value,p) (value).ext_color = (p), \
+ AttrOf(value) &= ALL_BUT_COLOR, \
+ AttrOf(value) |= (A_COLOR & COLOR_PAIR((p > 255) ? 255 : p))
+#define SetPair(value,p) (value).ext_color = (p)
+#define GetPair(value) (value).ext_color
+#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR)
+#define GET_WINDOW_PAIR(w) (w)->_color
+#define SET_WINDOW_PAIR(w,p) (w)->_color = (p)
+#define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b) && GetPair(a) == GetPair(b))
+#define VIDATTR(attr, pair) vid_attr(attr, pair, 0)
+#else
+#define if_EXT_COLORS(stmt) /* nothing */
+#define SetPair(value,p) RemAttr(value, A_COLOR), \
+ SetAttr(value, AttrOf(value) | (A_COLOR & COLOR_PAIR(p)))
+#define GetPair(value) PAIR_NUMBER(AttrOf(value))
+#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR)
+#define GET_WINDOW_PAIR(w) PAIR_NUMBER((w)->_attrs)
+#define SET_WINDOW_PAIR(w,p) (w)->_attrs &= ALL_BUT_COLOR, \
+ (w)->_attrs |= (A_COLOR & COLOR_PAIR(p))
+#define SameAttrOf(a,b) (AttrOf(a) == AttrOf(b))
+#define VIDATTR(attr, pair) vidattr(attr)
+#endif
+
+#define SCREEN_ATTRS(s) (*((s)->_current_attr))
+#define GET_SCREEN_PAIR(s) GetPair(SCREEN_ATTRS(s))
+#define SET_SCREEN_PAIR(s,p) SetPair(SCREEN_ATTRS(s), p)
+
+/*
+ * Definitions for color pairs
+ */
+typedef unsigned colorpair_t; /* type big enough to store PAIR_OF() */
+#define C_SHIFT 9 /* we need more bits than there are colors */
+#define C_MASK ((1 << C_SHIFT) - 1)
+#define PAIR_OF(fg, bg) ((((fg) & C_MASK) << C_SHIFT) | ((bg) & C_MASK))
+#define isDefaultColor(c) ((c) >= COLOR_DEFAULT || (c) < 0)
+#define COLOR_DEFAULT C_MASK
+
+#ifdef USE_TERMLIB
+
+#undef NCURSES_CH_T /* this is not a termlib feature */
+#define NCURSES_CH_T void /* ...but we need a pointer in SCREEN */
+
+#endif /* USE_TERMLIB */
+
+#ifndef USE_TERMLIB
struct ldat
{
NCURSES_CH_T *text; /* text of the line */
NCURSES_SIZE_T lastchar; /* last changed character in the line */
NCURSES_SIZE_T oldindex; /* index of the line at last update */
};
+#endif /* USE_TERMLIB */
typedef enum {
M_XTERM = -1 /* use xterm's mouse tracking? */
} MouseType;
/*
- * Structure for soft labels.
+ * Structures for scrolling.
+ */
+
+typedef struct {
+ unsigned long hashval;
+ int oldcount, newcount;
+ int oldindex, newindex;
+} HASHMAP;
+
+/*
+ * Structures for soft labels.
*/
+struct _SLK;
+
+#ifndef USE_TERMLIB
+
typedef struct
{
char *ent_text; /* text for the label */
char visible; /* field is visible */
} slk_ent;
-typedef struct {
+typedef struct _SLK {
char dirty; /* all labels have changed */
char hidden; /* soft labels are hidden */
WINDOW *win;
short maxlab; /* number of available labels */
short labcnt; /* number of allocated labels */
short maxlen; /* length of labels */
- chtype attr; /* soft label attribute */
+ NCURSES_CH_T attr; /* soft label attribute */
} SLK;
-typedef struct {
- unsigned long hashval;
- int oldcount, newcount;
- int oldindex, newindex;
-} HASHMAP;
+#endif /* USE_TERMLIB */
typedef struct {
int line; /* lines to take, < 0 => from bottom*/
WINDOW *w; /* maybe we need this for cleanup */
} ripoff_t;
+/*
+ * The SCREEN structure.
+ */
+
struct screen {
int _ifd; /* input file ptr for screen */
FILE *_ofp; /* output file ptr for screen */
bool _keypad_on; /* keypad mode is currently on */
bool _called_wgetch; /* check for recursion in wgetch() */
- int _fifo[FIFO_SIZE]; /* input push-back buffer */
+ int _fifo[FIFO_SIZE]; /* input push-back buffer */
short _fifohead, /* head of fifo queue */
_fifotail, /* tail of fifo queue */
_fifopeek, /* where to peek for next char */
_fifohold; /* set if breakout marked */
int _endwin; /* are we out of window mode? */
- attr_t _current_attr; /* terminal attribute current set */
+ NCURSES_CH_T *_current_attr; /* holds current attributes set */
int _coloron; /* is color enabled? */
int _color_defs; /* are colors modified */
int _cursor; /* visibility of the cursor */
/* > 1 if in halfdelay mode */
int _echo; /* True if echo on */
int _use_meta; /* use the meta key? */
- SLK *_slk; /* ptr to soft key struct / NULL */
+ struct _SLK *_slk; /* ptr to soft key struct / NULL */
int slk_format; /* selected format for this screen */
/* cursor movement costs; units are 10ths of milliseconds */
#if NCURSES_NO_PADDING
/* used in lib_color.c */
color_t *_color_table; /* screen's color palette */
int _color_count; /* count of colors in palette */
- unsigned short *_color_pairs; /* screen's color pair list */
+ colorpair_t *_color_pairs; /* screen's color pair list */
int _pair_count; /* count of color pairs */
#if NCURSES_EXT_FUNCS
bool _default_color; /* use default colors */
void (*_mouse_resume)(SCREEN *);
void (*_mouse_wrap) (SCREEN *);
int _mouse_fd; /* file-descriptor, if any */
+ bool _mouse_active; /* true if initialized */
NCURSES_CONST char *_mouse_xtermcap; /* string to enable/disable mouse */
#if USE_SYSMOUSE
MEVENT _sysmouse_fifo[FIFO_SIZE];
/* hashes for old and new lines */
unsigned long *oldhash, *newhash;
- HASHMAP *hashtab;
+ HASHMAP *hashtab;
int hashtab_len;
bool _cleanup; /* cleanup after int/quit signal */
* UTF-8, but do not permit ACS at the same time (see tty_update.c).
*/
#if USE_WIDEC_SUPPORT
- bool _posix_locale;
+ bool _legacy_coding;
bool _screen_acs_fix;
#endif
+ bool _screen_acs_map[ACS_LEN];
};
extern NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain;
WINDOWLIST *next;
#ifdef _XOPEN_SOURCE_EXTENDED
char addch_work[(MB_LEN_MAX * 9) + 1];
- int addch_used;
- int addch_x;
- int addch_y;
+ unsigned addch_used; /* number of bytes in addch_work[] */
+ int addch_x; /* x-position for addch_work[] */
+ int addch_y; /* y-position for addch_work[] */
#endif
};
#define WINDOW_EXT(win,field) (((WINDOWLIST *)(win))->field)
+/* usually in <limits.h> */
+#ifndef UCHAR_MAX
+#define UCHAR_MAX 255
+#endif
+
/* The terminfo source is assumed to be 7-bit ASCII */
#define is7bits(c) ((unsigned)(c) < 128)
+/* Checks for isprint() should be done on 8-bit characters (non-wide) */
+#define is8bits(c) ((unsigned)(c) <= UCHAR_MAX)
+
#ifndef min
#define min(a,b) ((a) > (b) ? (b) : (a))
#endif
#endif
#if USE_WIDEC_SUPPORT /* { */
+#define isEILSEQ(status) ((status == (size_t)-1) && (errno == EILSEQ))
+
+#define init_mb(state) memset(&state, 0, sizeof(state))
+
+#if NCURSES_EXT_COLORS
+#define NulColor , 0
+#else
+#define NulColor /* nothing */
+#endif
+
#define NulChar 0,0,0,0 /* FIXME: see CCHARW_MAX */
#define CharOf(c) ((c).chars[0])
#define AttrOf(c) ((c).attr)
-#define AddAttr(c,a) (c).attr |= a
-#define RemAttr(c,a) (c).attr &= ~(a)
-#define SetAttr(c,a) (c).attr = a
-#define NewChar(ch) { ChAttrOf(ch), { ChCharOf(ch), NulChar } }
-#define NewChar2(c,a) { a, { c, NulChar } }
+#define AddAttr(c,a) AttrOf(c) |= a
+#define RemAttr(c,a) AttrOf(c) &= ~(a)
+#define SetAttr(c,a) AttrOf(c) = a
+#define NewChar(ch) { ChAttrOf(ch), { ChCharOf(ch), NulChar } NulColor }
+#define NewChar2(c,a) { a, { c, NulChar } NulColor }
#define CharEq(a,b) (!memcmp(&a, &b, sizeof(a)))
-#define SetChar(ch,c,a) do { \
+#define SetChar(ch,c,a) do { \
NCURSES_CH_T *_cp = &ch; \
- memset(_cp,0,sizeof(ch)); _cp->chars[0] = c; _cp->attr = a; \
+ memset(_cp, 0, sizeof(ch)); \
+ _cp->chars[0] = c; \
+ _cp->attr = a; \
+ if_EXT_COLORS(SetPair(ch, PAIR_NUMBER(a))); \
} while (0)
#define CHREF(wch) (&wch)
#define CHDEREF(wch) (*wch)
#define CARG_CH_T const NCURSES_CH_T *
#define PUTC_DATA char PUTC_buf[MB_LEN_MAX]; int PUTC_i, PUTC_n; \
mbstate_t PUT_st; wchar_t PUTC_ch
-#define PUTC_INIT memset (&PUT_st, '\0', sizeof (PUT_st)); \
+#define PUTC_INIT init_mb (PUT_st); \
PUTC_i = 0
-#define PUTC(ch,b) do { if(!isnac(ch)) { \
+#define PUTC(ch,b) do { if(!isWidecExt(ch)) { \
if (Charable(ch)) { \
fputc(CharOf(ch), b); \
TRACE_OUTCHARS(1); \
TRACE_OUTCHARS(PUTC_i); \
} } } while (0)
-#define BLANK { WA_NORMAL, ' ' }
+#define BLANK { WA_NORMAL, {' '} NulColor }
+#define ZEROS { WA_NORMAL, {'\0'} NulColor }
#define ISBLANK(ch) ((ch).chars[0] == L' ' && (ch).chars[1] == L'\0')
-#define WA_NAC 1
-#define isnac(ch) (AttrOf(ch) & WA_NAC)
+ /*
+ * Wide characters cannot be represented in the A_CHARTEXT mask of
+ * attr_t's but an application might have set a narrow character there.
+ * But even in that case, it would only be a printable character, or
+ * zero. Otherwise we can use those bits to tell if a cell is the
+ * first or extension part of a wide character.
+ */
+#define WidecExt(ch) (AttrOf(ch) & A_CHARTEXT)
+#define isWidecBase(ch) (WidecExt(ch) == 1)
+#define isWidecExt(ch) (WidecExt(ch) > 1 && WidecExt(ch) < 32)
+#define SetWidecExt(dst, ext) AttrOf(dst) &= ~A_CHARTEXT, \
+ AttrOf(dst) |= (ext + 1)
+
#define if_WIDEC(code) code
-#define Charable(ch) ((SP != 0 && SP->_posix_locale) \
- || (!isnac(ch) && \
+#define Charable(ch) ((SP != 0 && SP->_legacy_coding) \
+ || (AttrOf(ch) & A_ALTCHARSET) \
+ || (!isWidecExt(ch) && \
(ch).chars[1] == L'\0' && \
_nc_is_charable(CharOf(ch))))
#define PUTC(a,b) do { data = CharOf(ch); putc(data,b); } while (0)
#define BLANK (' '|A_NORMAL)
+#define ZEROS ('\0'|A_NORMAL)
#define ISBLANK(ch) (CharOf(ch) == ' ')
-#define isnac(ch) (0)
+#define isWidecExt(ch) (0)
#define if_WIDEC(code) /* nothing */
#define L(ch) ch
#define CHANGED -1
+#define LEGALYX(w, y, x) \
+ ((w) != 0 && \
+ ((x) >= 0 && (x) <= (w)->_maxx && \
+ (y) >= 0 && (y) <= (w)->_maxy))
+
#define CHANGED_CELL(line,col) \
if (line->firstchar == _NOCHANGE) \
line->firstchar = line->lastchar = col; \
#define TPUTS_TRACE(s) _nc_tputs_trace = s;
#define TRACE_RETURN(value,type) return _nc_retrace_##type(value)
-#define returnAttr(code) TRACE_RETURN(code,attr_t)
-#define returnChar(code) TRACE_RETURN(code,chtype)
-#define returnBool(code) TRACE_RETURN(code,bool)
-#define returnBits(code) TRACE_RETURN(code,unsigned)
-#define returnCode(code) TRACE_RETURN(code,int)
-#define returnPtr(code) TRACE_RETURN(code,ptr)
-#define returnSP(code) TRACE_RETURN(code,sp)
-#define returnVoid T((T_RETURN(""))); return
-#define returnWin(code) TRACE_RETURN(code,win)
+#define returnAttr(code) TRACE_RETURN(code,attr_t)
+#define returnBits(code) TRACE_RETURN(code,unsigned)
+#define returnBool(code) TRACE_RETURN(code,bool)
+#define returnCPtr(code) TRACE_RETURN(code,cptr)
+#define returnCVoidPtr(code) TRACE_RETURN(code,cvoid_ptr)
+#define returnChar(code) TRACE_RETURN(code,chtype)
+#define returnCode(code) TRACE_RETURN(code,int)
+#define returnPtr(code) TRACE_RETURN(code,ptr)
+#define returnSP(code) TRACE_RETURN(code,sp)
+#define returnVoid T((T_RETURN(""))); return
+#define returnVoidPtr(code) TRACE_RETURN(code,void_ptr)
+#define returnWin(code) TRACE_RETURN(code,win)
extern NCURSES_EXPORT(NCURSES_BOOL) _nc_retrace_bool (NCURSES_BOOL);
+extern NCURSES_EXPORT(NCURSES_CONST void *) _nc_retrace_cvoid_ptr (NCURSES_CONST void *);
extern NCURSES_EXPORT(SCREEN *) _nc_retrace_sp (SCREEN *);
extern NCURSES_EXPORT(WINDOW *) _nc_retrace_win (WINDOW *);
extern NCURSES_EXPORT(attr_t) _nc_retrace_attr_t (attr_t);
extern NCURSES_EXPORT(char *) _nc_varargs (const char *, va_list);
extern NCURSES_EXPORT(chtype) _nc_retrace_chtype (chtype);
extern NCURSES_EXPORT(const char *) _nc_altcharset_name(attr_t, chtype);
+extern NCURSES_EXPORT(const char *) _nc_retrace_cptr (const char *);
extern NCURSES_EXPORT(int) _nc_retrace_int (int);
extern NCURSES_EXPORT(unsigned) _nc_retrace_unsigned (unsigned);
+extern NCURSES_EXPORT(void *) _nc_retrace_void_ptr (void *);
extern NCURSES_EXPORT(void) _nc_fifo_dump (void);
extern NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace;
extern NCURSES_EXPORT_VAR(long) _nc_outchars;
#define TR(n, a)
#define TPUTS_TRACE(s)
-#define returnAttr(code) return code
-#define returnBits(code) return code
-#define returnBool(code) return code
-#define returnChar(code) return code
-#define returnCode(code) return code
-#define returnPtr(code) return code
-#define returnSP(code) return code
-#define returnVoid return
-#define returnWin(code) return code
+#define returnAttr(code) return code
+#define returnBits(code) return code
+#define returnBool(code) return code
+#define returnCPtr(code) return code
+#define returnCVoidPtr(code) return code
+#define returnChar(code) return code
+#define returnCode(code) return code
+#define returnPtr(code) return code
+#define returnSP(code) return code
+#define returnVoid return
+#define returnVoidPtr(code) return code
+#define returnWin(code) return code
#endif /* TRACE/!TRACE */
NCURSES_EXPORT(void) name (void) { }
#define ALL_BUT_COLOR ((chtype)~(A_COLOR))
-#define IGNORE_COLOR_OFF FALSE
#define NONBLANK_ATTR (A_NORMAL|A_BOLD|A_DIM|A_BLINK)
#define XMC_CHANGES(c) ((c) & SP->_xmc_suppress)
#define toggle_attr_on(S,at) {\
- if (PAIR_NUMBER(at) > 0)\
+ if (PAIR_NUMBER(at) > 0) {\
(S) = ((S) & ALL_BUT_COLOR) | (at);\
- else\
+ } else {\
(S) |= (at);\
+ }\
TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
#define toggle_attr_off(S,at) {\
- if (IGNORE_COLOR_OFF == TRUE) {\
- if (PAIR_NUMBER(at) == 0xff) /* turn off color */\
- (S) &= ~(at);\
- else /* leave color alone */\
- (S) &= ~((at)&ALL_BUT_COLOR);\
+ if (PAIR_NUMBER(at) > 0) {\
+ (S) &= ~(at|A_COLOR);\
} else {\
- if (PAIR_NUMBER(at) > 0x00) /* turn off color */\
- (S) &= ~(at|A_COLOR);\
- else /* leave color alone */\
- (S) &= ~(at);\
+ (S) &= ~(at);\
}\
TR(TRACE_ATTRS, ("new attribute is %s", _traceattr((S))));}
: INFINITY)))
#if USE_XMC_SUPPORT
-#define UpdateAttrs(a) if (SP->_current_attr != (a)) { \
- attr_t chg = SP->_current_attr; \
- vidattr((a)); \
+#define UpdateAttrs(c) if (!SameAttrOf(SCREEN_ATTRS(SP), c)) { \
+ attr_t chg = AttrOf(SCREEN_ATTRS(SP)); \
+ VIDATTR(AttrOf(c), GetPair(c)); \
if (magic_cookie_glitch > 0 \
- && XMC_CHANGES((chg ^ SP->_current_attr))) { \
+ && XMC_CHANGES((chg ^ AttrOf(SCREEN_ATTRS(SP))))) { \
T(("%s @%d before glitch %d,%d", \
__FILE__, __LINE__, \
SP->_cursrow, \
} \
}
#else
-#define UpdateAttrs(a) if (SP->_current_attr != (a)) \
- vidattr((a));
+#define UpdateAttrs(c) if (!SameAttrOf(SCREEN_ATTRS(SP), c)) \
+ VIDATTR(AttrOf(c), GetPair(c));
#endif
/*
#undef UpdateAttrs
#define UpdateAttrs(c) _nc_UpdateAttrs(c)
-extern NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype);
+extern NCURSES_EXPORT(void) _nc_UpdateAttrs (NCURSES_CH_T);
#else
extern NCURSES_EXPORT(void) _nc_init_acs (void); /* corresponds to traditional 'init_acs()' */
extern NCURSES_EXPORT(int) _nc_msec_cost (const char *const, int); /* used by 'tack' program */
-/* lib_addstr.c */
+/* lib_addch.c */
#if USE_WIDEC_SUPPORT
+NCURSES_EXPORT(int) _nc_build_wch(WINDOW *win, ARG_CH_T ch);
+#endif
+
+/* lib_addstr.c */
+#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
extern NCURSES_EXPORT(int) _nc_wchstrlen(const cchar_t *);
#endif
extern NCURSES_EXPORT(int) _nc_wgetch(WINDOW *, unsigned long *, int EVENTLIST_2nd(_nc_eventlist *));
/* lib_insch.c */
-extern NCURSES_EXPORT(void) _nc_insert_ch(WINDOW *, chtype);
+extern NCURSES_EXPORT(int) _nc_insert_ch(WINDOW *, chtype);
/* lib_mvcur.c */
#define INFINITY 1000000 /* cost: too high to use */
extern NCURSES_EXPORT(char *) _nc_get_locale(void);
extern NCURSES_EXPORT(int) _nc_unicode_locale(void);
extern NCURSES_EXPORT(int) _nc_locale_breaks_acs(void);
+extern NCURSES_EXPORT(int) _nc_setupterm(NCURSES_CONST char *, int , int *, bool);
/* lib_wacs.c */
#if USE_WIDEC_SUPPORT
extern NCURSES_EXPORT(bool) _nc_safe_strcat (string_desc *, const char *);
extern NCURSES_EXPORT(bool) _nc_safe_strcpy (string_desc *, const char *);
-extern NCURSES_EXPORT(void) _nc_mvcur_init (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_resume (void);
-extern NCURSES_EXPORT(void) _nc_mvcur_wrap (void);
-
-extern NCURSES_EXPORT(int) _nc_scrolln (int, int, int, int);
-
-extern NCURSES_EXPORT(void) _nc_screen_init (void);
-extern NCURSES_EXPORT(void) _nc_screen_resume (void);
-extern NCURSES_EXPORT(void) _nc_screen_wrap (void);
-
#if !HAVE_STRSTR
#define strstr _nc_strstr
extern NCURSES_EXPORT(char *) _nc_strstr (const char *, const char *);
extern NCURSES_EXPORT(int) _nc_remove_string (struct tries **, const char *);
/* elsewhere ... */
-extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
+extern NCURSES_EXPORT(ENTRY *) _nc_delink_entry(ENTRY *, TERMTYPE *);
extern NCURSES_EXPORT(WINDOW *) _nc_makenew (int, int, int, int, int);
extern NCURSES_EXPORT(char *) _nc_home_terminfo (void);
extern NCURSES_EXPORT(char *) _nc_trace_buf (int, size_t);
extern NCURSES_EXPORT(int) _nc_outch (int);
extern NCURSES_EXPORT(int) _nc_setupscreen (short, short const, FILE *);
extern NCURSES_EXPORT(int) _nc_timed_wait(int, int, int * EVENTLIST_2nd(_nc_eventlist *));
-extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);
extern NCURSES_EXPORT(void) _nc_do_color (int, int, bool, int (*)(int));
extern NCURSES_EXPORT(void) _nc_flush (void);
+extern NCURSES_EXPORT(void) _nc_free_entry(ENTRY *, TERMTYPE *);
extern NCURSES_EXPORT(void) _nc_freeall (void);
extern NCURSES_EXPORT(void) _nc_hash_map (void);
extern NCURSES_EXPORT(void) _nc_init_keytry (void);
extern NCURSES_EXPORT(void) _nc_make_oldhash (int i);
extern NCURSES_EXPORT(void) _nc_scroll_oldhash (int n, int top, int bot);
extern NCURSES_EXPORT(void) _nc_scroll_optimize (void);
-extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, short const, short const, NCURSES_CH_T);
extern NCURSES_EXPORT(void) _nc_set_buffer (FILE *, bool);
extern NCURSES_EXPORT(void) _nc_signal_handler (bool);
extern NCURSES_EXPORT(void) _nc_synchook (WINDOW *);
extern NCURSES_EXPORT(void) _nc_trace_tries (struct tries *);
+#if NO_LEAKS
+extern NCURSES_EXPORT(void) _nc_alloc_entry_leaks(void);
+extern NCURSES_EXPORT(void) _nc_captoinfo_leaks(void);
+extern NCURSES_EXPORT(void) _nc_comp_scan_leaks(void);
+#endif
+
+#ifndef USE_TERMLIB
+extern NCURSES_EXPORT(NCURSES_CH_T) _nc_render (WINDOW *, NCURSES_CH_T);
+extern NCURSES_EXPORT(int) _nc_waddch_nosync (WINDOW *, const NCURSES_CH_T);
+extern NCURSES_EXPORT(void) _nc_scroll_window (WINDOW *, int const, short const, short const, NCURSES_CH_T);
+#endif
+
+#if USE_WIDEC_SUPPORT && !defined(USE_TERMLIB)
+#ifdef linux
+extern NCURSES_EXPORT(size_t) _nc_wcrtomb (char *, wchar_t, mbstate_t *);
+#else
+#define _nc_wcrtomb(s,wc,ps) wcrtomb(s,wc,ps)
+#endif
+#endif
+
#if USE_SIZECHANGE
extern NCURSES_EXPORT(void) _nc_update_screensize (void);
#endif
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 1996-2003,2004 *
+ * Author: Thomas E. Dickey 1996-2004,2005 *
****************************************************************************/
/* LINTLIBRARY */
/* ./tty/hashmap.c */
+#include <term.h>
+
#undef _nc_hash_map
void _nc_hash_map(void)
{ /* void */ }
#undef _nc_scroll_oldhash
void _nc_scroll_oldhash(
- int n,
- int top,
+ int n,
+ int top,
int bot)
{ /* void */ }
#undef _nc_render
chtype _nc_render(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(chtype *)0); }
#undef _nc_waddch_nosync
int _nc_waddch_nosync(
- WINDOW *win,
+ WINDOW *win,
const chtype c)
{ return(*(int *)0); }
#undef waddch
int waddch(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef wechochar
int wechochar(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef waddnstr
int waddnstr(
- WINDOW *win,
- const char *astr,
+ WINDOW *win,
+ const char *astr,
int n)
{ return(*(int *)0); }
#undef waddchnstr
int waddchnstr(
- WINDOW *win,
- const chtype *astr,
+ WINDOW *win,
+ const chtype *astr,
int n)
{ return(*(int *)0); }
#undef wbkgdset
void wbkgdset(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ /* void */ }
#undef wbkgd
int wbkgd(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
#undef wborder
int wborder(
- WINDOW *win,
- chtype ls,
- chtype rs,
- chtype ts,
- chtype bs,
- chtype tl,
- chtype tr,
- chtype bl,
+ WINDOW *win,
+ chtype ls,
+ chtype rs,
+ chtype ts,
+ chtype bs,
+ chtype tl,
+ chtype tr,
+ chtype bl,
chtype br)
{ return(*(int *)0); }
#undef wchgat
int wchgat(
- WINDOW *win,
- int n,
- attr_t attr,
- short color,
+ WINDOW *win,
+ int n,
+ attr_t attr,
+ short color,
const void *opts)
{ return(*(int *)0); }
#undef clearok
int clearok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef init_pair
int init_pair(
- short pair,
- short f,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef init_color
int init_color(
- short color,
- short r,
- short g,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
#undef color_content
int color_content(
- short color,
- short *r,
- short *g,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef pair_content
int pair_content(
- short pair,
- short *f,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef _nc_do_color
void _nc_do_color(
- int old_pair,
- int pair,
- NCURSES_BOOL reverse,
+ int old_pair,
+ int pair,
+ NCURSES_BOOL reverse,
int (*outc)(
int p1))
{ /* void */ }
#undef wcolor_set
int wcolor_set(
- WINDOW *win,
- short color_pair_number,
+ WINDOW *win,
+ short color_pair_number,
void *opts)
{ return(*(int *)0); }
#undef addchnstr
int addchnstr(
- const chtype *a1,
+ const chtype *a1,
int z)
{ return(*(int *)0); }
#undef addnstr
int addnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
#undef attr_get
int attr_get(
- attr_t *a1,
- short *a2,
+ attr_t *a1,
+ short *a2,
void *z)
{ return(*(int *)0); }
#undef attr_off
int attr_off(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_on
int attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_set
int attr_set(
- attr_t a1,
- short a2,
+ attr_t a1,
+ short a2,
void *z)
{ return(*(int *)0); }
#undef border
int border(
- chtype a1,
- chtype a2,
- chtype a3,
- chtype a4,
- chtype a5,
- chtype a6,
- chtype a7,
+ chtype a1,
+ chtype a2,
+ chtype a3,
+ chtype a4,
+ chtype a5,
+ chtype a6,
+ chtype a7,
chtype z)
{ return(*(int *)0); }
#undef box
int box(
- WINDOW *a1,
- chtype a2,
+ WINDOW *a1,
+ chtype a2,
chtype z)
{ return(*(int *)0); }
#undef chgat
int chgat(
- int a1,
- attr_t a2,
- short a3,
+ int a1,
+ attr_t a2,
+ short a3,
const void *z)
{ return(*(int *)0); }
#undef color_set
int color_set(
- short a1,
+ short a1,
void *z)
{ return(*(int *)0); }
#undef getnstr
int getnstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
#undef hline
int hline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef inchnstr
int inchnstr(
- chtype *a1,
+ chtype *a1,
int z)
{ return(*(int *)0); }
#undef innstr
int innstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
#undef insnstr
int insnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
#undef move
int move(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvaddch
int mvaddch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype z)
{ return(*(int *)0); }
#undef mvaddchnstr
int mvaddchnstr(
- int a1,
- int a2,
- const chtype *a3,
+ int a1,
+ int a2,
+ const chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvaddchstr
int mvaddchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype *z)
{ return(*(int *)0); }
#undef mvaddnstr
int mvaddnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvaddstr
int mvaddstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvchgat
int mvchgat(
- int a1,
- int a2,
- int a3,
- attr_t a4,
- short a5,
+ int a1,
+ int a2,
+ int a3,
+ attr_t a4,
+ short a5,
const void *z)
{ return(*(int *)0); }
#undef mvdelch
int mvdelch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetch
int mvgetch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetnstr
int mvgetnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvgetstr
int mvgetstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvhline
int mvhline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvinch
chtype mvinch(
- int a1,
+ int a1,
int z)
{ return(*(chtype *)0); }
#undef mvinchnstr
int mvinchnstr(
- int a1,
- int a2,
- chtype *a3,
+ int a1,
+ int a2,
+ chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvinchstr
int mvinchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype *z)
{ return(*(int *)0); }
#undef mvinnstr
int mvinnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsch
int mvinsch(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype z)
{ return(*(int *)0); }
#undef mvinsnstr
int mvinsnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsstr
int mvinsstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvinstr
int mvinstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvvline
int mvvline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvwaddch
int mvwaddch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype z)
{ return(*(int *)0); }
#undef mvwaddchnstr
int mvwaddchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddchstr
int mvwaddchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype *z)
{ return(*(int *)0); }
#undef mvwaddnstr
int mvwaddnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddstr
int mvwaddstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwchgat
int mvwchgat(
- WINDOW *a1,
- int a2,
- int a3,
- int a4,
- attr_t a5,
- short a6,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ int a4,
+ attr_t a5,
+ short a6,
const void *z)
{ return(*(int *)0); }
#undef mvwdelch
int mvwdelch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetch
int mvwgetch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetnstr
int mvwgetnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwgetstr
int mvwgetstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwhline
int mvwhline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef mvwinch
chtype mvwinch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(chtype *)0); }
#undef mvwinchnstr
int mvwinchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwinchstr
int mvwinchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype *z)
{ return(*(int *)0); }
#undef mvwinnstr
int mvwinnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsch
int mvwinsch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype z)
{ return(*(int *)0); }
#undef mvwinsnstr
int mvwinsnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsstr
int mvwinsstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwinstr
int mvwinstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwvline
int mvwvline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef setscrreg
int setscrreg(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef touchline
int touchline(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef vline
int vline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef vw_printw
int vw_printw(
- WINDOW *a1,
- const char *a2,
+ WINDOW *a1,
+ const char *a2,
va_list z)
{ return(*(int *)0); }
#undef vw_scanw
int vw_scanw(
- WINDOW *a1,
- char *a2,
+ WINDOW *a1,
+ char *a2,
va_list z)
{ return(*(int *)0); }
#undef waddchstr
int waddchstr(
- WINDOW *a1,
+ WINDOW *a1,
const chtype *z)
{ return(*(int *)0); }
#undef waddstr
int waddstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef wattron
int wattron(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattroff
int wattroff(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattrset
int wattrset(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattr_get
int wattr_get(
- WINDOW *a1,
- attr_t *a2,
- short *a3,
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
void *z)
{ return(*(int *)0); }
#undef wattr_set
int wattr_set(
- WINDOW *a1,
- attr_t a2,
- short a3,
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
void *z)
{ return(*(int *)0); }
#undef wgetstr
int wgetstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
#undef winchstr
int winchstr(
- WINDOW *a1,
+ WINDOW *a1,
chtype *z)
{ return(*(int *)0); }
#undef winsstr
int winsstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef winstr
int winstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
{ return(*(int *)0); }
#undef mouse_trafo
-NCURSES_BOOL mouse_trafo(
- int *a1,
- int *a2,
- NCURSES_BOOL z)
+NCURSES_BOOL mouse_trafo(
+ int *a1,
+ int *a2,
+ NCURSES_BOOL z)
{ return(*(NCURSES_BOOL *)0); }
/* ./base/lib_getch.c */
#undef _nc_wgetch
int _nc_wgetch(
- WINDOW *win,
- unsigned long *result,
+ WINDOW *win,
+ unsigned long *result,
int use_meta)
{ return(*(int *)0); }
#undef wgetnstr
int wgetnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int maxlen)
{ return(*(int *)0); }
#undef whline
int whline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
#undef immedok
void immedok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef winchnstr
int winchnstr(
- WINDOW *win,
- chtype *str,
+ WINDOW *win,
+ chtype *str,
int n)
{ return(*(int *)0); }
/* ./base/lib_insch.c */
#undef _nc_insert_ch
-void _nc_insert_ch(
- WINDOW *win,
+int _nc_insert_ch(
+ WINDOW *win,
chtype ch)
- { /* void */ }
+ { return(*(int *)0); }
#undef winsch
int winsch(
- WINDOW *win,
+ WINDOW *win,
chtype c)
{ return(*(int *)0); }
-#undef winsnstr
-int winsnstr(
- WINDOW *win,
- const char *s,
- int n)
- { return(*(int *)0); }
-
/* ./base/lib_insdel.c */
#undef winsdelln
int winsdelln(
- WINDOW *win,
+ WINDOW *win,
+ int n)
+ { return(*(int *)0); }
+
+/* ./base/lib_insnstr.c */
+
+#undef winsnstr
+int winsnstr(
+ WINDOW *win,
+ const char *s,
int n)
{ return(*(int *)0); }
#undef winnstr
int winnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int n)
{ return(*(int *)0); }
#undef leaveok
int leaveok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef mousemask
mmask_t mousemask(
- mmask_t newmask,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef wenclose
NCURSES_BOOL wenclose(
- const WINDOW *win,
- int y,
+ const WINDOW *win,
+ int y,
int x)
{ return(*(NCURSES_BOOL *)0); }
#undef wmouse_trafo
NCURSES_BOOL wmouse_trafo(
- const WINDOW *win,
- int *pY,
- int *pX,
+ const WINDOW *win,
+ int *pY,
+ int *pX,
NCURSES_BOOL to_screen)
{ return(*(NCURSES_BOOL *)0); }
#undef wmove
int wmove(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef _nc_msec_cost
int _nc_msec_cost(
- const char *const cap,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
#undef mvcur
int mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvwin
int mvwin(
- WINDOW *win,
- int by,
+ WINDOW *win,
+ int by,
int bx)
{ return(*(int *)0); }
#undef newterm
SCREEN *newterm(
- char *name,
- FILE *ofp,
+ char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
#undef newwin
WINDOW *newwin(
- int num_lines,
- int num_columns,
- int begy,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef derwin
WINDOW *derwin(
- WINDOW *orig,
- int num_lines,
- int num_columns,
- int begy,
+ WINDOW *orig,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef subwin
WINDOW *subwin(
- WINDOW *w,
- int l,
- int c,
- int y,
+ WINDOW *w,
+ int l,
+ int c,
+ int y,
int x)
{ return(*(WINDOW **)0); }
#undef _nc_makenew
WINDOW *_nc_makenew(
- int num_lines,
- int num_columns,
- int begy,
- int begx,
+ int num_lines,
+ int num_columns,
+ int begy,
+ int begx,
int flags)
{ return(*(WINDOW **)0); }
#undef overlay
int overlay(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef overwrite
int overwrite(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef copywin
int copywin(
- const WINDOW *src,
- WINDOW *dst,
- int sminrow,
- int smincol,
- int dminrow,
- int dmincol,
- int dmaxrow,
- int dmaxcol,
+ const WINDOW *src,
+ WINDOW *dst,
+ int sminrow,
+ int smincol,
+ int dminrow,
+ int dmincol,
+ int dmaxrow,
+ int dmaxcol,
int over)
{ return(*(int *)0); }
#undef newpad
WINDOW *newpad(
- int l,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef subpad
WINDOW *subpad(
- WINDOW *orig,
- int l,
- int c,
- int begy,
+ WINDOW *orig,
+ int l,
+ int c,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef prefresh
int prefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pnoutrefresh
int pnoutrefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pechochar
int pechochar(
- WINDOW *pad,
+ WINDOW *pad,
const chtype ch)
{ return(*(int *)0); }
#undef printw
int printw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wprintw
int wprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvprintw
int mvprintw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwprintw
int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef vwprintw
int vwprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef wredrawln
int wredrawln(
- WINDOW *win,
- int beg,
+ WINDOW *win,
+ int beg,
int num)
{ return(*(int *)0); }
#undef restartterm
int restartterm(
- char *termp,
- int filenum,
+ char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
#undef vwscanw
int vwscanw(
- WINDOW *win,
- char *fmt,
+ WINDOW *win,
+ char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef scanw
int scanw(
- char *fmt,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef wscanw
int wscanw(
- WINDOW *win,
- char *fmt,
+ WINDOW *win,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef mvscanw
int mvscanw(
- int y,
- int x,
- char *fmt,
+ int y,
+ int x,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef mvwscanw
int mvwscanw(
- WINDOW *win,
- int y,
- int x,
- char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef putwin
int putwin(
- WINDOW *win,
+ WINDOW *win,
FILE *filep)
{ return(*(int *)0); }
#undef _nc_scroll_window
void _nc_scroll_window(
- WINDOW *win,
- int const n,
- short const top,
- short const bottom,
+ WINDOW *win,
+ int const n,
+ short const top,
+ short const bottom,
chtype blank)
{ /* void */ }
#undef wscrl
int wscrl(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
#undef scrollok
int scrollok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef wsetscrreg
int wsetscrreg(
- WINDOW *win,
- int top,
+ WINDOW *win,
+ int top,
int bottom)
{ return(*(int *)0); }
#undef _nc_setupscreen
int _nc_setupscreen(
- short slines,
- short const scolumns,
+ short slines,
+ short const scolumns,
FILE *output)
{ return(*(int *)0); }
#undef _nc_ripoffline
int _nc_ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline
int ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef _nc_slk_initialize
int _nc_slk_initialize(
- WINDOW *stwin,
+ WINDOW *stwin,
int cols)
{ return(*(int *)0); }
#undef slk_attr_set
int slk_attr_set(
- const attr_t attr,
- short color_pair_number,
+ const attr_t attr,
+ short color_pair_number,
void *opts)
{ return(*(int *)0); }
#undef slk_set
int slk_set(
- int i,
- const char *astr,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
#undef is_linetouched
NCURSES_BOOL is_linetouched(
- WINDOW *win,
+ WINDOW *win,
int line)
{ return(*(NCURSES_BOOL *)0); }
#undef wtouchln
int wtouchln(
- WINDOW *win,
- int y,
- int n,
+ WINDOW *win,
+ int y,
+ int n,
int changed)
{ return(*(int *)0); }
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
attr_t newmode)
{ return(*(char **)0); }
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
#undef _tracedump
void _tracedump(
- const char *name,
+ const char *name,
WINDOW *win)
{ /* void */ }
#undef vidputs
int vidputs(
- chtype newmode,
+ chtype newmode,
int (*outc)(
int p1))
{ return(*(int *)0); }
#undef wvline
int wvline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
#undef wattr_off
int wattr_off(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
#undef wattr_on
int wattr_on(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
#undef mvderwin
int mvderwin(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef syncok
int syncok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL bf)
{ return(*(int *)0); }
#undef _nc_printf_string
char *_nc_printf_string(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
#undef _nc_scrolln
int _nc_scrolln(
- int n,
- int top,
- int bot,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
/* ./trace/varargs.c */
+typedef enum {
+ atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
#undef _nc_varargs
char *_nc_varargs(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
void _nc_freeall(void)
{ /* void */ }
-/* ./base/define_key.c */
-
-#undef define_key
-int define_key(
- const char *str,
- int keycode)
- { return(*(int *)0); }
-
/* ./expanded.c */
#undef _nc_toggle_attr_on
void _nc_toggle_attr_on(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_toggle_attr_off
void _nc_toggle_attr_off(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
chtype c)
{ /* void */ }
-/* ./base/key_defined.c */
-
-#undef key_defined
-int key_defined(
- const char *str)
- { return(*(int *)0); }
-
-/* ./base/keybound.c */
-
-#undef keybound
-char *keybound(
- int code,
- int count)
- { return(*(char **)0); }
-
-/* ./base/keyok.c */
-
-#undef keyok
-int keyok(
- int c,
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
/* ./base/lib_dft_fgbg.c */
#undef use_default_colors
#undef assume_default_colors
int assume_default_colors(
- int fg,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef mcprint
int mcprint(
- char *data,
+ char *data,
int len)
{ return(*(int *)0); }
#undef is_term_resized
NCURSES_BOOL is_term_resized(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef resize_term
int resize_term(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm
int resizeterm(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
TERMTYPE *tp)
{ /* void */ }
-/* ./base/tries.c */
-
-#undef _nc_expand_try
-char *_nc_expand_try(
- struct tries *tree,
- unsigned short code,
- int *count,
- size_t len)
- { return(*(char **)0); }
-
-#undef _nc_remove_key
-int _nc_remove_key(
- struct tries **tree,
- unsigned short code)
- { return(*(int *)0); }
-
-#undef _nc_remove_string
-int _nc_remove_string(
- struct tries **tree,
- const char *string)
- { return(*(int *)0); }
-
-/* ./base/version.c */
-
-#undef curses_version
-const char *curses_version(void)
- { return(*(const char **)0); }
-
/* ./base/wresize.c */
#undef wresize
int wresize(
- WINDOW *win,
- int ToLines,
+ WINDOW *win,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
/* ./tinfo/access.c */
+#include <nc_alloc.h>
+
#undef _nc_rootname
char *_nc_rootname(
char *path)
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
#undef _nc_add_to_try
void _nc_add_to_try(
- struct tries **tree,
- const char *str,
+ struct tries **tree,
+ const char *str,
unsigned short code)
{ /* void */ }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- TERMTYPE *const to,
+ TERMTYPE *const to,
TERMTYPE *const from)
{ /* void */ }
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE *to,
+ TERMTYPE *to,
TERMTYPE *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
TERMTYPE *src)
{ /* void */ }
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const struct name_table_entry *const *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
const struct name_table_entry *table)
{ return(*(struct name_table_entry const **)0); }
/* ./tinfo/comp_parse.c */
+#undef _nc_check_termtype2
+void (*_nc_check_termtype2)(
+ TERMTYPE *p1,
+ NCURSES_BOOL p2);
#undef _nc_check_termtype
void (*_nc_check_termtype)(
TERMTYPE *p1);
ENTRY *headp)
{ /* void */ }
+#undef _nc_delink_entry
+ENTRY *_nc_delink_entry(
+ ENTRY *headp,
+ TERMTYPE *tterm)
+ { return(*(ENTRY **)0); }
+
+#undef _nc_free_entry
+void _nc_free_entry(
+ ENTRY *headp,
+ TERMTYPE *tterm)
+ { /* void */ }
+
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
+#undef _nc_resolve_uses2
+int _nc_resolve_uses2(
+ NCURSES_BOOL fullresolve,
+ NCURSES_BOOL literal)
+ { return(*(int *)0); }
+
#undef _nc_resolve_uses
int _nc_resolve_uses(
NCURSES_BOOL fullresolve)
#undef _nc_disable_period
NCURSES_BOOL _nc_disable_period;
+#undef _nc_reset_input
+void _nc_reset_input(
+ FILE *fp,
+ char *buf)
+ { /* void */ }
+
#undef _nc_get_token
int _nc_get_token(
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_trans_string
-char _nc_trans_string(
- char *ptr,
+int _nc_trans_string(
+ char *ptr,
char *last)
- { return(*(char *)0); }
+ { return(*(int *)0); }
#undef _nc_push_token
void _nc_push_token(
char ch)
{ /* void */ }
-#undef _nc_reset_input
-void _nc_reset_input(
- FILE *fp,
- char *buf)
- { /* void */ }
-
/* ./tinfo/doalloc.c */
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
#include <termcap.h>
+struct speed {
+ int s;
+ int sp;
+};
+
#undef _nc_baudrate
int _nc_baudrate(
int OSpeed)
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
/* ./tinfo/lib_setup.c */
+#include <locale.h>
#include <sys/ioctl.h>
+#include <langinfo.h>
#undef ttytype
char ttytype[256];
int _nc_locale_breaks_acs(void)
{ return(*(int *)0); }
+#undef _nc_setupterm
+int _nc_setupterm(
+ char *tname,
+ int Filedes,
+ int *errret,
+ NCURSES_BOOL reuse)
+ { return(*(int *)0); }
+
#undef setupterm
int setupterm(
- char *tname,
- int Filedes,
+ char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetstr
char *tgetstr(
- char *id,
+ char *id,
char **area)
{ return(*(char **)0); }
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
/* ./tinfo/lib_tparm.c */
+typedef struct {
+ union {
+ int num;
+ char *str;
+ } data;
+ NCURSES_BOOL num_type;
+} stack_frame;
+
#undef _nc_tparm_err
int _nc_tparm_err;
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ const char *string,
+ char *p_is_s[9],
int *popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- char *string,
+ char *string,
...)
{ return(*(char **)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
char *code)
{ return(*(char **)0); }
+#undef _nc_retrace_cptr
+const char *_nc_retrace_cptr(
+ const char *code)
+ { return(*(const char **)0); }
+
+#undef _nc_retrace_cvoid_ptr
+void *_nc_retrace_cvoid_ptr(
+ void *code)
+ { return(*(void **)0); }
+
+#undef _nc_retrace_void_ptr
+void *_nc_retrace_void_ptr(
+ void *code)
+ { return(*(void **)0); }
+
#undef _nc_retrace_sp
SCREEN *_nc_retrace_sp(
SCREEN *code)
/* ./trace/lib_tracebits.c */
+typedef struct {
+ unsigned int val;
+ const char *name;
+} BITNAMES;
+
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
struct termios *tty)
#undef _nc_timed_wait
int _nc_timed_wait(
- int mode,
- int milliseconds,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
#undef _nc_parse_entry
int _nc_parse_entry(
- struct entry *entryp,
- int literal,
+ struct entry *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
+typedef struct {
+ const char *from;
+ const char *to;
+} assoc;
+
/* ./tinfo/read_entry.c */
#undef _nc_tic_dir
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
+ const char *const filename,
TERMTYPE *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const tn,
- char *const filename,
+ const char *const tn,
+ char *const filename,
TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/read_termcap.c */
+#include <sys/types.h>
+#include <sys/stat.h>
+
#undef _nc_read_termcap_entry
int _nc_read_termcap_entry(
- const char *const tn,
+ const char *const tn,
TERMTYPE *const tp)
{ return(*(int *)0); }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
NCURSES_BOOL buffered)
{ /* void */ }
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
+ string_desc *dst,
string_desc *src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
/* ./trace/trace_buf.c */
+typedef struct {
+ char *text;
+ size_t size;
+} LIST;
+
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
struct tries *tree)
{ /* void */ }
+/* ./base/tries.c */
+
+#undef _nc_expand_try
+char *_nc_expand_try(
+ struct tries *tree,
+ unsigned short code,
+ int *count,
+ size_t len)
+ { return(*(char **)0); }
+
+#undef _nc_remove_key
+int _nc_remove_key(
+ struct tries **tree,
+ unsigned short code)
+ { return(*(int *)0); }
+
+#undef _nc_remove_string
+int _nc_remove_string(
+ struct tries **tree,
+ const char *string)
+ { return(*(int *)0); }
+
+/* ./tinfo/trim_sgr0.c */
+
+#undef _nc_trim_sgr0
+char *_nc_trim_sgr0(
+ TERMTYPE *tp)
+ { return(*(char **)0); }
+
/* ./unctrl.c */
#undef unctrl
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_tic_written
int _nc_tic_written(void)
{ return(*(int *)0); }
+
+/* ./base/define_key.c */
+
+#undef define_key
+int define_key(
+ const char *str,
+ int keycode)
+ { return(*(int *)0); }
+
+/* ./base/key_defined.c */
+
+#undef key_defined
+int key_defined(
+ const char *str)
+ { return(*(int *)0); }
+
+/* ./base/keybound.c */
+
+#undef keybound
+char *keybound(
+ int code,
+ int count)
+ { return(*(char **)0); }
+
+/* ./base/keyok.c */
+
+#undef keyok
+int keyok(
+ int c,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+/* ./base/version.c */
+
+#undef curses_version
+const char *curses_version(void)
+ { return(*(const char **)0); }
/****************************************************************************
- * Copyright (c) 2001-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 2001-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 2001-2004 *
+ * Author: Thomas E. Dickey 2001-2005 *
****************************************************************************/
/* LINTLIBRARY */
/* ./tty/hashmap.c */
+#include <term.h>
+
#undef _nc_hash_map
void _nc_hash_map(void)
{ /* void */ }
#undef _nc_scroll_oldhash
void _nc_scroll_oldhash(
- int n,
- int top,
+ int n,
+ int top,
int bot)
{ /* void */ }
#undef _nc_render
cchar_t _nc_render(
- WINDOW *win,
+ WINDOW *win,
cchar_t ch)
{ return(*(cchar_t *)0); }
+#undef _nc_build_wch
+int _nc_build_wch(
+ WINDOW *win,
+ cchar_t *ch)
+ { return(*(int *)0); }
+
#undef _nc_waddch_nosync
int _nc_waddch_nosync(
- WINDOW *win,
+ WINDOW *win,
const cchar_t c)
{ return(*(int *)0); }
#undef waddch
int waddch(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef wechochar
int wechochar(
- WINDOW *win,
+ WINDOW *win,
const chtype ch)
{ return(*(int *)0); }
#undef waddnstr
int waddnstr(
- WINDOW *win,
- const char *astr,
+ WINDOW *win,
+ const char *astr,
int n)
{ return(*(int *)0); }
#undef waddchnstr
int waddchnstr(
- WINDOW *win,
- const chtype *astr,
+ WINDOW *win,
+ const chtype *astr,
int n)
{ return(*(int *)0); }
#undef wadd_wchnstr
int wadd_wchnstr(
- WINDOW *win,
- const cchar_t *astr,
+ WINDOW *win,
+ const cchar_t *astr,
int n)
{ return(*(int *)0); }
#undef waddnwstr
int waddnwstr(
- WINDOW *win,
- const wchar_t *str,
+ WINDOW *win,
+ const wchar_t *str,
int n)
{ return(*(int *)0); }
#undef wbkgrndset
void wbkgrndset(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *ch)
{ /* void */ }
#undef wbkgdset
void wbkgdset(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ /* void */ }
#undef wbkgrnd
int wbkgrnd(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *ch)
{ return(*(int *)0); }
#undef wbkgd
int wbkgd(
- WINDOW *win,
+ WINDOW *win,
chtype ch)
{ return(*(int *)0); }
#undef wborder
int wborder(
- WINDOW *win,
- chtype ls,
- chtype rs,
- chtype ts,
- chtype bs,
- chtype tl,
- chtype tr,
- chtype bl,
+ WINDOW *win,
+ chtype ls,
+ chtype rs,
+ chtype ts,
+ chtype bs,
+ chtype tl,
+ chtype tr,
+ chtype bl,
chtype br)
{ return(*(int *)0); }
#undef wchgat
int wchgat(
- WINDOW *win,
- int n,
- attr_t attr,
- short color,
+ WINDOW *win,
+ int n,
+ attr_t attr,
+ short color,
const void *opts)
{ return(*(int *)0); }
#undef clearok
int clearok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef init_pair
int init_pair(
- short pair,
- short f,
+ short pair,
+ short f,
short b)
{ return(*(int *)0); }
#undef init_color
int init_color(
- short color,
- short r,
- short g,
+ short color,
+ short r,
+ short g,
short b)
{ return(*(int *)0); }
#undef color_content
int color_content(
- short color,
- short *r,
- short *g,
+ short color,
+ short *r,
+ short *g,
short *b)
{ return(*(int *)0); }
#undef pair_content
int pair_content(
- short pair,
- short *f,
+ short pair,
+ short *f,
short *b)
{ return(*(int *)0); }
#undef _nc_do_color
void _nc_do_color(
- int old_pair,
- int pair,
- NCURSES_BOOL reverse,
+ int old_pair,
+ int pair,
+ NCURSES_BOOL reverse,
int (*outc)(
int p1))
{ /* void */ }
#undef wcolor_set
int wcolor_set(
- WINDOW *win,
- short color_pair_number,
+ WINDOW *win,
+ short color_pair_number,
void *opts)
{ return(*(int *)0); }
#undef addchnstr
int addchnstr(
- const chtype *a1,
+ const chtype *a1,
int z)
{ return(*(int *)0); }
#undef addnstr
int addnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
#undef attr_get
int attr_get(
- attr_t *a1,
- short *a2,
+ attr_t *a1,
+ short *a2,
void *z)
{ return(*(int *)0); }
#undef attr_off
int attr_off(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_on
int attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef attr_set
int attr_set(
- attr_t a1,
- short a2,
+ attr_t a1,
+ short a2,
void *z)
{ return(*(int *)0); }
#undef border
int border(
- chtype a1,
- chtype a2,
- chtype a3,
- chtype a4,
- chtype a5,
- chtype a6,
- chtype a7,
+ chtype a1,
+ chtype a2,
+ chtype a3,
+ chtype a4,
+ chtype a5,
+ chtype a6,
+ chtype a7,
chtype z)
{ return(*(int *)0); }
#undef box
int box(
- WINDOW *a1,
- chtype a2,
+ WINDOW *a1,
+ chtype a2,
chtype z)
{ return(*(int *)0); }
#undef chgat
int chgat(
- int a1,
- attr_t a2,
- short a3,
+ int a1,
+ attr_t a2,
+ short a3,
const void *z)
{ return(*(int *)0); }
#undef color_set
int color_set(
- short a1,
+ short a1,
void *z)
{ return(*(int *)0); }
#undef getnstr
int getnstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
#undef hline
int hline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef inchnstr
int inchnstr(
- chtype *a1,
+ chtype *a1,
int z)
{ return(*(int *)0); }
#undef innstr
int innstr(
- char *a1,
+ char *a1,
int z)
{ return(*(int *)0); }
#undef insnstr
int insnstr(
- const char *a1,
+ const char *a1,
int z)
{ return(*(int *)0); }
#undef move
int move(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvaddch
int mvaddch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype z)
{ return(*(int *)0); }
#undef mvaddchnstr
int mvaddchnstr(
- int a1,
- int a2,
- const chtype *a3,
+ int a1,
+ int a2,
+ const chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvaddchstr
int mvaddchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const chtype *z)
{ return(*(int *)0); }
#undef mvaddnstr
int mvaddnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvaddstr
int mvaddstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvchgat
int mvchgat(
- int a1,
- int a2,
- int a3,
- attr_t a4,
- short a5,
+ int a1,
+ int a2,
+ int a3,
+ attr_t a4,
+ short a5,
const void *z)
{ return(*(int *)0); }
#undef mvdelch
int mvdelch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetch
int mvgetch(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef mvgetnstr
int mvgetnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvgetstr
int mvgetstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvhline
int mvhline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvinch
chtype mvinch(
- int a1,
+ int a1,
int z)
{ return(*(chtype *)0); }
#undef mvinchnstr
int mvinchnstr(
- int a1,
- int a2,
- chtype *a3,
+ int a1,
+ int a2,
+ chtype *a3,
int z)
{ return(*(int *)0); }
#undef mvinchstr
int mvinchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype *z)
{ return(*(int *)0); }
#undef mvinnstr
int mvinnstr(
- int a1,
- int a2,
- char *a3,
+ int a1,
+ int a2,
+ char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsch
int mvinsch(
- int a1,
- int a2,
+ int a1,
+ int a2,
chtype z)
{ return(*(int *)0); }
#undef mvinsnstr
int mvinsnstr(
- int a1,
- int a2,
- const char *a3,
+ int a1,
+ int a2,
+ const char *a3,
int z)
{ return(*(int *)0); }
#undef mvinsstr
int mvinsstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const char *z)
{ return(*(int *)0); }
#undef mvinstr
int mvinstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
char *z)
{ return(*(int *)0); }
#undef mvvline
int mvvline(
- int a1,
- int a2,
- chtype a3,
+ int a1,
+ int a2,
+ chtype a3,
int z)
{ return(*(int *)0); }
#undef mvwaddch
int mvwaddch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype z)
{ return(*(int *)0); }
#undef mvwaddchnstr
int mvwaddchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddchstr
int mvwaddchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const chtype *z)
{ return(*(int *)0); }
#undef mvwaddnstr
int mvwaddnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddstr
int mvwaddstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwchgat
int mvwchgat(
- WINDOW *a1,
- int a2,
- int a3,
- int a4,
- attr_t a5,
- short a6,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ int a4,
+ attr_t a5,
+ short a6,
const void *z)
{ return(*(int *)0); }
#undef mvwdelch
int mvwdelch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetch
int mvwgetch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef mvwgetnstr
int mvwgetnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwgetstr
int mvwgetstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwhline
int mvwhline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef mvwinch
chtype mvwinch(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(chtype *)0); }
#undef mvwinchnstr
int mvwinchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- chtype *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype *a4,
int z)
{ return(*(int *)0); }
#undef mvwinchstr
int mvwinchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype *z)
{ return(*(int *)0); }
#undef mvwinnstr
int mvwinnstr(
- WINDOW *a1,
- int a2,
- int a3,
- char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsch
int mvwinsch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
chtype z)
{ return(*(int *)0); }
#undef mvwinsnstr
int mvwinsnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const char *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const char *a4,
int z)
{ return(*(int *)0); }
#undef mvwinsstr
int mvwinsstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const char *z)
{ return(*(int *)0); }
#undef mvwinstr
int mvwinstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
char *z)
{ return(*(int *)0); }
#undef mvwvline
int mvwvline(
- WINDOW *a1,
- int a2,
- int a3,
- chtype a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ chtype a4,
int z)
{ return(*(int *)0); }
#undef setscrreg
int setscrreg(
- int a1,
+ int a1,
int z)
{ return(*(int *)0); }
#undef slk_attr_off
int slk_attr_off(
- const attr_t a1,
+ const attr_t a1,
void *z)
{ return(*(int *)0); }
#undef slk_attr_on
int slk_attr_on(
- attr_t a1,
+ attr_t a1,
void *z)
{ return(*(int *)0); }
#undef touchline
int touchline(
- WINDOW *a1,
- int a2,
+ WINDOW *a1,
+ int a2,
int z)
{ return(*(int *)0); }
#undef vline
int vline(
- chtype a1,
+ chtype a1,
int z)
{ return(*(int *)0); }
#undef vw_printw
int vw_printw(
- WINDOW *a1,
- const char *a2,
+ WINDOW *a1,
+ const char *a2,
va_list z)
{ return(*(int *)0); }
#undef vw_scanw
int vw_scanw(
- WINDOW *a1,
- char *a2,
+ WINDOW *a1,
+ char *a2,
va_list z)
{ return(*(int *)0); }
#undef waddchstr
int waddchstr(
- WINDOW *a1,
+ WINDOW *a1,
const chtype *z)
{ return(*(int *)0); }
#undef waddstr
int waddstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef wattron
int wattron(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattroff
int wattroff(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattrset
int wattrset(
- WINDOW *a1,
+ WINDOW *a1,
int z)
{ return(*(int *)0); }
#undef wattr_get
int wattr_get(
- WINDOW *a1,
- attr_t *a2,
- short *a3,
+ WINDOW *a1,
+ attr_t *a2,
+ short *a3,
void *z)
{ return(*(int *)0); }
#undef wattr_set
int wattr_set(
- WINDOW *a1,
- attr_t a2,
- short a3,
+ WINDOW *a1,
+ attr_t a2,
+ short a3,
void *z)
{ return(*(int *)0); }
#undef wgetstr
int wgetstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
#undef winchstr
int winchstr(
- WINDOW *a1,
+ WINDOW *a1,
chtype *z)
{ return(*(int *)0); }
#undef winsstr
int winsstr(
- WINDOW *a1,
+ WINDOW *a1,
const char *z)
{ return(*(int *)0); }
#undef winstr
int winstr(
- WINDOW *a1,
+ WINDOW *a1,
char *z)
{ return(*(int *)0); }
#undef add_wchnstr
int add_wchnstr(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
#undef addnwstr
int addnwstr(
- const wchar_t *a1,
+ const wchar_t *a1,
int z)
{ return(*(int *)0); }
#undef border_set
int border_set(
- const cchar_t *a1,
- const cchar_t *a2,
- const cchar_t *a3,
- const cchar_t *a4,
- const cchar_t *a5,
- const cchar_t *a6,
- const cchar_t *a7,
+ const cchar_t *a1,
+ const cchar_t *a2,
+ const cchar_t *a3,
+ const cchar_t *a4,
+ const cchar_t *a5,
+ const cchar_t *a6,
+ const cchar_t *a7,
const cchar_t *z)
{ return(*(int *)0); }
#undef box_set
int box_set(
- WINDOW *a1,
- const cchar_t *a2,
+ WINDOW *a1,
+ const cchar_t *a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef getn_wstr
int getn_wstr(
- wint_t *a1,
+ wint_t *a1,
int z)
{ return(*(int *)0); }
#undef hline_set
int hline_set(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
#undef in_wchnstr
int in_wchnstr(
- cchar_t *a1,
+ cchar_t *a1,
int z)
{ return(*(int *)0); }
#undef innwstr
int innwstr(
- wchar_t *a1,
+ wchar_t *a1,
int z)
{ return(*(int *)0); }
#undef ins_nwstr
int ins_nwstr(
- const wchar_t *a1,
+ const wchar_t *a1,
int z)
{ return(*(int *)0); }
#undef mvadd_wch
int mvadd_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvadd_wchnstr
int mvadd_wchnstr(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvadd_wchstr
int mvadd_wchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvaddnwstr
int mvaddnwstr(
- int a1,
- int a2,
- const wchar_t *a3,
+ int a1,
+ int a2,
+ const wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvaddwstr
int mvaddwstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvget_wch
int mvget_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
wint_t *z)
{ return(*(int *)0); }
#undef mvget_wstr
int mvget_wstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
wint_t *z)
{ return(*(int *)0); }
#undef mvgetn_wstr
int mvgetn_wstr(
- int a1,
- int a2,
- wint_t *a3,
+ int a1,
+ int a2,
+ wint_t *a3,
int z)
{ return(*(int *)0); }
#undef mvhline_set
int mvhline_set(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvin_wch
int mvin_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
cchar_t *z)
{ return(*(int *)0); }
#undef mvin_wchnstr
int mvin_wchnstr(
- int a1,
- int a2,
- cchar_t *a3,
+ int a1,
+ int a2,
+ cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvin_wchstr
int mvin_wchstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
cchar_t *z)
{ return(*(int *)0); }
#undef mvinnwstr
int mvinnwstr(
- int a1,
- int a2,
- wchar_t *a3,
+ int a1,
+ int a2,
+ wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvins_nwstr
int mvins_nwstr(
- int a1,
- int a2,
- const wchar_t *a3,
+ int a1,
+ int a2,
+ const wchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvins_wch
int mvins_wch(
- int a1,
- int a2,
+ int a1,
+ int a2,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvins_wstr
int mvins_wstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvinwstr
int mvinwstr(
- int a1,
- int a2,
+ int a1,
+ int a2,
wchar_t *z)
{ return(*(int *)0); }
#undef mvvline_set
int mvvline_set(
- int a1,
- int a2,
- const cchar_t *a3,
+ int a1,
+ int a2,
+ const cchar_t *a3,
int z)
{ return(*(int *)0); }
#undef mvwadd_wch
int mvwadd_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwadd_wchnstr
int mvwadd_wchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwadd_wchstr
int mvwadd_wchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwaddnwstr
int mvwaddnwstr(
- WINDOW *a1,
- int a2,
- int a3,
- const wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwaddwstr
int mvwaddwstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvwget_wch
int mvwget_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wint_t *z)
{ return(*(int *)0); }
#undef mvwget_wstr
int mvwget_wstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wint_t *z)
{ return(*(int *)0); }
#undef mvwgetn_wstr
int mvwgetn_wstr(
- WINDOW *a1,
- int a2,
- int a3,
- wint_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ wint_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwhline_set
int mvwhline_set(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwin_wch
int mvwin_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
cchar_t *z)
{ return(*(int *)0); }
#undef mvwin_wchnstr
int mvwin_wchnstr(
- WINDOW *a1,
- int a2,
- int a3,
- cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwin_wchstr
int mvwin_wchstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
cchar_t *z)
{ return(*(int *)0); }
#undef mvwinnwstr
int mvwinnwstr(
- WINDOW *a1,
- int a2,
- int a3,
- wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwins_nwstr
int mvwins_nwstr(
- WINDOW *a1,
- int a2,
- int a3,
- const wchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const wchar_t *a4,
int z)
{ return(*(int *)0); }
#undef mvwins_wch
int mvwins_wch(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const cchar_t *z)
{ return(*(int *)0); }
#undef mvwins_wstr
int mvwins_wstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
const wchar_t *z)
{ return(*(int *)0); }
#undef mvwinwstr
int mvwinwstr(
- WINDOW *a1,
- int a2,
- int a3,
+ WINDOW *a1,
+ int a2,
+ int a3,
wchar_t *z)
{ return(*(int *)0); }
#undef mvwvline_set
int mvwvline_set(
- WINDOW *a1,
- int a2,
- int a3,
- const cchar_t *a4,
+ WINDOW *a1,
+ int a2,
+ int a3,
+ const cchar_t *a4,
int z)
{ return(*(int *)0); }
#undef vline_set
int vline_set(
- const cchar_t *a1,
+ const cchar_t *a1,
int z)
{ return(*(int *)0); }
#undef wadd_wchstr
int wadd_wchstr(
- WINDOW *a1,
+ WINDOW *a1,
const cchar_t *z)
{ return(*(int *)0); }
#undef waddwstr
int waddwstr(
- WINDOW *a1,
+ WINDOW *a1,
const wchar_t *z)
{ return(*(int *)0); }
#undef wget_wstr
int wget_wstr(
- WINDOW *a1,
+ WINDOW *a1,
wint_t *z)
{ return(*(int *)0); }
#undef win_wchstr
int win_wchstr(
- WINDOW *a1,
+ WINDOW *a1,
cchar_t *z)
{ return(*(int *)0); }
#undef wins_wstr
int wins_wstr(
- WINDOW *a1,
+ WINDOW *a1,
const wchar_t *z)
{ return(*(int *)0); }
#undef mouse_trafo
-NCURSES_BOOL mouse_trafo(
- int *a1,
- int *a2,
- NCURSES_BOOL z)
+NCURSES_BOOL mouse_trafo(
+ int *a1,
+ int *a2,
+ NCURSES_BOOL z)
{ return(*(NCURSES_BOOL *)0); }
/* ./base/lib_getch.c */
#undef _nc_wgetch
int _nc_wgetch(
- WINDOW *win,
- unsigned long *result,
+ WINDOW *win,
+ unsigned long *result,
int use_meta)
{ return(*(int *)0); }
#undef wgetnstr
int wgetnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int maxlen)
{ return(*(int *)0); }
#undef whline
int whline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
#undef immedok
void immedok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef winchnstr
int winchnstr(
- WINDOW *win,
- chtype *str,
+ WINDOW *win,
+ chtype *str,
int n)
{ return(*(int *)0); }
/* ./base/lib_insch.c */
#undef _nc_insert_ch
-void _nc_insert_ch(
- WINDOW *win,
+int _nc_insert_ch(
+ WINDOW *win,
chtype ch)
- { /* void */ }
+ { return(*(int *)0); }
#undef winsch
int winsch(
- WINDOW *win,
+ WINDOW *win,
chtype c)
{ return(*(int *)0); }
-#undef winsnstr
-int winsnstr(
- WINDOW *win,
- const char *s,
- int n)
- { return(*(int *)0); }
-
/* ./base/lib_insdel.c */
#undef winsdelln
int winsdelln(
- WINDOW *win,
+ WINDOW *win,
+ int n)
+ { return(*(int *)0); }
+
+/* ./base/lib_insnstr.c */
+
+#undef winsnstr
+int winsnstr(
+ WINDOW *win,
+ const char *s,
int n)
{ return(*(int *)0); }
#undef winnstr
int winnstr(
- WINDOW *win,
- char *str,
+ WINDOW *win,
+ char *str,
int n)
{ return(*(int *)0); }
#undef leaveok
int leaveok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef mousemask
mmask_t mousemask(
- mmask_t newmask,
+ mmask_t newmask,
mmask_t *oldmask)
{ return(*(mmask_t *)0); }
#undef wenclose
NCURSES_BOOL wenclose(
- const WINDOW *win,
- int y,
+ const WINDOW *win,
+ int y,
int x)
{ return(*(NCURSES_BOOL *)0); }
#undef wmouse_trafo
NCURSES_BOOL wmouse_trafo(
- const WINDOW *win,
- int *pY,
- int *pX,
+ const WINDOW *win,
+ int *pY,
+ int *pX,
NCURSES_BOOL to_screen)
{ return(*(NCURSES_BOOL *)0); }
#undef wmove
int wmove(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef _nc_msec_cost
int _nc_msec_cost(
- const char *const cap,
+ const char *const cap,
int affcnt)
{ return(*(int *)0); }
#undef mvcur
int mvcur(
- int yold,
- int xold,
- int ynew,
+ int yold,
+ int xold,
+ int ynew,
int xnew)
{ return(*(int *)0); }
#undef mvwin
int mvwin(
- WINDOW *win,
- int by,
+ WINDOW *win,
+ int by,
int bx)
{ return(*(int *)0); }
#undef newterm
SCREEN *newterm(
- char *name,
- FILE *ofp,
+ char *name,
+ FILE *ofp,
FILE *ifp)
{ return(*(SCREEN **)0); }
#undef newwin
WINDOW *newwin(
- int num_lines,
- int num_columns,
- int begy,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef derwin
WINDOW *derwin(
- WINDOW *orig,
- int num_lines,
- int num_columns,
- int begy,
+ WINDOW *orig,
+ int num_lines,
+ int num_columns,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef subwin
WINDOW *subwin(
- WINDOW *w,
- int l,
- int c,
- int y,
+ WINDOW *w,
+ int l,
+ int c,
+ int y,
int x)
{ return(*(WINDOW **)0); }
#undef _nc_makenew
WINDOW *_nc_makenew(
- int num_lines,
- int num_columns,
- int begy,
- int begx,
+ int num_lines,
+ int num_columns,
+ int begy,
+ int begx,
int flags)
{ return(*(WINDOW **)0); }
#undef overlay
int overlay(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef overwrite
int overwrite(
- const WINDOW *win1,
+ const WINDOW *win1,
WINDOW *win2)
{ return(*(int *)0); }
#undef copywin
int copywin(
- const WINDOW *src,
- WINDOW *dst,
- int sminrow,
- int smincol,
- int dminrow,
- int dmincol,
- int dmaxrow,
- int dmaxcol,
+ const WINDOW *src,
+ WINDOW *dst,
+ int sminrow,
+ int smincol,
+ int dminrow,
+ int dmincol,
+ int dmaxrow,
+ int dmaxcol,
int over)
{ return(*(int *)0); }
#undef newpad
WINDOW *newpad(
- int l,
+ int l,
int c)
{ return(*(WINDOW **)0); }
#undef subpad
WINDOW *subpad(
- WINDOW *orig,
- int l,
- int c,
- int begy,
+ WINDOW *orig,
+ int l,
+ int c,
+ int begy,
int begx)
{ return(*(WINDOW **)0); }
#undef prefresh
int prefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pnoutrefresh
int pnoutrefresh(
- WINDOW *win,
- int pminrow,
- int pmincol,
- int sminrow,
- int smincol,
- int smaxrow,
+ WINDOW *win,
+ int pminrow,
+ int pmincol,
+ int sminrow,
+ int smincol,
+ int smaxrow,
int smaxcol)
{ return(*(int *)0); }
#undef pechochar
int pechochar(
- WINDOW *pad,
+ WINDOW *pad,
const chtype ch)
{ return(*(int *)0); }
#undef printw
int printw(
- const char *fmt,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef wprintw
int wprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvprintw
int mvprintw(
- int y,
- int x,
- const char *fmt,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef mvwprintw
int mvwprintw(
- WINDOW *win,
- int y,
- int x,
- const char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ const char *fmt,
...)
{ return(*(int *)0); }
#undef vwprintw
int vwprintw(
- WINDOW *win,
- const char *fmt,
+ WINDOW *win,
+ const char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef wredrawln
int wredrawln(
- WINDOW *win,
- int beg,
+ WINDOW *win,
+ int beg,
int num)
{ return(*(int *)0); }
#undef restartterm
int restartterm(
- char *termp,
- int filenum,
+ char *termp,
+ int filenum,
int *errret)
{ return(*(int *)0); }
#undef vwscanw
int vwscanw(
- WINDOW *win,
- char *fmt,
+ WINDOW *win,
+ char *fmt,
va_list argp)
{ return(*(int *)0); }
#undef scanw
int scanw(
- char *fmt,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef wscanw
int wscanw(
- WINDOW *win,
- char *fmt,
+ WINDOW *win,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef mvscanw
int mvscanw(
- int y,
- int x,
- char *fmt,
+ int y,
+ int x,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef mvwscanw
int mvwscanw(
- WINDOW *win,
- int y,
- int x,
- char *fmt,
+ WINDOW *win,
+ int y,
+ int x,
+ char *fmt,
...)
{ return(*(int *)0); }
#undef putwin
int putwin(
- WINDOW *win,
+ WINDOW *win,
FILE *filep)
{ return(*(int *)0); }
#undef _nc_scroll_window
void _nc_scroll_window(
- WINDOW *win,
- int const n,
- short const top,
- short const bottom,
+ WINDOW *win,
+ int const n,
+ short const top,
+ short const bottom,
cchar_t blank)
{ /* void */ }
#undef wscrl
int wscrl(
- WINDOW *win,
+ WINDOW *win,
int n)
{ return(*(int *)0); }
#undef scrollok
int scrollok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef wsetscrreg
int wsetscrreg(
- WINDOW *win,
- int top,
+ WINDOW *win,
+ int top,
int bottom)
{ return(*(int *)0); }
#undef _nc_setupscreen
int _nc_setupscreen(
- short slines,
- short const scolumns,
+ short slines,
+ short const scolumns,
FILE *output)
{ return(*(int *)0); }
#undef _nc_ripoffline
int _nc_ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef ripoffline
int ripoffline(
- int line,
+ int line,
int (*init)(
- WINDOW *p1,
+ WINDOW *p1,
int p2))
{ return(*(int *)0); }
#undef _nc_slk_initialize
int _nc_slk_initialize(
- WINDOW *stwin,
+ WINDOW *stwin,
int cols)
{ return(*(int *)0); }
#undef slk_attr_set
int slk_attr_set(
- const attr_t attr,
- short color_pair_number,
+ const attr_t attr,
+ short color_pair_number,
void *opts)
{ return(*(int *)0); }
/* ./base/lib_slkset.c */
+#include <wctype.h>
+
#undef slk_set
int slk_set(
- int i,
- const char *astr,
+ int i,
+ const char *astr,
int format)
{ return(*(int *)0); }
#undef is_linetouched
NCURSES_BOOL is_linetouched(
- WINDOW *win,
+ WINDOW *win,
int line)
{ return(*(NCURSES_BOOL *)0); }
#undef wtouchln
int wtouchln(
- WINDOW *win,
- int y,
- int n,
+ WINDOW *win,
+ int y,
+ int n,
int changed)
{ return(*(int *)0); }
#undef _traceattr2
char *_traceattr2(
- int bufnum,
+ int bufnum,
attr_t newmode)
{ return(*(char **)0); }
#undef _nc_altcharset_name
const char *_nc_altcharset_name(
- attr_t attr,
+ attr_t attr,
chtype ch)
{ return(*(const char **)0); }
#undef _tracechtype2
char *_tracechtype2(
- int bufnum,
+ int bufnum,
chtype ch)
{ return(*(char **)0); }
#undef _tracecchar_t2
char *_tracecchar_t2(
- int bufnum,
+ int bufnum,
const cchar_t *ch)
{ return(*(char **)0); }
#undef _tracedump
void _tracedump(
- const char *name,
+ const char *name,
WINDOW *win)
{ /* void */ }
#undef vidputs
int vidputs(
- chtype newmode,
+ chtype newmode,
int (*outc)(
int p1))
{ return(*(int *)0); }
#undef wvline
int wvline(
- WINDOW *win,
- chtype ch,
+ WINDOW *win,
+ chtype ch,
int n)
{ return(*(int *)0); }
#undef wattr_off
int wattr_off(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
#undef wattr_on
int wattr_on(
- WINDOW *win,
- attr_t at,
+ WINDOW *win,
+ attr_t at,
void *opts)
{ return(*(int *)0); }
#undef mvderwin
int mvderwin(
- WINDOW *win,
- int y,
+ WINDOW *win,
+ int y,
int x)
{ return(*(int *)0); }
#undef syncok
int syncok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL bf)
{ return(*(int *)0); }
#undef _nc_printf_string
char *_nc_printf_string(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
#undef _nc_scrolln
int _nc_scrolln(
- int n,
- int top,
- int bot,
+ int n,
+ int top,
+ int bot,
int maxy)
{ return(*(int *)0); }
/* ./trace/varargs.c */
+typedef enum {
+ atUnknown = 0, atInteger, atFloat, atPoint, atString
+} ARGTYPE;
+
#undef _nc_varargs
char *_nc_varargs(
- const char *fmt,
+ const char *fmt,
va_list ap)
{ return(*(char **)0); }
#undef wadd_wch
int wadd_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wecho_wchar
int wecho_wchar(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wborder_set
int wborder_set(
- WINDOW *win,
- const cchar_t *ls,
- const cchar_t *rs,
- const cchar_t *ts,
- const cchar_t *bs,
- const cchar_t *tl,
- const cchar_t *tr,
- const cchar_t *bl,
+ WINDOW *win,
+ const cchar_t *ls,
+ const cchar_t *rs,
+ const cchar_t *ts,
+ const cchar_t *bs,
+ const cchar_t *tl,
+ const cchar_t *tr,
+ const cchar_t *bl,
const cchar_t *br)
{ return(*(int *)0); }
#undef setcchar
int setcchar(
- cchar_t *wcval,
- const wchar_t *wch,
- const attr_t attrs,
- short color_pair,
+ cchar_t *wcval,
+ const wchar_t *wch,
+ const attr_t attrs,
+ short color_pair,
const void *opts)
{ return(*(int *)0); }
#undef getcchar
int getcchar(
- const cchar_t *wcval,
- wchar_t *wch,
- attr_t *attrs,
- short *color_pair,
+ const cchar_t *wcval,
+ wchar_t *wch,
+ attr_t *attrs,
+ short *color_pair,
void *opts)
{ return(*(int *)0); }
#undef wget_wch
int wget_wch(
- WINDOW *win,
+ WINDOW *win,
wint_t *result)
{ return(*(int *)0); }
#undef wgetn_wstr
int wgetn_wstr(
- WINDOW *win,
- wint_t *str,
+ WINDOW *win,
+ wint_t *str,
int maxlen)
{ return(*(int *)0); }
#undef whline_set
int whline_set(
- WINDOW *win,
- const cchar_t *ch,
+ WINDOW *win,
+ const cchar_t *ch,
int n)
{ return(*(int *)0); }
#undef win_wch
int win_wch(
- WINDOW *win,
+ WINDOW *win,
cchar_t *wcval)
{ return(*(int *)0); }
#undef win_wchnstr
int win_wchnstr(
- WINDOW *win,
- cchar_t *wchstr,
+ WINDOW *win,
+ cchar_t *wchstr,
int n)
{ return(*(int *)0); }
#undef wins_wch
int wins_wch(
- WINDOW *win,
+ WINDOW *win,
const cchar_t *wch)
{ return(*(int *)0); }
#undef wins_nwstr
int wins_nwstr(
- WINDOW *win,
- const wchar_t *wstr,
+ WINDOW *win,
+ const wchar_t *wstr,
int n)
{ return(*(int *)0); }
#undef winnwstr
int winnwstr(
- WINDOW *win,
- wchar_t *wstr,
+ WINDOW *win,
+ wchar_t *wstr,
int n)
{ return(*(int *)0); }
#undef winwstr
int winwstr(
- WINDOW *win,
+ WINDOW *win,
wchar_t *wstr)
{ return(*(int *)0); }
#undef pecho_wchar
int pecho_wchar(
- WINDOW *pad,
+ WINDOW *pad,
const cchar_t *wch)
{ return(*(int *)0); }
#undef slk_wset
int slk_wset(
- int i,
- const wchar_t *astr,
+ int i,
+ const wchar_t *astr,
int format)
{ return(*(int *)0); }
/* ./widechar/lib_unget_wch.c */
+#undef _nc_wcrtomb
+size_t _nc_wcrtomb(
+ char *target,
+ wchar_t source,
+ mbstate_t *state)
+ { return(*(size_t *)0); }
+
#undef unget_wch
int unget_wch(
const wchar_t wch)
#undef vid_puts
int vid_puts(
- attr_t newmode,
- short pair,
- void *opts,
+ attr_t newmode,
+ short pair,
+ void *opts,
int (*outc)(
int p1))
{ return(*(int *)0); }
#undef vid_attr
int vid_attr(
- attr_t newmode,
- short pair,
+ attr_t newmode,
+ short pair,
void *opts)
{ return(*(int *)0); }
#undef wvline_set
int wvline_set(
- WINDOW *win,
- const cchar_t *ch,
+ WINDOW *win,
+ const cchar_t *ch,
int n)
{ return(*(int *)0); }
cchar_t *wc)
{ return(*(wchar_t **)0); }
-/* ./base/define_key.c */
-
-#undef define_key
-int define_key(
- const char *str,
- int keycode)
- { return(*(int *)0); }
-
/* ./expanded.c */
#undef _nc_toggle_attr_on
void _nc_toggle_attr_on(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_toggle_attr_off
void _nc_toggle_attr_off(
- attr_t *S,
+ attr_t *S,
attr_t at)
{ /* void */ }
#undef _nc_UpdateAttrs
void _nc_UpdateAttrs(
- chtype c)
+ cchar_t c)
{ /* void */ }
-/* ./base/key_defined.c */
-
-#undef key_defined
-int key_defined(
- const char *str)
- { return(*(int *)0); }
-
-/* ./base/keybound.c */
-
-#undef keybound
-char *keybound(
- int code,
- int count)
- { return(*(char **)0); }
-
-/* ./base/keyok.c */
-
-#undef keyok
-int keyok(
- int c,
- NCURSES_BOOL flag)
- { return(*(int *)0); }
-
/* ./base/lib_dft_fgbg.c */
#undef use_default_colors
#undef assume_default_colors
int assume_default_colors(
- int fg,
+ int fg,
int bg)
{ return(*(int *)0); }
#undef mcprint
int mcprint(
- char *data,
+ char *data,
int len)
{ return(*(int *)0); }
#undef is_term_resized
NCURSES_BOOL is_term_resized(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(NCURSES_BOOL *)0); }
#undef resize_term
int resize_term(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
#undef resizeterm
int resizeterm(
- int ToLines,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
TERMTYPE *tp)
{ /* void */ }
-/* ./base/tries.c */
-
-#undef _nc_expand_try
-char *_nc_expand_try(
- struct tries *tree,
- unsigned short code,
- int *count,
- size_t len)
- { return(*(char **)0); }
-
-#undef _nc_remove_key
-int _nc_remove_key(
- struct tries **tree,
- unsigned short code)
- { return(*(int *)0); }
-
-#undef _nc_remove_string
-int _nc_remove_string(
- struct tries **tree,
- const char *string)
- { return(*(int *)0); }
-
-/* ./base/version.c */
-
-#undef curses_version
-const char *curses_version(void)
- { return(*(const char **)0); }
-
/* ./base/wresize.c */
#undef wresize
int wresize(
- WINDOW *win,
- int ToLines,
+ WINDOW *win,
+ int ToLines,
int ToCols)
{ return(*(int *)0); }
/* ./tinfo/access.c */
+#include <nc_alloc.h>
+
#undef _nc_rootname
char *_nc_rootname(
char *path)
#undef _nc_access
int _nc_access(
- const char *path,
+ const char *path,
int mode)
{ return(*(int *)0); }
#undef _nc_add_to_try
void _nc_add_to_try(
- struct tries **tree,
- const char *str,
+ struct tries **tree,
+ const char *str,
unsigned short code)
{ /* void */ }
#undef _nc_wrap_entry
void _nc_wrap_entry(
- ENTRY *const ep,
+ ENTRY *const ep,
NCURSES_BOOL copy_strings)
{ /* void */ }
#undef _nc_merge_entry
void _nc_merge_entry(
- TERMTYPE *const to,
+ TERMTYPE *const to,
TERMTYPE *const from)
{ /* void */ }
#undef _nc_align_termtype
void _nc_align_termtype(
- TERMTYPE *to,
+ TERMTYPE *to,
TERMTYPE *from)
{ /* void */ }
#undef _nc_copy_termtype
void _nc_copy_termtype(
- TERMTYPE *dst,
+ TERMTYPE *dst,
TERMTYPE *src)
{ /* void */ }
#undef _nc_captoinfo
char *_nc_captoinfo(
- const char *cap,
- const char *s,
+ const char *cap,
+ const char *s,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_infotocap
char *_nc_infotocap(
- const char *cap,
- const char *str,
+ const char *cap,
+ const char *str,
int const parameterized)
{ return(*(char **)0); }
#undef _nc_warning
void _nc_warning(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_err_abort
void _nc_err_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_syserr_abort
void _nc_syserr_abort(
- const char *const fmt,
+ const char *const fmt,
...)
{ /* void */ }
#undef _nc_tic_expand
char *_nc_tic_expand(
- const char *srcp,
- NCURSES_BOOL tic_format,
+ const char *srcp,
+ NCURSES_BOOL tic_format,
int numbers)
{ return(*(char **)0); }
#undef _nc_find_entry
struct name_table_entry const *_nc_find_entry(
- const char *string,
+ const char *string,
const struct name_table_entry *const *hash_table)
{ return(*(struct name_table_entry const **)0); }
#undef _nc_find_type_entry
struct name_table_entry const *_nc_find_type_entry(
- const char *string,
- int type,
+ const char *string,
+ int type,
const struct name_table_entry *table)
{ return(*(struct name_table_entry const **)0); }
/* ./tinfo/comp_parse.c */
+#undef _nc_check_termtype2
+void (*_nc_check_termtype2)(
+ TERMTYPE *p1,
+ NCURSES_BOOL p2);
#undef _nc_check_termtype
void (*_nc_check_termtype)(
TERMTYPE *p1);
ENTRY *headp)
{ /* void */ }
+#undef _nc_delink_entry
+ENTRY *_nc_delink_entry(
+ ENTRY *headp,
+ TERMTYPE *tterm)
+ { return(*(ENTRY **)0); }
+
+#undef _nc_free_entry
+void _nc_free_entry(
+ ENTRY *headp,
+ TERMTYPE *tterm)
+ { /* void */ }
+
#undef _nc_entry_match
NCURSES_BOOL _nc_entry_match(
- char *n1,
+ char *n1,
char *n2)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_read_entry_source
void _nc_read_entry_source(
- FILE *fp,
- char *buf,
- int literal,
- NCURSES_BOOL silent,
+ FILE *fp,
+ char *buf,
+ int literal,
+ NCURSES_BOOL silent,
NCURSES_BOOL (*hook)(
ENTRY *p1))
{ /* void */ }
+#undef _nc_resolve_uses2
+int _nc_resolve_uses2(
+ NCURSES_BOOL fullresolve,
+ NCURSES_BOOL literal)
+ { return(*(int *)0); }
+
#undef _nc_resolve_uses
int _nc_resolve_uses(
NCURSES_BOOL fullresolve)
#undef _nc_disable_period
NCURSES_BOOL _nc_disable_period;
+#undef _nc_reset_input
+void _nc_reset_input(
+ FILE *fp,
+ char *buf)
+ { /* void */ }
+
#undef _nc_get_token
int _nc_get_token(
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_trans_string
-char _nc_trans_string(
- char *ptr,
+int _nc_trans_string(
+ char *ptr,
char *last)
- { return(*(char *)0); }
+ { return(*(int *)0); }
#undef _nc_push_token
void _nc_push_token(
char ch)
{ /* void */ }
-#undef _nc_reset_input
-void _nc_reset_input(
- FILE *fp,
- char *buf)
- { /* void */ }
-
/* ./tinfo/doalloc.c */
#undef _nc_doalloc
void *_nc_doalloc(
- void *oldp,
+ void *oldp,
size_t amount)
{ return(*(void **)0); }
#include <termcap.h>
+struct speed {
+ int s;
+ int sp;
+};
+
#undef _nc_baudrate
int _nc_baudrate(
int OSpeed)
#undef idlok
int idlok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef idcok
void idcok(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ /* void */ }
#undef nodelay
int nodelay(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef notimeout
int notimeout(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL f)
{ return(*(int *)0); }
#undef wtimeout
void wtimeout(
- WINDOW *win,
+ WINDOW *win,
int delay)
{ /* void */ }
#undef keypad
int keypad(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef meta
int meta(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
#undef intrflush
int intrflush(
- WINDOW *win,
+ WINDOW *win,
NCURSES_BOOL flag)
{ return(*(int *)0); }
/* ./tinfo/lib_setup.c */
+#include <locale.h>
#include <sys/ioctl.h>
+#include <langinfo.h>
#undef ttytype
char ttytype[256];
int _nc_locale_breaks_acs(void)
{ return(*(int *)0); }
+#undef _nc_setupterm
+int _nc_setupterm(
+ char *tname,
+ int Filedes,
+ int *errret,
+ NCURSES_BOOL reuse)
+ { return(*(int *)0); }
+
#undef setupterm
int setupterm(
- char *tname,
- int Filedes,
+ char *tname,
+ int Filedes,
int *errret)
{ return(*(int *)0); }
#undef tgetent
int tgetent(
- char *bufp,
+ char *bufp,
const char *name)
{ return(*(int *)0); }
#undef tgetstr
char *tgetstr(
- char *id,
+ char *id,
char **area)
{ return(*(char **)0); }
#undef tgoto
char *tgoto(
- const char *string,
- int x,
+ const char *string,
+ int x,
int y)
{ return(*(char **)0); }
/* ./tinfo/lib_tparm.c */
+typedef struct {
+ union {
+ int num;
+ char *str;
+ } data;
+ NCURSES_BOOL num_type;
+} stack_frame;
+
#undef _nc_tparm_err
int _nc_tparm_err;
#undef _nc_tparm_analyze
int _nc_tparm_analyze(
- const char *string,
- char *p_is_s[9],
+ const char *string,
+ char *p_is_s[9],
int *popcount)
{ return(*(int *)0); }
#undef tparm
char *tparm(
- char *string,
+ char *string,
...)
{ return(*(char **)0); }
#undef tputs
int tputs(
- const char *string,
- int affcnt,
+ const char *string,
+ int affcnt,
int (*outc)(
int p1))
{ return(*(int *)0); }
#undef _tracef
void _tracef(
- const char *fmt,
+ const char *fmt,
...)
{ /* void */ }
char *code)
{ return(*(char **)0); }
+#undef _nc_retrace_cptr
+const char *_nc_retrace_cptr(
+ const char *code)
+ { return(*(const char **)0); }
+
+#undef _nc_retrace_cvoid_ptr
+void *_nc_retrace_cvoid_ptr(
+ void *code)
+ { return(*(void **)0); }
+
+#undef _nc_retrace_void_ptr
+void *_nc_retrace_void_ptr(
+ void *code)
+ { return(*(void **)0); }
+
#undef _nc_retrace_sp
SCREEN *_nc_retrace_sp(
SCREEN *code)
/* ./trace/lib_tracebits.c */
+typedef struct {
+ unsigned int val;
+ const char *name;
+} BITNAMES;
+
#undef _nc_trace_ttymode
char *_nc_trace_ttymode(
struct termios *tty)
#undef _nc_timed_wait
int _nc_timed_wait(
- int mode,
- int milliseconds,
+ int mode,
+ int milliseconds,
int *timeleft)
{ return(*(int *)0); }
#undef _nc_name_match
int _nc_name_match(
- const char *const namelst,
- const char *const name,
+ const char *const namelst,
+ const char *const name,
const char *const delim)
{ return(*(int *)0); }
#undef _nc_parse_entry
int _nc_parse_entry(
- struct entry *entryp,
- int literal,
+ struct entry *entryp,
+ int literal,
NCURSES_BOOL silent)
{ return(*(int *)0); }
#undef _nc_capcmp
int _nc_capcmp(
- const char *s,
+ const char *s,
const char *t)
{ return(*(int *)0); }
+typedef struct {
+ const char *from;
+ const char *to;
+} assoc;
+
/* ./tinfo/read_entry.c */
#undef _nc_tic_dir
#undef _nc_read_file_entry
int _nc_read_file_entry(
- const char *const filename,
+ const char *const filename,
TERMTYPE *ptr)
{ return(*(int *)0); }
#undef _nc_read_entry
int _nc_read_entry(
- const char *const tn,
- char *const filename,
+ const char *const tn,
+ char *const filename,
TERMTYPE *const tp)
{ return(*(int *)0); }
/* ./tinfo/read_termcap.c */
+#include <sys/types.h>
+#include <sys/stat.h>
+
#undef _nc_read_termcap_entry
int _nc_read_termcap_entry(
- const char *const tn,
+ const char *const tn,
TERMTYPE *const tp)
{ return(*(int *)0); }
#undef _nc_set_buffer
void _nc_set_buffer(
- FILE *ofp,
+ FILE *ofp,
NCURSES_BOOL buffered)
{ /* void */ }
#undef _nc_str_init
string_desc *_nc_str_init(
- string_desc *dst,
- char *src,
+ string_desc *dst,
+ char *src,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_null
string_desc *_nc_str_null(
- string_desc *dst,
+ string_desc *dst,
size_t len)
{ return(*(string_desc **)0); }
#undef _nc_str_copy
string_desc *_nc_str_copy(
- string_desc *dst,
+ string_desc *dst,
string_desc *src)
{ return(*(string_desc **)0); }
#undef _nc_safe_strcat
NCURSES_BOOL _nc_safe_strcat(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
#undef _nc_safe_strcpy
NCURSES_BOOL _nc_safe_strcpy(
- string_desc *dst,
+ string_desc *dst,
const char *src)
{ return(*(NCURSES_BOOL *)0); }
/* ./trace/trace_buf.c */
+typedef struct {
+ char *text;
+ size_t size;
+} LIST;
+
#undef _nc_trace_buf
char *_nc_trace_buf(
- int bufnum,
+ int bufnum,
size_t want)
{ return(*(char **)0); }
#undef _nc_trace_bufcat
char *_nc_trace_bufcat(
- int bufnum,
+ int bufnum,
const char *value)
{ return(*(char **)0); }
struct tries *tree)
{ /* void */ }
+/* ./base/tries.c */
+
+#undef _nc_expand_try
+char *_nc_expand_try(
+ struct tries *tree,
+ unsigned short code,
+ int *count,
+ size_t len)
+ { return(*(char **)0); }
+
+#undef _nc_remove_key
+int _nc_remove_key(
+ struct tries **tree,
+ unsigned short code)
+ { return(*(int *)0); }
+
+#undef _nc_remove_string
+int _nc_remove_string(
+ struct tries **tree,
+ const char *string)
+ { return(*(int *)0); }
+
+/* ./tinfo/trim_sgr0.c */
+
+#undef _nc_trim_sgr0
+char *_nc_trim_sgr0(
+ TERMTYPE *tp)
+ { return(*(char **)0); }
+
/* ./unctrl.c */
#undef unctrl
#undef _nc_visbuf2
const char *_nc_visbuf2(
- int bufnum,
+ int bufnum,
const char *buf)
{ return(*(const char **)0); }
#undef _nc_visbufn
const char *_nc_visbufn(
- const char *buf,
+ const char *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viswbuf2
const char *_nc_viswbuf2(
- int bufnum,
+ int bufnum,
const wchar_t *buf)
{ return(*(const char **)0); }
#undef _nc_viswbufn
const char *_nc_viswbufn(
- const wchar_t *buf,
+ const wchar_t *buf,
int len)
{ return(*(const char **)0); }
+#undef _nc_viswibuf
+const char *_nc_viswibuf(
+ const wint_t *buf)
+ { return(*(const char **)0); }
+
#undef _nc_viscbuf2
const char *_nc_viscbuf2(
- int bufnum,
- const cchar_t *buf,
+ int bufnum,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_viscbuf
const char *_nc_viscbuf(
- const cchar_t *buf,
+ const cchar_t *buf,
int len)
{ return(*(const char **)0); }
#undef _nc_tic_written
int _nc_tic_written(void)
{ return(*(int *)0); }
+
+/* ./base/define_key.c */
+
+#undef define_key
+int define_key(
+ const char *str,
+ int keycode)
+ { return(*(int *)0); }
+
+/* ./base/key_defined.c */
+
+#undef key_defined
+int key_defined(
+ const char *str)
+ { return(*(int *)0); }
+
+/* ./base/keybound.c */
+
+#undef keybound
+char *keybound(
+ int code,
+ int count)
+ { return(*(char **)0); }
+
+/* ./base/keyok.c */
+
+#undef keyok
+int keyok(
+ int c,
+ NCURSES_BOOL flag)
+ { return(*(int *)0); }
+
+/* ./base/version.c */
+
+#undef curses_version
+const char *curses_version(void)
+ { return(*(const char **)0); }
-# $Id: modules,v 1.100 2004/01/10 19:08:23 tom Exp $
+# $Id: modules,v 1.104 2005/08/20 20:02:44 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2004,2005 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"), #
lib_initscr lib $(base) $(INCDIR)/tic.h
lib_insch lib $(base)
lib_insdel lib $(base)
+lib_insnstr lib $(base)
lib_instr lib $(base)
lib_isendwin lib $(base)
lib_leaveok lib $(base)
lib_slkset lib $(base)
lib_slktouch lib $(base)
lib_touch lib $(base)
-lib_traceatr lib $(trace) ../include/term.h
lib_tracedmp lib $(trace)
lib_tracemse lib $(trace)
lib_tstp lib $(serial) $(srcdir)/SigAction.h
# Extensions to the base library
@ ext_funcs
-define_key lib $(base)
expanded lib .
-key_defined lib $(base)
-keybound lib $(base)
-keyok lib $(base)
lib_dft_fgbg lib $(base) ../include/term.h
lib_print lib $(tinfo) ../include/term.h
resizeterm lib $(base) ../include/term.h
trace_xnames lib $(trace) ../include/term.h $(INCDIR)/term_entry.h
-tries lib $(base)
wresize lib $(base) ../include/term.h
# Support for termcap (and tic, etc.), which can be a separate library
lib_tparm lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
lib_tputs lib $(tinfo) ../include/term.h $(INCDIR)/tic.h
lib_trace lib $(trace) $(INCDIR)/tic.h
+lib_traceatr lib $(trace) ../include/term.h
lib_tracebits lib $(trace) ../include/term.h
lib_tracechr lib $(trace)
lib_ttyflags lib $(tinfo) ../include/term.h
strings lib $(tinfo)
trace_buf lib $(trace)
trace_tries lib $(trace)
+tries lib $(base)
+trim_sgr0 lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
unctrl lib .
visbuf lib $(trace) $(INCDIR)/tic.h
write_entry lib $(tinfo) ../include/term.h $(INCDIR)/term_entry.h $(INCDIR)/tic.h
# Extensions to the termlib library
@ ext_tinfo
+define_key lib $(base)
+key_defined lib $(base)
+keybound lib $(base)
+keyok lib $(base)
version lib $(base)
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-2003 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <tic.h>
#include <term_entry.h>
-MODULE_ID("$Id: alloc_entry.c,v 1.40 2003/11/08 21:29:54 tom Exp $")
+MODULE_ID("$Id: alloc_entry.c,v 1.45 2005/06/04 22:07:53 tom Exp $")
#define ABSENT_OFFSET -1
#define CANCELLED_OFFSET -2
static size_t next_free; /* next free character in stringbuf */
NCURSES_EXPORT(void)
-_nc_init_entry(TERMTYPE * const tp)
+_nc_init_entry(TERMTYPE *const tp)
/* initialize a terminal type data block */
{
unsigned i;
+#if NO_LEAKS
+ if (tp == 0 && stringbuf != 0) {
+ FreeAndNull(stringbuf);
+ return;
+ }
+#endif
+
if (stringbuf == 0)
stringbuf = (char *) malloc(MAX_STRTAB);
return newp;
}
+/* save a copy of string in the string buffer */
NCURSES_EXPORT(char *)
_nc_save_str(const char *const string)
-/* save a copy of string in the string buffer */
{
+ char *result = 0;
size_t old_next_free = next_free;
size_t len = strlen(string) + 1;
- if (next_free + len < MAX_STRTAB) {
+ if (len == 1 && next_free != 0) {
+ /*
+ * Cheat a little by making an empty string point to the end of the
+ * previous string.
+ */
+ if (next_free < MAX_STRTAB) {
+ result = (stringbuf + next_free - 1);
+ }
+ } else if (next_free + len < MAX_STRTAB) {
strcpy(&stringbuf[next_free], string);
DEBUG(7, ("Saved string %s", _nc_visbuf(string)));
DEBUG(7, ("at location %d", (int) next_free));
next_free += len;
+ result = (stringbuf + old_next_free);
+ } else {
+ _nc_warning("Too much data, some is lost");
}
- return (stringbuf + old_next_free);
+ return result;
}
NCURSES_EXPORT(void)
}
NCURSES_EXPORT(void)
-_nc_merge_entry(TERMTYPE * const to, TERMTYPE * const from)
+_nc_merge_entry(TERMTYPE *const to, TERMTYPE *const from)
/* merge capabilities from `from' entry into `to' entry */
{
unsigned i;
_nc_align_termtype(to, from);
#endif
for_each_boolean(i, from) {
- if (to->Booleans[i] != CANCELLED_BOOLEAN) {
+ if (to->Booleans[i] != (char) CANCELLED_BOOLEAN) {
int mergebool = from->Booleans[i];
if (mergebool == CANCELLED_BOOLEAN)
}
}
}
+
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_alloc_entry_leaks(void)
+{
+ FreeAndNull(stringbuf);
+ next_free = 0;
+}
+#endif
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <ctype.h>
#include <tic.h>
-MODULE_ID("$Id: captoinfo.c,v 1.45 2003/11/08 21:28:04 tom Exp $")
+MODULE_ID("$Id: captoinfo.c,v 1.47 2005/06/04 22:06:43 tom Exp $")
#define MAX_PUSHED 16 /* max # args we can push onto the stack */
* % translations if 1
* pad translations if >=0
*/
-char *
+NCURSES_EXPORT(char *)
_nc_captoinfo(const char *cap, const char *s, int const parameterized)
{
const char *capstart;
* Convert a terminfo string to termcap format. Parameters are as in
* _nc_captoinfo().
*/
-char *
+NCURSES_EXPORT(char *)
_nc_infotocap(const char *cap GCC_UNUSED, const char *str, int const parameterized)
{
int seenone = 0, seentwo = 0, saw_m = 0, saw_n = 0;
--str;
} else if (str[0] == '%' && str[1] == '%') { /* escaped '%' */
bufptr = save_string(bufptr, "%%");
+ ++str;
} else if (*str != '%' || (parameterized < 1)) {
bufptr = save_char(bufptr, *str);
} else if (sscanf(str, "%%?%%{%d}%%>%%t%%{%d}%%+%%;", &c1, &c2) == 2) {
}
#endif /* MAIN */
-/* captoinfo.c ends here */
+#if NO_LEAKS
+NCURSES_EXPORT(void)
+_nc_captoinfo_leaks(void)
+{
+ FreeAndNull(my_string);
+ my_length = 0;
+}
+#endif
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <tic.h>
-MODULE_ID("$Id: comp_error.c,v 1.25 2002/09/07 20:05:07 tom Exp $")
+MODULE_ID("$Id: comp_error.c,v 1.29 2005/08/20 19:22:36 tom Exp $")
NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE;
NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */
static const char *sourcename;
static char *termtype;
+NCURSES_EXPORT(const char *)
+_nc_get_source(void)
+{
+ return sourcename;
+}
+
NCURSES_EXPORT(void)
_nc_set_source(const char *const name)
{
NCURSES_EXPORT(void)
_nc_get_type(char *name)
{
- strcpy(name, termtype != 0 ? termtype : "");
+#if NO_LEAKS
+ if (name == 0 && termtype != 0) {
+ FreeAndNull(termtype);
+ return;
+ }
+#endif
+ if (name != 0)
+ strcpy(name, termtype != 0 ? termtype : "");
}
static inline void
/****************************************************************************
- * Copyright (c) 1998,2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
*
*/
+#define USE_TERMLIB 1
#include <curses.priv.h>
#include <tic.h>
#define DEBUG(level, params) /*nothing */
#endif
-MODULE_ID("$Id: comp_hash.c,v 1.26 2003/11/08 21:58:36 tom Exp $")
+MODULE_ID("$Id: comp_hash.c,v 1.28 2005/08/20 19:58:18 tom Exp $")
static int hash_function(const char *);
*
*/
-static
-int
+static int
hash_function(const char *string)
{
long sum = 0;
#ifndef MAIN_PROGRAM
NCURSES_EXPORT(struct name_table_entry const *)
-_nc_find_entry
-(const char *string, const struct name_table_entry *const *hash_table)
+_nc_find_entry(const char *string,
+ const struct name_table_entry *const *hash_table)
{
int hashvalue;
struct name_table_entry const *ptr;
*/
NCURSES_EXPORT(struct name_table_entry const *)
-_nc_find_type_entry
-(const char *string,
- int type,
- const struct name_table_entry *table)
+_nc_find_type_entry(const char *string,
+ int type,
+ const struct name_table_entry *table)
{
struct name_table_entry const *ptr;
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
* comp_parse.c -- parser driver loop and use handling.
*
* _nc_read_entry_source(FILE *, literal, bool, bool (*hook)())
- * _nc_resolve_uses(void)
+ * _nc_resolve_uses2(void)
* _nc_free_entries(void)
*
* Use this code by calling _nc_read_entry_source() on as many source
* files as you like (either terminfo or termcap syntax). If you
- * want use-resolution, call _nc_resolve_uses(). To free the list
+ * want use-resolution, call _nc_resolve_uses2(). To free the list
* storage, do _nc_free_entries().
*
*/
#include <tic.h>
#include <term_entry.h>
-MODULE_ID("$Id: comp_parse.c,v 1.57 2003/10/25 22:25:36 tom Exp $")
+MODULE_ID("$Id: comp_parse.c,v 1.60 2005/06/04 21:42:44 tom Exp $")
+static void sanity_check2(TERMTYPE *, bool);
+NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype2) (TERMTYPE *, bool) = sanity_check2;
+
+/* obsolete: 20040705 */
static void sanity_check(TERMTYPE *);
NCURSES_IMPEXP void NCURSES_API(*_nc_check_termtype) (TERMTYPE *) = sanity_check;
_nc_free_entries(ENTRY * headp)
/* free the allocated storage consumed by list entries */
{
- ENTRY *ep, *next;
+ while (_nc_head != 0) {
+ _nc_free_entry(headp, &(headp->tterm));
+ }
+}
- for (ep = headp; ep; ep = next) {
- /*
- * This conditional lets us disconnect storage from the list.
- * To do this, copy an entry out of the list, then null out
- * the string-table member in the original and any use entries
- * it references.
- */
- FreeIfNeeded(ep->tterm.str_table);
+NCURSES_EXPORT(ENTRY *)
+_nc_delink_entry(ENTRY * headp, TERMTYPE *tterm)
+/* delink the allocated storage for the given list entry */
+{
+ ENTRY *ep, *last;
+
+ for (last = 0, ep = headp; ep != 0; last = ep, ep = ep->next) {
+ if (&(ep->tterm) == tterm) {
+ if (last != 0)
+ last->next = ep->next;
+ else
+ headp = ep->next;
+ if (ep == _nc_head)
+ _nc_head = 0;
+ if (ep == _nc_tail)
+ _nc_tail = 0;
+ break;
+ }
+ }
+ return ep;
+}
- next = ep->next;
+NCURSES_EXPORT(void)
+_nc_free_entry(ENTRY * headp, TERMTYPE *tterm)
+/* free the allocated storage consumed by the given list entry */
+{
+ ENTRY *ep;
+ if ((ep = _nc_delink_entry(headp, tterm)) != 0) {
+ _nc_free_termtype(&(ep->tterm));
free(ep);
- if (ep == _nc_head)
- _nc_head = 0;
- if (ep == _nc_tail)
- _nc_tail = 0;
}
}
* use references to disk, so as to avoid chewing up a lot of
* core when the resolution code could fetch entries off disk.
*/
- if (hook != NULLHOOK && (*hook) (&thisentry))
+ if (hook != NULLHOOK && (*hook) (&thisentry)) {
immediate++;
- else
+ } else {
enqueue(&thisentry);
+ FreeIfNeeded(thisentry.tterm.Booleans);
+ FreeIfNeeded(thisentry.tterm.Numbers);
+ FreeIfNeeded(thisentry.tterm.Strings);
+ }
}
if (_nc_tail) {
}
NCURSES_EXPORT(int)
-_nc_resolve_uses(bool fullresolve)
+_nc_resolve_uses2(bool fullresolve, bool literal)
/* try to resolve all use capabilities */
{
ENTRY *qp, *rp, *lastread = 0;
for_entry_list(qp) {
_nc_curr_line = qp->startline;
_nc_set_type(_nc_first_name(qp->tterm.term_names));
- _nc_check_termtype(&qp->tterm);
+ _nc_check_termtype2(&qp->tterm, literal);
}
DEBUG(2, ("SANITY CHECK FINISHED"));
}
return (TRUE);
}
+/* obsolete: 20040705 */
+NCURSES_EXPORT(int)
+_nc_resolve_uses(bool fullresolve)
+{
+ return _nc_resolve_uses2(fullresolve, FALSE);
+}
+
/*
* This bit of legerdemain turns all the terminfo variable names into
* references to locations in the arrays Booleans, Numbers, and Strings ---
#define CUR tp->
static void
-sanity_check(TERMTYPE * tp)
+sanity_check2(TERMTYPE *tp, bool literal)
{
if (!PRESENT(exit_attribute_mode)) {
#ifdef __UNUSED__ /* this casts too wide a net */
/* we do this check/fix in postprocess_termcap(), but some packagers
* prefer to bypass it...
*/
- if (acs_chars == 0
- && enter_alt_charset_mode != 0
- && exit_alt_charset_mode != 0)
- acs_chars = strdup(VT_ACSC);
+ if (!literal) {
+ if (acs_chars == 0
+ && enter_alt_charset_mode != 0
+ && exit_alt_charset_mode != 0)
+ acs_chars = strdup(VT_ACSC);
+ ANDMISSING(enter_alt_charset_mode, acs_chars);
+ ANDMISSING(exit_alt_charset_mode, acs_chars);
+ }
/* listed in structure-member order of first argument */
PAIRED(enter_alt_charset_mode, exit_alt_charset_mode);
- ANDMISSING(enter_alt_charset_mode, acs_chars);
- ANDMISSING(exit_alt_charset_mode, acs_chars);
ANDMISSING(enter_blink_mode, exit_attribute_mode);
ANDMISSING(enter_bold_mode, exit_attribute_mode);
PAIRED(exit_ca_mode, enter_ca_mode);
#endif
ANDMISSING(set_color_pair, initialize_pair);
}
+
+/* obsolete: 20040705 */
+static void
+sanity_check(TERMTYPE *tp)
+{
+ sanity_check2(tp, FALSE);
+}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996 on *
****************************************************************************/
/*
#include <term_entry.h>
#include <tic.h>
-MODULE_ID("$Id: comp_scan.c,v 1.66 2003/12/14 00:32:40 tom Exp $")
+MODULE_ID("$Id: comp_scan.c,v 1.76 2005/06/04 22:04:45 tom Exp $")
/*
* Maximum length of string capability we'll accept before raising an error.
_nc_disable_period = FALSE; /* used by tic -a option */
#endif
-static bool end_of_stream(void);
-static int last_char(void);
-static int next_char(void);
-static long stream_pos(void);
-static void push_back(char c);
+/*****************************************************************************
+ *
+ * Character-stream handling
+ *
+ *****************************************************************************/
+
+#define LEXBUFSIZ 1024
+
+static char *bufptr; /* otherwise, the input buffer pointer */
+static char *bufstart; /* start of buffer so we can compute offsets */
+static FILE *yyin; /* scanner's input file descriptor */
+
+/*
+ * _nc_reset_input()
+ *
+ * Resets the input-reading routines. Used on initialization,
+ * or after a seek has been done. Exactly one argument must be
+ * non-null.
+ */
+
+NCURSES_EXPORT(void)
+_nc_reset_input(FILE *fp, char *buf)
+{
+ pushtype = NO_PUSHBACK;
+ if (pushname != 0)
+ pushname[0] = '\0';
+ yyin = fp;
+ bufstart = bufptr = buf;
+ _nc_curr_file_pos = 0L;
+ if (fp != 0)
+ _nc_curr_line = 0;
+ _nc_curr_col = 0;
+}
+
+/*
+ * int last_char()
+ *
+ * Returns the final nonblank character on the current input buffer
+ */
+static int
+last_char(void)
+{
+ size_t len = strlen(bufptr);
+ while (len--) {
+ if (!isspace(UChar(bufptr[len])))
+ return bufptr[len];
+ }
+ return 0;
+}
+
+/*
+ * int next_char()
+ *
+ * Returns the next character in the input stream. Comments and leading
+ * white space are stripped.
+ *
+ * The global state variable 'firstcolumn' is set TRUE if the character
+ * returned is from the first column of the input line.
+ *
+ * The global variable _nc_curr_line is incremented for each new line.
+ * The global variable _nc_curr_file_pos is set to the file offset of the
+ * beginning of each line.
+ */
+
+static int
+next_char(void)
+{
+ static char *result;
+ static size_t allocated;
+ int the_char;
+
+ if (!yyin) {
+ if (result != 0) {
+ FreeAndNull(result);
+ FreeAndNull(pushname);
+ allocated = 0;
+ }
+ /*
+ * An string with an embedded null will truncate the input. This is
+ * intentional (we don't read binary files here).
+ */
+ if (bufptr == 0 || *bufptr == '\0')
+ return (EOF);
+ if (*bufptr == '\n') {
+ _nc_curr_line++;
+ _nc_curr_col = 0;
+ } else if (*bufptr == '\t') {
+ _nc_curr_col = (_nc_curr_col | 7);
+ }
+ } else if (!bufptr || !*bufptr) {
+ /*
+ * In theory this could be recoded to do its I/O one character at a
+ * time, saving the buffer space. In practice, this turns out to be
+ * quite hard to get completely right. Try it and see. If you
+ * succeed, don't forget to hack push_back() correspondingly.
+ */
+ size_t used;
+ size_t len;
+
+ do {
+ bufstart = 0;
+ used = 0;
+ do {
+ if (used + (LEXBUFSIZ / 4) >= allocated) {
+ allocated += (allocated + LEXBUFSIZ);
+ result = typeRealloc(char, allocated, result);
+ if (result == 0)
+ return (EOF);
+ }
+ if (used == 0)
+ _nc_curr_file_pos = ftell(yyin);
+
+ if (fgets(result + used, (int) (allocated - used), yyin) != 0) {
+ bufstart = result;
+ if (used == 0) {
+ _nc_curr_line++;
+ _nc_curr_col = 0;
+ }
+ } else {
+ if (used != 0)
+ strcat(result, "\n");
+ }
+ if ((bufptr = bufstart) != 0) {
+ used = strlen(bufptr);
+ while (iswhite(*bufptr)) {
+ if (*bufptr == '\t') {
+ _nc_curr_col = (_nc_curr_col | 7) + 1;
+ } else {
+ _nc_curr_col++;
+ }
+ bufptr++;
+ }
+
+ /*
+ * Treat a trailing <cr><lf> the same as a <newline> so we
+ * can read files on OS/2, etc.
+ */
+ if ((len = strlen(bufptr)) > 1) {
+ if (bufptr[len - 1] == '\n'
+ && bufptr[len - 2] == '\r') {
+ len--;
+ bufptr[len - 1] = '\n';
+ bufptr[len] = '\0';
+ }
+ }
+ } else {
+ return (EOF);
+ }
+ } while (bufptr[len - 1] != '\n'); /* complete a line */
+ } while (result[0] == '#'); /* ignore comments */
+ } else if (*bufptr == '\t') {
+ _nc_curr_col = (_nc_curr_col | 7);
+ }
+
+ first_column = (bufptr == bufstart);
+ if (first_column)
+ had_newline = FALSE;
+
+ _nc_curr_col++;
+ the_char = *bufptr++;
+ return UChar(the_char);
+}
+
+static void
+push_back(char c)
+/* push a character back onto the input stream */
+{
+ if (bufptr == bufstart)
+ _nc_syserr_abort("Can't backspace off beginning of line");
+ *--bufptr = c;
+ _nc_curr_col--;
+}
+
+static long
+stream_pos(void)
+/* return our current character position in the input stream */
+{
+ return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
+}
+
+static bool
+end_of_stream(void)
+/* are we at end of input? */
+{
+ return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
+ ? TRUE : FALSE);
+}
/* Assume we may be looking at a termcap-style continuation */
static inline int
long number;
long token_start;
unsigned found;
+#ifdef TRACE
+ int old_line;
+ int old_col;
+#endif
if (pushtype != NO_PUSHBACK) {
int retval = pushtype;
}
if (end_of_stream()) {
+ yyin = 0;
+ next_char(); /* frees its allocated memory */
if (buffer != 0) {
+ if (_nc_curr_token.tk_name == buffer)
+ _nc_curr_token.tk_name = 0;
FreeAndNull(buffer);
}
return (EOF);
ch = eat_escaped_newline(ch);
+#ifdef TRACE
+ old_line = _nc_curr_line;
+ old_col = _nc_curr_col;
+#endif
if (ch == EOF)
type = EOF;
else {
}
/* have to make some punctuation chars legal for terminfo */
- if (!isalnum(ch)
+ if (!isalnum(UChar(ch))
#if NCURSES_EXT_FUNCS
&& !(ch == '.' && _nc_disable_period)
#endif
&& !strchr(terminfo_punct, (char) ch)) {
if (!silent)
- _nc_warning("Illegal character (expected alphanumeric or %s) - %s",
+ _nc_warning("Illegal character (expected alphanumeric or %s) - '%s'",
terminfo_punct, unctrl((chtype) ch));
_nc_panic_mode(separator);
goto start_token;
if (buffer == 0)
buffer = typeMalloc(char, MAX_ENTRY_SIZE);
+#ifdef TRACE
+ old_line = _nc_curr_line;
+ old_col = _nc_curr_col;
+#endif
ptr = buffer;
*(ptr++) = ch;
after_list = 0;
while ((ch = next_char()) != '\n') {
if (ch == EOF) {
- _nc_err_abort(MSG_NO_MEMORY);
+ _nc_err_abort(MSG_NO_INPUTS);
} else if (ch == '|') {
after_list = ptr;
if (after_name == 0)
had_newline = FALSE;
}
while ((ch = next_char()) != EOF) {
- if (!isalnum(ch)) {
+ if (!isalnum(UChar(ch))) {
if (_nc_syntax == SYN_TERMINFO) {
if (ch != '_')
break;
/* just to get rid of the compiler warning */
type = UNDEF;
if (!silent)
- _nc_warning("Illegal character - %s", unctrl((chtype) ch));
+ _nc_warning("Illegal character - '%s'", unctrl((chtype) ch));
}
} /* end else (first_column == FALSE) */
} /* end else (ch != EOF) */
if (dot_flag == TRUE)
DEBUG(8, ("Commented out "));
+ if (_nc_tracing >= DEBUG_LEVEL(8)) {
+ _tracef("parsed %d.%d to %d.%d",
+ old_line, old_col,
+ _nc_curr_line, _nc_curr_col);
+ }
if (_nc_tracing >= DEBUG_LEVEL(7)) {
switch (type) {
case BOOLEAN:
type = _nc_get_token(silent);
DEBUG(3, ("token: `%s', class %d",
- _nc_curr_token.tk_name != 0 ? _nc_curr_token.tk_name :
- "<null>",
+ ((_nc_curr_token.tk_name != 0)
+ ? _nc_curr_token.tk_name
+ : "<null>"),
type));
return (type);
*
*/
-NCURSES_EXPORT(char)
+NCURSES_EXPORT(int)
_nc_trans_string(char *ptr, char *last)
{
int count = 0;
_nc_err_abort(MSG_NO_INPUTS);
if (!(is7bits(ch) && isprint(ch))) {
- _nc_warning("Illegal ^ character - %s", unctrl(ch));
+ _nc_warning("Illegal ^ character - '%s'", unctrl(ch));
}
if (ch == '?') {
*(ptr++) = '\177';
continue;
default:
- _nc_warning("Illegal character %s in \\ sequence",
+ _nc_warning("Illegal character '%s' in \\ sequence",
unctrl(ch));
/* FALLTHRU */
case '|':
}
/* end else if (ch == '\\') */
else if (ch == '\n' && (_nc_syntax == SYN_TERMINFO)) {
- /* newlines embedded in a terminfo string are ignored */
+ /*
+ * Newlines embedded in a terminfo string are ignored, provided
+ * that the next line begins with whitespace.
+ */
ignored = TRUE;
} else {
*(ptr++) = (char) ch;
}
if (!ignored) {
+ if (_nc_curr_col <= 1) {
+ push_back(ch);
+ ch = '\n';
+ break;
+ }
last_ch = ch;
count++;
}
_nc_get_type(pushname);
DEBUG(3, ("pushing token: `%s', class %d",
- _nc_curr_token.tk_name, pushtype));
+ ((_nc_curr_token.tk_name != 0)
+ ? _nc_curr_token.tk_name
+ : "<null>"),
+ pushtype));
}
/*
}
}
-/*****************************************************************************
- *
- * Character-stream handling
- *
- *****************************************************************************/
-
-#define LEXBUFSIZ 1024
-
-static char *bufptr; /* otherwise, the input buffer pointer */
-static char *bufstart; /* start of buffer so we can compute offsets */
-static FILE *yyin; /* scanner's input file descriptor */
-
-/*
- * _nc_reset_input()
- *
- * Resets the input-reading routines. Used on initialization,
- * or after a seek has been done. Exactly one argument must be
- * non-null.
- */
-
+#if NO_LEAKS
NCURSES_EXPORT(void)
-_nc_reset_input(FILE *fp, char *buf)
+_nc_comp_scan_leaks(void)
{
- pushtype = NO_PUSHBACK;
- if (pushname != 0)
- pushname[0] = '\0';
- yyin = fp;
- bufstart = bufptr = buf;
- _nc_curr_file_pos = 0L;
- if (fp != 0)
- _nc_curr_line = 0;
- _nc_curr_col = 0;
-}
-
-/*
- * int last_char()
- *
- * Returns the final nonblank character on the current input buffer
- */
-static int
-last_char(void)
-{
- size_t len = strlen(bufptr);
- while (len--) {
- if (!isspace(UChar(bufptr[len])))
- return bufptr[len];
- }
- return 0;
-}
-
-/*
- * int next_char()
- *
- * Returns the next character in the input stream. Comments and leading
- * white space are stripped.
- *
- * The global state variable 'firstcolumn' is set TRUE if the character
- * returned is from the first column of the input line.
- *
- * The global variable _nc_curr_line is incremented for each new line.
- * The global variable _nc_curr_file_pos is set to the file offset of the
- * beginning of each line.
- */
-
-static int
-next_char(void)
-{
- if (!yyin) {
- /*
- * An string with an embedded null will truncate the input. This is
- * intentional (we don't read binary files here).
- */
- if (*bufptr == '\0')
- return (EOF);
- if (*bufptr == '\n') {
- _nc_curr_line++;
- _nc_curr_col = 0;
- }
- } else if (!bufptr || !*bufptr) {
- /*
- * In theory this could be recoded to do its I/O one character at a
- * time, saving the buffer space. In practice, this turns out to be
- * quite hard to get completely right. Try it and see. If you
- * succeed, don't forget to hack push_back() correspondingly.
- */
- static char *result;
- static size_t allocated;
- size_t used;
- size_t len;
-
- do {
- bufstart = 0;
- used = 0;
- do {
- if (used + (LEXBUFSIZ / 4) >= allocated) {
- allocated += (allocated + LEXBUFSIZ);
- result = typeRealloc(char, allocated, result);
- if (result == 0)
- return (EOF);
- }
- if (used == 0)
- _nc_curr_file_pos = ftell(yyin);
-
- if (fgets(result + used, allocated - used, yyin) != 0) {
- bufstart = result;
- if (used == 0) {
- _nc_curr_line++;
- _nc_curr_col = 0;
- }
- } else {
- if (used != 0)
- strcat(result, "\n");
- }
- if ((bufptr = bufstart) != 0) {
- used = strlen(bufptr);
- while (iswhite(*bufptr))
- bufptr++;
-
- /*
- * Treat a trailing <cr><lf> the same as a <newline> so we
- * can read files on OS/2, etc.
- */
- if ((len = strlen(bufptr)) > 1) {
- if (bufptr[len - 1] == '\n'
- && bufptr[len - 2] == '\r') {
- len--;
- bufptr[len - 1] = '\n';
- bufptr[len] = '\0';
- }
- }
- } else {
- return (EOF);
- }
- } while (bufptr[len - 1] != '\n'); /* complete a line */
- } while (result[0] == '#'); /* ignore comments */
- }
-
- first_column = (bufptr == bufstart);
- if (first_column)
- had_newline = FALSE;
-
- _nc_curr_col++;
- return (*bufptr++);
-}
-
-static void
-push_back(char c)
-/* push a character back onto the input stream */
-{
- if (bufptr == bufstart)
- _nc_syserr_abort("Can't backspace off beginning of line");
- *--bufptr = c;
-}
-
-static long
-stream_pos(void)
-/* return our current character position in the input stream */
-{
- return (yyin ? ftell(yyin) : (bufptr ? bufptr - bufstart : 0));
-}
-
-static bool
-end_of_stream(void)
-/* are we at end of input? */
-{
- return ((yyin ? feof(yyin) : (bufptr && *bufptr == '\0'))
- ? TRUE : FALSE);
+ FreeAndNull(pushname);
}
+#endif
/****************************************************************************
- * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <tic.h>
#include <term_entry.h>
-MODULE_ID("$Id: free_ttype.c,v 1.10 2003/08/09 21:22:03 tom Exp $")
+MODULE_ID("$Id: free_ttype.c,v 1.11 2005/06/04 21:54:50 tom Exp $")
NCURSES_EXPORT(void)
-_nc_free_termtype(TERMTYPE * ptr)
+_nc_free_termtype(TERMTYPE *ptr)
{
T(("_nc_free_termtype(%s)", ptr->term_names));
FreeIfNeeded(ptr->ext_Names);
#endif
memset(ptr, 0, sizeof(TERMTYPE));
+ _nc_free_entry(_nc_head, ptr);
}
#if NCURSES_XNAMES
/****************************************************************************
- * Copyright (c) 1998-2002,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 1998,2000,2004 *
+ * Author: Thomas E. Dickey 1998,2000,2004,2005 *
****************************************************************************/
/*
#include <curses.priv.h>
#include <tic.h>
-MODULE_ID("$Id: home_terminfo.c,v 1.8 2004/01/14 02:18:16 tom Exp $")
+MODULE_ID("$Id: home_terminfo.c,v 1.9 2005/07/02 19:43:38 tom Exp $")
#define my_length (strlen(home) + sizeof(PRIVATE_INFO))
NCURSES_EXPORT(char *)
_nc_home_terminfo(void)
{
+ char *result = 0;
#ifdef USE_HOME_TERMINFO
char *home;
static char *temp = 0;
(void) sprintf(temp, PRIVATE_INFO, home);
}
}
- return temp;
+ result = temp;
}
#endif
- return 0;
+ return result;
}
/****************************************************************************
- * Copyright (c) 1999,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-#include <term.h> /* keypad_xmit, keypad_local, meta_on, meta_off */
- /* cursor_visible,cursor_normal,cursor_invisible */
+#include <term.h>
+/* keypad_xmit, keypad_local, meta_on, meta_off */
+/* cursor_visible,cursor_normal,cursor_invisible */
+
#include <tic.h> /* struct tinfo_fkeys */
-MODULE_ID("$Id: init_keytry.c,v 1.5 2000/12/10 02:55:07 tom Exp $")
+#include <term_entry.h>
+
+MODULE_ID("$Id: init_keytry.c,v 1.7 2005/04/30 19:32:03 tom Exp $")
/*
** _nc_init_keytry()
* mouse_activate() (which will call keyok()) are first called.
*/
- for (n = 0; _nc_tinfo_fkeys[n].code; n++)
- if (_nc_tinfo_fkeys[n].offset < STRCOUNT)
- _nc_add_to_try(&(SP->_keytry),
- CUR Strings[_nc_tinfo_fkeys[n].offset],
- _nc_tinfo_fkeys[n].code);
+ if (SP != 0) {
+ for (n = 0; _nc_tinfo_fkeys[n].code; n++) {
+ if (_nc_tinfo_fkeys[n].offset < STRCOUNT) {
+ _nc_add_to_try(&(SP->_keytry),
+ CUR Strings[_nc_tinfo_fkeys[n].offset],
+ _nc_tinfo_fkeys[n].code);
+ }
+ }
+#if NCURSES_XNAMES
+ /*
+ * Add any of the extended strings to the tries if their name begins
+ * with 'k', i.e., they follow the convention of other terminfo key
+ * names.
+ */
+ {
+ TERMTYPE *tp = &(SP->_term->type);
+ for (n = STRCOUNT; n < NUM_STRINGS(tp); ++n) {
+ char *name = ExtStrname(tp, n, strnames);
+ char *value = tp->Strings[n];
+ if (name != 0
+ && *name == 'k'
+ && value != 0
+ && key_defined(value) == 0) {
+ _nc_add_to_try(&(SP->_keytry),
+ value,
+ n - STRCOUNT + KEY_MAX);
+ }
+ }
+ }
+#endif
#ifdef TRACE
- _nc_trace_tries(SP->_keytry);
+ _nc_trace_tries(SP->_keytry);
#endif
+ }
}
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2004 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
#include <curses.priv.h>
#include <term.h> /* ena_acs, acs_chars */
-MODULE_ID("$Id: lib_acs.c,v 1.25 2002/12/28 16:26:46 tom Exp $")
+MODULE_ID("$Id: lib_acs.c,v 1.27 2004/10/16 15:42:40 tom Exp $")
#if BROKEN_LINKER
NCURSES_EXPORT_VAR(chtype *)
for (j = 1; j < ACS_LEN; ++j) {
real_map[j] = 0;
fake_map[j] = A_ALTCHARSET | j;
+ SP->_screen_acs_map[j] = FALSE;
}
} else {
for (j = 1; j < ACS_LEN; ++j) {
if (_nc_unicode_locale() && _nc_locale_breaks_acs()) {
acs_chars = NULL;
ena_acs = NULL;
+ enter_alt_charset_mode = NULL;
+ exit_alt_charset_mode = NULL;
+ set_attributes = NULL;
}
#endif
while (i + 1 < length) {
if (acs_chars[i] != 0 && UChar(acs_chars[i]) < ACS_LEN) {
real_map[UChar(acs_chars[i])] = UChar(acs_chars[i + 1]) | A_ALTCHARSET;
+ if (SP != 0)
+ SP->_screen_acs_map[UChar(acs_chars[i])] = TRUE;
}
i += 2;
}
}
}
show[m] = 0;
+ if (acs_chars == NULL || strcmp(acs_chars, show))
+ _tracef("%s acs_chars %s",
+ (acs_chars == NULL) ? "NULL" : "READ",
+ _nc_visbuf(acs_chars));
_tracef("%s acs_chars %s",
(acs_chars == NULL)
? "NULL"
/****************************************************************************
- * Copyright (c) 1998,1999,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_data.c,v 1.16 2000/12/10 02:55:07 tom Exp $")
+MODULE_ID("$Id: lib_data.c,v 1.17 2005/01/22 17:39:22 tom Exp $")
/*
* OS/2's native linker complains if we don't initialize public data when
* constructing a dll (reported by J.J.G.Ripoll).
*/
-NCURSES_EXPORT_VAR(WINDOW *)
-stdscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *)
-curscr = 0;
-NCURSES_EXPORT_VAR(WINDOW *)
-newscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *) stdscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *) curscr = 0;
+NCURSES_EXPORT_VAR(WINDOW *) newscr = 0;
NCURSES_EXPORT_VAR(SCREEN *) _nc_screen_chain = 0;
* module coupling that increases the size of the executable.
*/
#if BROKEN_LINKER
- static SCREEN *my_screen;
+static SCREEN *my_screen;
NCURSES_EXPORT(SCREEN *)
_nc_screen(void)
}
NCURSES_EXPORT(void)
-_nc_set_screen(SCREEN * sp)
+_nc_set_screen(SCREEN *sp)
{
my_screen = sp;
}
#else
-NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
+NCURSES_EXPORT_VAR(SCREEN *) SP = NULL; /* Some linkers require initialized data... */
#endif
/****************************************************************************
- * Copyright (c) 1998-2000,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
#include <term.h> /* cur_term */
-MODULE_ID("$Id: lib_kernel.c,v 1.23 2003/01/26 00:24:53 tom Exp $")
+MODULE_ID("$Id: lib_kernel.c,v 1.24 2004/05/08 17:11:21 tom Exp $")
static int
_nc_vdisable(void)
{
int value = -1;
-#if defined(_POSIX_VDISABLE) && defined(HAVE_UNISTD_H)
+#if defined(_POSIX_VDISABLE) && HAVE_UNISTD_H
value = _POSIX_VDISABLE;
#endif
#if defined(_PC_VDISABLE)
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
#endif
#endif
-MODULE_ID("$Id: lib_napms.c,v 1.14 2003/11/30 00:54:29 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_napms.c,v 1.15 2005/04/03 13:58:14 tom Exp $")
NCURSES_EXPORT(int)
napms(int ms)
#if HAVE_NANOSLEEP
{
struct timespec request, remaining;
- int err;
request.tv_sec = ms / 1000;
request.tv_nsec = (ms % 1000) * 1000000;
- while ((err = nanosleep(&request, &remaining)) == -1
+ while (nanosleep(&request, &remaining) == -1
&& errno == EINTR) {
request = remaining;
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-2003 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <term.h>
-MODULE_ID("$Id: lib_options.c,v 1.47 2003/10/25 19:51:38 tom Exp $")
+MODULE_ID("$Id: lib_options.c,v 1.48 2005/01/22 21:13:34 tom Exp $")
NCURSES_EXPORT(int)
idlok(WINDOW *win, bool flag)
NCURSES_EXPORT(int)
curs_set(int vis)
{
- int cursor = SP->_cursor;
+ int result = ERR;
T((T_CALLED("curs_set(%d)"), vis));
-
- if (vis < 0 || vis > 2)
- returnCode(ERR);
-
- if (vis == cursor)
- returnCode(cursor);
-
- switch (vis) {
- case 2:
- if (cursor_visible) {
- TPUTS_TRACE("cursor_visible");
- putp(cursor_visible);
- } else
- returnCode(ERR);
- break;
- case 1:
- if (cursor_normal) {
- TPUTS_TRACE("cursor_normal");
- putp(cursor_normal);
- } else
- returnCode(ERR);
- break;
- case 0:
- if (cursor_invisible) {
- TPUTS_TRACE("cursor_invisible");
- putp(cursor_invisible);
- } else
- returnCode(ERR);
- break;
+ if (SP != 0 && vis >= 0 && vis <= 2) {
+ int cursor = SP->_cursor;
+
+ if (vis == cursor) {
+ result = cursor;
+ } else {
+ result = (cursor == -1 ? 1 : cursor);
+ switch (vis) {
+ case 2:
+ if (cursor_visible) {
+ TPUTS_TRACE("cursor_visible");
+ putp(cursor_visible);
+ } else
+ result = ERR;
+ break;
+ case 1:
+ if (cursor_normal) {
+ TPUTS_TRACE("cursor_normal");
+ putp(cursor_normal);
+ } else
+ result = ERR;
+ break;
+ case 0:
+ if (cursor_invisible) {
+ TPUTS_TRACE("cursor_invisible");
+ putp(cursor_invisible);
+ } else
+ result = ERR;
+ break;
+ }
+ SP->_cursor = vis;
+ _nc_flush();
+ }
}
- SP->_cursor = vis;
- _nc_flush();
-
- returnCode(cursor == -1 ? 1 : cursor);
+ returnCode(result);
}
NCURSES_EXPORT(int)
_nc_flush();
}
- if (flag && SP != 0 && !SP->_tried) {
- _nc_init_keytry();
- SP->_tried = TRUE;
+ if (SP != 0) {
+ if (flag && !SP->_tried) {
+ _nc_init_keytry();
+ SP->_tried = TRUE;
+ }
+ SP->_keypad_on = flag;
}
- SP->_keypad_on = flag;
return (OK);
}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
#define _POSIX_SOURCE
#endif
+#if HAVE_LOCALE_H
+#include <locale.h>
+#endif
+
#include <term.h> /* lines, columns, cur_term */
-MODULE_ID("$Id: lib_setup.c,v 1.79 2003/12/27 18:24:26 tom Exp $")
+MODULE_ID("$Id: lib_setup.c,v 1.88 2005/03/12 19:41:45 tom Exp $")
/****************************************************************************
*
# include <sys/ptem.h>
#endif
+#if HAVE_LANGINFO_CODESET
+#include <langinfo.h>
+#endif
+
/*
* SCO defines TIOCGSIZE and the corresponding struct. Other systems (SunOS,
* Solaris, IRIX) define TIOCGWINSZ and struct winsize.
NCURSES_EXPORT(void)
_nc_update_screensize(void)
{
- int my_lines, my_cols;
+ int old_lines = lines;
+ int new_lines;
+ int old_cols = columns;
+ int new_cols;
+
+ _nc_get_screensize(&new_lines, &new_cols);
- _nc_get_screensize(&my_lines, &my_cols);
- if (SP != 0 && SP->_resize != 0)
- SP->_resize(my_lines, my_cols);
+ /*
+ * See is_term_resized() and resizeterm().
+ * We're doing it this way because those functions belong to the upper
+ * ncurses library, while this resides in the lower terminfo library.
+ */
+ if (SP != 0
+ && SP->_resize != 0) {
+ if ((new_lines != old_lines) || (new_cols != old_cols))
+ SP->_resize(new_lines, new_cols);
+ SP->_sig_winch = FALSE;
+ }
}
#endif
#if USE_DATABASE || USE_TERMCAP
static int
-grab_entry(const char *const tn, TERMTYPE * const tp)
+grab_entry(const char *const tn, TERMTYPE *const tp)
/* return 1 if entry found, 0 if not found, -1 if database not accessible */
{
#if USE_DATABASE
}
/*
- * Check if we are running in a UTF-8 locale.
+ * Find the locale which is in effect.
*/
NCURSES_EXPORT(char *)
_nc_get_locale(void)
{
char *env;
+#if HAVE_LOCALE_H
+ /*
+ * This is preferable to using getenv() since it ensures that we are using
+ * the locale which was actually initialized by the application.
+ */
+ env = setlocale(LC_CTYPE, 0);
+#else
if (((env = getenv("LC_ALL")) != 0 && *env != '\0')
|| ((env = getenv("LC_CTYPE")) != 0 && *env != '\0')
|| ((env = getenv("LANG")) != 0 && *env != '\0')) {
- return env;
+ ;
}
- return 0;
+#endif
+ T(("_nc_get_locale %s", _nc_visbuf(env)));
+ return env;
}
/*
NCURSES_EXPORT(int)
_nc_unicode_locale(void)
{
+ int result = 0;
+#if HAVE_LANGINFO_CODESET
+ char *env = nl_langinfo(CODESET);
+ result = !strcmp(env, "UTF-8");
+ T(("_nc_unicode_locale(%s) ->%d", env, result));
+#else
char *env = _nc_get_locale();
if (env != 0) {
- if (strstr(env, ".UTF-8") != 0)
- return 1;
+ if (strstr(env, ".UTF-8") != 0) {
+ result = 1;
+ T(("_nc_unicode_locale(%s) ->%d", env, result));
+ }
}
- return 0;
+#endif
+ return result;
}
+#define CONTROL_N(s) ((s) != 0 && strstr(s, "\016") != 0)
+#define CONTROL_O(s) ((s) != 0 && strstr(s, "\017") != 0)
+
/*
* Check for known broken cases where a UTF-8 locale breaks the alternate
* character set.
NCURSES_EXPORT(int)
_nc_locale_breaks_acs(void)
{
- char *env = getenv("TERM");
- if (env != 0) {
+ char *env;
+
+ if ((env = getenv("NCURSES_NO_UTF8_ACS")) != 0) {
+ return atoi(env);
+ } else if ((env = getenv("TERM")) != 0) {
if (strstr(env, "linux"))
return 1; /* always broken */
if (strstr(env, "screen") != 0
&& ((env = getenv("TERMCAP")) != 0
&& strstr(env, "screen") != 0)
&& strstr(env, "hhII00") != 0) {
- return 1;
+ if (CONTROL_N(enter_alt_charset_mode) ||
+ CONTROL_O(enter_alt_charset_mode) ||
+ CONTROL_N(set_attributes) ||
+ CONTROL_O(set_attributes))
+ return 1;
}
}
return 0;
}
/*
- * setupterm(termname, Filedes, errret)
- *
- * Find and read the appropriate object file for the terminal
- * Make cur_term point to the structure.
- *
+ * This entrypoint is called from tgetent() to allow special a case of reusing
+ * the same TERMINAL data (see comment).
*/
-
NCURSES_EXPORT(int)
-setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
+_nc_setupterm(NCURSES_CONST char *tname, int Filedes, int *errret, bool reuse)
{
int status;
* however applications that are working around the problem will still work
* properly with this feature).
*/
- if (cur_term != 0
+ if (reuse
+ && cur_term != 0
&& cur_term->Filedes == Filedes
&& cur_term->_termname != 0
&& !strcmp(cur_term->_termname, tname)
}
returnCode(OK);
}
+
+/*
+ * setupterm(termname, Filedes, errret)
+ *
+ * Find and read the appropriate object file for the terminal
+ * Make cur_term point to the structure.
+ *
+ */
+
+NCURSES_EXPORT(int)
+setupterm(NCURSES_CONST char *tname, int Filedes, int *errret)
+{
+ return _nc_setupterm(tname, Filedes, errret, FALSE);
+}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
* *
* some of the code in here was contributed by: *
* Magnus Bengtsson, d6mbeng@dtek.chalmers.se (Nov'93) *
#include <term_entry.h>
-MODULE_ID("$Id: lib_termcap.c,v 1.44 2003/05/24 21:10:28 tom Exp $")
-
-#define CSI 233
-#define ESC 033 /* ^[ */
-#define L_BRACK '['
-#define SHIFT_OUT 017 /* ^N */
+MODULE_ID("$Id: lib_termcap.c,v 1.51 2005/07/16 23:12:51 tom Exp $")
NCURSES_EXPORT_VAR(char *) UP = 0;
NCURSES_EXPORT_VAR(char *) BC = 0;
-static char *fix_me = 0;
-
-static char *
-set_attribute_9(int flag)
-{
- const char *result;
-
- if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
- result = "";
- return strdup(result);
-}
-
-static int
-is_csi(char *s)
-{
- if (UChar(s[0]) == CSI)
- return 1;
- else if (s[0] == ESC && s[1] == L_BRACK)
- return 2;
- return 0;
-}
-
-static char *
-skip_zero(char *s)
-{
- if (s[0] == '0') {
- if (s[1] == ';')
- s += 2;
- else if (isalpha(UChar(s[1])))
- s += 1;
- }
- return s;
-}
-
-static bool
-similar_sgr(char *a, char *b)
-{
- int csi_a = is_csi(a);
- int csi_b = is_csi(b);
-
- if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
- a += csi_a;
- b += csi_b;
- if (*a != *b) {
- a = skip_zero(a);
- b = skip_zero(b);
- }
- }
- return strcmp(a, b) == 0;
-}
+static char *fix_me = 0; /* this holds the filtered sgr0 string */
/***************************************************************************
*
{
int errcode;
+ START_TRACE();
T((T_CALLED("tgetent()")));
- setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode);
+ _nc_setupterm((NCURSES_CONST char *) name, STDOUT_FILENO, &errcode, TRUE);
PC = 0;
UP = 0;
BC = 0;
- fix_me = 0;
+ fix_me = 0; /* don't free it - application may still use */
if (errcode == 1) {
if (backspace_if_not_bs != NULL)
BC = backspace_if_not_bs;
- /*
- * While 'sgr0' is the "same" as termcap 'me', there is a compatibility
- * issue. The sgr/sgr0 capabilities include setting/clearing alternate
- * character set mode. A termcap application cannot use sgr, so sgr0
- * strings that reset alternate character set mode will be
- * misinterpreted. Here, we remove those from the more common
- * ISO/ANSI/VT100 entries, which have sgr0 agreeing with sgr.
- */
- if (exit_attribute_mode != 0
- && set_attributes != 0) {
- char *on = set_attribute_9(1);
- char *off = set_attribute_9(0);
- char *tmp;
- size_t i, j, k;
-
- if (similar_sgr(off, exit_attribute_mode)
- && !similar_sgr(off, on)) {
- TR(TRACE_DATABASE, ("adjusting sgr0 : %s", _nc_visbuf(off)));
- FreeIfNeeded(fix_me);
- fix_me = off;
- for (i = 0; off[i] != '\0'; ++i) {
- if (on[i] != off[i]) {
- j = strlen(off);
- k = strlen(on);
- while (j != 0
- && k != 0
- && off[j - 1] == on[k - 1]) {
- --j, --k;
- }
- while (off[j] != '\0') {
- off[i++] = off[j++];
- }
- off[i] = '\0';
- break;
- }
- }
- /* SGR 10 would reset to normal font */
- if ((i = is_csi(off)) != 0
- && off[strlen(off) - 1] == 'm') {
- tmp = skip_zero(off + i);
- if (tmp[0] == '1'
- && skip_zero(tmp + 1) != tmp + 1) {
- i = tmp - off;
- if (off[i - 1] == ';')
- i--;
- j = skip_zero(tmp + 1) - off;
- while (off[j] != '\0') {
- off[i++] = off[j++];
- }
- off[i] = '\0';
- }
- }
- TR(TRACE_DATABASE, ("...adjusted me : %s", _nc_visbuf(fix_me)));
- if (!strcmp(fix_me, exit_attribute_mode)) {
- TR(TRACE_DATABASE, ("...same result, discard"));
+ FreeIfNeeded(fix_me);
+ if ((fix_me = _nc_trim_sgr0(&(cur_term->type))) != 0) {
+ if (!strcmp(fix_me, exit_attribute_mode)) {
+ if (fix_me != exit_attribute_mode) {
free(fix_me);
- fix_me = 0;
}
+ fix_me = 0;
}
- free(on);
}
(void) baudrate(); /* sets ospeed as a side-effect */
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 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 *
* making the output show the indices into the TERMTYPE Strings array. Doing
* it that way lets us cut down on the size of the init_keytry() function.
*/
+
+#define USE_TERMLIB 1
#include <curses.priv.h>
-MODULE_ID("$Id: make_keys.c,v 1.10 2000/12/10 02:55:08 tom Exp $")
+MODULE_ID("$Id: make_keys.c,v 1.12 2005/08/20 19:58:18 tom Exp $")
#include <names.c>
}
static void
-make_keys(FILE * ifp, FILE * ofp)
+make_keys(FILE *ifp, FILE *ofp)
{
char buffer[BUFSIZ];
char from[BUFSIZ];
}
static void
-write_list(FILE * ofp, const char **list)
+write_list(FILE *ofp, const char **list)
{
while (*list != 0)
fprintf(ofp, "%s\n", *list++);
/****************************************************************************
- * Copyright (c) 1999,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <term.h>
#include <tic.h>
-MODULE_ID("$Id: name_match.c,v 1.12 2002/08/31 21:48:41 Philippe.Blain Exp $")
+MODULE_ID("$Id: name_match.c,v 1.15 2005/01/22 21:47:25 tom Exp $")
/*
* _nc_first_name(char *names)
static char *buf;
register unsigned n;
+#if NO_LEAKS
+ if (sp == 0) {
+ if (buf != 0)
+ FreeAndNull(buf); /* for leak-testing */
+ return 0;
+ }
+#endif
+
if (buf == 0)
buf = typeMalloc(char, MAX_NAME_SIZE + 1);
for (n = 0; n < MAX_NAME_SIZE; n++) {
*/
NCURSES_EXPORT(int)
-_nc_name_match
-(const char *const namelst, const char *const name, const char *const delim)
+_nc_name_match(const char *const namelst, const char *const name, const char *const delim)
{
const char *s, *d, *t;
int code, found;
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-2003 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <tic.h>
#include <term_entry.h>
-MODULE_ID("$Id: parse_entry.c,v 1.60 2003/11/08 21:57:09 tom Exp $")
+MODULE_ID("$Id: parse_entry.c,v 1.62 2005/06/02 22:04:32 tom Exp $")
#ifdef LINT
static short const parametrized[] =
* 2-character name, but was instead the first alias after that.
*/
ptr = _nc_curr_token.tk_name;
- if (_nc_syntax == SYN_TERMCAP) {
+ if (_nc_syntax == SYN_TERMCAP
+#if NCURSES_XNAMES
+ && !_nc_user_definable
+#endif
+ ) {
if (ptr[2] == '|') {
ptr += 3;
_nc_curr_token.tk_name[2] = '\0';
*/
/* tell max_attributes from arrow_key_map */
- if (token_type == NUMBER && !strcmp("ma", _nc_curr_token.tk_name))
+ if (token_type == NUMBER
+ && !strcmp("ma", _nc_curr_token.tk_name)) {
entry_ptr = _nc_find_type_entry("ma", NUMBER,
_nc_get_table(_nc_syntax
!= 0));
- /* map terminfo's string MT to MT */
- else if (token_type == STRING && !strcmp("MT", _nc_curr_token.tk_name))
+ /* map terminfo's string MT to MT */
+ } else if (token_type == STRING
+ && !strcmp("MT", _nc_curr_token.tk_name)) {
entry_ptr = _nc_find_type_entry("MT", STRING,
_nc_get_table(_nc_syntax
!= 0));
- /* treat strings without following "=" as empty strings */
- else if (token_type == BOOLEAN && entry_ptr->nte_type == STRING)
+ /* treat strings without following "=" as empty strings */
+ } else if (token_type == BOOLEAN
+ && entry_ptr->nte_type == STRING) {
token_type = STRING;
- /* we couldn't recover; skip this token */
- else {
+ /* we couldn't recover; skip this token */
+ } else {
if (!silent) {
const char *type_name;
switch (entry_ptr->nte_type) {
#define CUR tp->
static void
-postprocess_termcap(TERMTYPE * tp, bool has_base)
+postprocess_termcap(TERMTYPE *tp, bool has_base)
{
char buf[MAX_LINE * 2 + 2];
string_desc result;
}
static void
-postprocess_terminfo(TERMTYPE * tp)
+postprocess_terminfo(TERMTYPE *tp)
{
/*
* TERMINFO-TO-TERMINFO MAPPINGS FOR SOURCE TRANSLATION
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <tic.h>
#include <term_entry.h>
-MODULE_ID("$Id: read_entry.c,v 1.79 2004/01/11 01:57:05 tom Exp $")
+MODULE_ID("$Id: read_entry.c,v 1.81 2005/06/02 22:04:32 tom Exp $")
#if !HAVE_TELL
#define tell(fd) lseek(fd, 0, SEEK_CUR) /* lseek() is POSIX, but not tell() */
#endif
+#define TYPE_CALLOC(type,elts) typeCalloc(type, (unsigned)(elts))
+
/*
* int
* _nc_read_file_entry(filename, ptr)
}
}
-#define read_shorts(fd, buf, count) (read(fd, buf, (count)*2) == (count)*2)
+#define read_shorts(fd, buf, count) \
+ (read(fd, buf, (unsigned) (count)*2) == (int) (count)*2)
#define even_boundary(value) \
if ((value) % 2 != 0) read(fd, buf, 1)
static int
-read_termtype(int fd, TERMTYPE * ptr)
+read_termtype(int fd, TERMTYPE *ptr)
/* return 1 if read, 0 if not found or garbled */
{
int name_size, bool_count, num_count, str_count, str_size;
memset(buf + have, 0, want - have);
}
buf[want] = '\0';
- ptr->term_names = typeCalloc(char, strlen(buf) + 1);
+ ptr->term_names = TYPE_CALLOC(char, strlen(buf) + 1);
if (ptr->term_names == NULL) {
return (0);
}
lseek(fd, (off_t) (have - MAX_NAME_SIZE), 1);
/* grab the booleans */
- if ((ptr->Booleans = typeCalloc(char, max(BOOLCOUNT, bool_count))) == 0
+ if ((ptr->Booleans = TYPE_CALLOC(char, max(BOOLCOUNT, bool_count))) == 0
|| read(fd, ptr->Booleans, (unsigned) bool_count) < bool_count) {
return (0);
}
even_boundary(name_size + bool_count);
/* grab the numbers */
- if ((ptr->Numbers = typeCalloc(short, max(NUMCOUNT, num_count))) == 0
+ if ((ptr->Numbers = TYPE_CALLOC(short, max(NUMCOUNT, num_count))) == 0
|| !read_shorts(fd, buf, num_count)) {
return (0);
}
convert_shorts(buf, ptr->Numbers, num_count);
- if ((ptr->Strings = typeCalloc(char *, max(STRCOUNT, str_count))) == 0)
+ if ((ptr->Strings = TYPE_CALLOC(char *, max(STRCOUNT, str_count))) == 0)
return (0);
if (str_count) {
int ext_str_count = LOW_MSB(buf + 4);
int ext_str_size = LOW_MSB(buf + 6);
int ext_str_limit = LOW_MSB(buf + 8);
- int need = (ext_bool_count + ext_num_count + ext_str_count);
+ unsigned need = (ext_bool_count + ext_num_count + ext_str_count);
int base = 0;
- if (need >= (int) sizeof(buf)
+ if (need >= sizeof(buf)
|| ext_str_size >= (int) sizeof(buf)
|| ext_str_limit >= (int) sizeof(buf)
|| ext_bool_count < 0
if (ext_str_limit) {
if ((ptr->ext_str_table = typeMalloc(char, ext_str_limit)) == 0)
return (0);
- if (read(fd, ptr->ext_str_table, ext_str_limit) != ext_str_limit)
+ if (read(fd, ptr->ext_str_table, (unsigned) ext_str_limit) != ext_str_limit)
return (0);
TR(TRACE_DATABASE, ("first extended-string is %s", _nc_visbuf(ptr->ext_str_table)));
}
}
if (need) {
- if ((ptr->ext_Names = typeCalloc(char *, need)) == 0)
+ if ((ptr->ext_Names = TYPE_CALLOC(char *, need)) == 0)
return (0);
TR(TRACE_DATABASE,
("ext_NAMES starting @%d in extended_strings, first = %s",
base, _nc_visbuf(ptr->ext_str_table + base)));
- convert_strings(buf + (2 * ext_str_count), ptr->ext_Names, need,
+ convert_strings(buf + (2 * ext_str_count),
+ ptr->ext_Names,
+ (int) need,
ext_str_limit, ptr->ext_str_table + base);
}
}
NCURSES_EXPORT(int)
-_nc_read_file_entry(const char *const filename, TERMTYPE * ptr)
+_nc_read_file_entry(const char *const filename, TERMTYPE *ptr)
/* return 1 if read, 0 if not found or garbled */
{
int code, fd = -1;
code = 0;
} else {
T(("read terminfo %s", filename));
- if ((code = read_termtype(fd, ptr)) == 0)
+ if ((code = read_termtype(fd, ptr)) == 0) {
_nc_free_termtype(ptr);
+ }
close(fd);
}
*/
static int
_nc_read_tic_entry(char *const filename,
- const char *const dir, const char *ttn, TERMTYPE * const tp)
+ const char *const dir, const char *ttn, TERMTYPE *const tp)
{
int need = 2 + strlen(dir) + strlen(ttn);
*/
static int
_nc_read_terminfo_dirs(const char *dirs, char *const filename, const char *const
- ttn, TERMTYPE * const tp)
+ ttn, TERMTYPE *const tp)
{
char *list, *a;
const char *b;
*/
NCURSES_EXPORT(int)
-_nc_read_entry(const char *const tn, char *const filename, TERMTYPE * const tp)
+_nc_read_entry(const char *const tn, char *const filename, TERMTYPE *const tp)
{
char *envp;
char ttn[PATH_MAX];
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <tic.h>
#include <term_entry.h>
-MODULE_ID("$Id: read_termcap.c,v 1.61 2003/11/08 20:22:45 tom Exp $")
+MODULE_ID("$Id: read_termcap.c,v 1.67 2005/06/04 21:49:20 tom Exp $")
#if !PURE_TERMINFO
#define TC_SYS_ERR -3
#define TC_REF_LOOP -4
-static char *
+static NCURSES_CONST char *
get_termpath(void)
{
- char *result;
+ NCURSES_CONST char *result;
if (!use_terminfo_vars() || (result = getenv("TERMPATH")) == 0)
result = TERMPATH;
if (*s == '\0') {
break;
} else if (*s++ == '\n') {
- while (isspace(*s))
+ while (isspace(UChar(*s)))
s++;
} else {
found = TRUE;
break;
}
base = s;
- } else if (isgraph(ch)) {
+ } else if (isgraph(UChar(ch))) {
found = TRUE;
}
}
while ((ch = *src++) != '\0') {
if (ch == '\\' && *src == '\n') {
- while (isspace(*src))
+ while (isspace(UChar(*src)))
src++;
continue;
}
char pathbuf[PBUFSIZ]; /* holds raw path of filenames */
char *pathvec[PVECSIZ]; /* to point to names in pathbuf */
char **pvec; /* holds usable tail of path vector */
- char *termpath;
+ NCURSES_CONST char *termpath;
string_desc desc;
fname = pathvec;
#endif /* !USE_GETCAP */
NCURSES_EXPORT(int)
-_nc_read_termcap_entry(const char *const tn, TERMTYPE * const tp)
+_nc_read_termcap_entry(const char *const tn, TERMTYPE *const tp)
{
int found = FALSE;
ENTRY *ep;
* Probably /etc/termcap is a symlink to /usr/share/misc/termcap.
* Avoid reading the same file twice.
*/
-#ifdef HAVE_LINK
+#if HAVE_LINK
for (j = 0; j < filecount; j++) {
bool omit = FALSE;
if (stat(termpaths[j], &test_stat[j]) != 0
return (ERR);
/* resolve all use references */
- _nc_resolve_uses(TRUE);
+ _nc_resolve_uses2(TRUE, FALSE);
/* find a terminal matching tn, if we can */
#if USE_GETCAP_CACHE
for_entry_list(ep) {
if (_nc_name_match(ep->tterm.term_names, tn, "|:")) {
/*
- * Make a local copy of the terminal capabilities. Free all
- * entry storage except the string table for the loaded type
- * (which we disconnected from the list by NULLing out
- * ep->tterm.str_table above).
+ * Make a local copy of the terminal capabilities, delinked
+ * from the list.
*/
*tp = ep->tterm;
- ep->tterm.str_table = (char *) 0;
+ _nc_delink_entry(_nc_head, &(ep->tterm));
+ free(ep);
/*
* OK, now try to write the type to user's terminfo directory.
}
#endif
- _nc_free_entries(_nc_head);
return (found);
}
#else
--- /dev/null
+/****************************************************************************
+ * Copyright (c) 2005 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 *
+ ****************************************************************************/
+
+#include <curses.priv.h>
+
+#include <ctype.h>
+
+#include <tic.h>
+#include <term_entry.h>
+
+MODULE_ID("$Id: trim_sgr0.c,v 1.5 2005/07/17 00:13:24 tom Exp $")
+
+#undef CUR
+#define CUR tp->
+
+#define CSI 233
+#define ESC 033 /* ^[ */
+#define L_BRACK '['
+
+static char *
+set_attribute_9(TERMTYPE *tp, int flag)
+{
+ const char *result;
+
+ if ((result = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, flag)) == 0)
+ result = "";
+ return strdup(result);
+}
+
+static int
+is_csi(const char *s)
+{
+ if (UChar(s[0]) == CSI)
+ return 1;
+ else if (s[0] == ESC && s[1] == L_BRACK)
+ return 2;
+ return 0;
+}
+
+static char *
+skip_zero(char *s)
+{
+ if (s[0] == '0') {
+ if (s[1] == ';')
+ s += 2;
+ else if (isalpha(UChar(s[1])))
+ s += 1;
+ }
+ return s;
+}
+
+static const char *
+skip_delay(const char *s)
+{
+ if (s[0] == '$' && s[1] == '<') {
+ s += 2;
+ while ((*s != '\0') && (isdigit(*s) || *s == '/'))
+ ++s;
+ if (*s == '>')
+ ++s;
+ }
+ return s;
+}
+
+/*
+ * Improve similar_sgr a little by moving the attr-string from the beginning
+ * to the end of the s-string.
+ */
+static bool
+rewrite_sgr(char *s, char *attr)
+{
+ if (PRESENT(s)) {
+ if (PRESENT(attr)) {
+ unsigned len_s = strlen(s);
+ unsigned len_a = strlen(attr);
+
+ if (len_s > len_a && !strncmp(attr, s, len_a)) {
+ unsigned n;
+ TR(TRACE_DATABASE, ("rewrite:\n\t%s", s));
+ for (n = 0; n < len_s - len_a; ++n) {
+ s[n] = s[n + len_a];
+ }
+ strcpy(s + n, attr);
+ TR(TRACE_DATABASE, ("to:\n\t%s", s));
+ }
+ }
+ return TRUE;
+ }
+ return FALSE; /* oops */
+}
+
+static bool
+similar_sgr(char *a, char *b)
+{
+ bool result = FALSE;
+ int csi_a = is_csi(a);
+ int csi_b = is_csi(b);
+ unsigned len_a;
+ unsigned len_b;
+
+ TR(TRACE_DATABASE, ("similar_sgr:\n\t%s\n\t%s",
+ _nc_visbuf2(1, a),
+ _nc_visbuf2(2, b)));
+ if (csi_a != 0 && csi_b != 0 && csi_a == csi_b) {
+ a += csi_a;
+ b += csi_b;
+ if (*a != *b) {
+ a = skip_zero(a);
+ b = skip_zero(b);
+ }
+ }
+ len_a = strlen(a);
+ len_b = strlen(b);
+ if (len_a && len_b) {
+ if (len_a > len_b)
+ result = (strncmp(a, b, len_b) == 0);
+ else
+ result = (strncmp(a, b, len_a) == 0);
+ }
+ TR(TRACE_DATABASE, ("...similar_sgr: %d\n\t%s\n\t%s", result,
+ _nc_visbuf2(1, a),
+ _nc_visbuf2(2, b)));
+ return result;
+}
+
+static unsigned
+chop_out(char *string, unsigned i, unsigned j)
+{
+ TR(TRACE_DATABASE, ("chop_out %d..%d from %s", i, j, _nc_visbuf(string)));
+ while (string[j] != '\0') {
+ string[i++] = string[j++];
+ }
+ string[i] = '\0';
+ return i;
+}
+
+/*
+ * Compare, ignoring delays. Some of the delay values are inconsistent, and
+ * we do not want to be stopped by that.
+ *
+ * Returns the number of chars from 'full' that we matched. If any mismatch
+ * occurs, return zero.
+ */
+static int
+compare_part(const char *part, const char *full)
+{
+ const char *next_part;
+ const char *next_full;
+ int used_full = 0;
+ int used_delay = 0;
+
+ while (*part != 0) {
+ if (*part != *full) {
+ used_full = 0;
+ break;
+ }
+
+ /*
+ * Adjust the return-value to allow the rare case of
+ * string<delay>string
+ * to remove the whole piece. The most common case is a delay at the
+ * end of the string. The adjusted string will retain the delay, which
+ * is conservative.
+ */
+ if (used_delay != 0) {
+ used_full += used_delay;
+ used_delay = 0;
+ }
+ if (*part == '$' && *full == '$') {
+ next_part = skip_delay(part);
+ next_full = skip_delay(full);
+ if (next_part != part && next_full != full) {
+ used_delay += (next_full - full);
+ full = next_full;
+ part = next_part;
+ continue;
+ }
+ }
+ ++used_full;
+ ++part;
+ ++full;
+ }
+ return used_full;
+}
+
+/*
+ * While 'sgr0' is the "same" as termcap 'me', there is a compatibility issue.
+ * The sgr/sgr0 capabilities include setting/clearing alternate character set
+ * mode. A termcap application cannot use sgr, so sgr0 strings that reset
+ * alternate character set mode will be misinterpreted. Here, we remove those
+ * from the more common ISO/ANSI/VT100 entries, which have sgr0 agreeing with
+ * sgr.
+ *
+ * This function returns the modified sgr0 if it can be modified, a null if
+ * an error occurs, or the original sgr0 if no change is needed.
+ */
+NCURSES_EXPORT(char *)
+_nc_trim_sgr0(TERMTYPE *tp)
+{
+ char *result = exit_attribute_mode;
+
+ T((T_CALLED("_nc_trim_sgr0()")));
+
+ if (PRESENT(exit_attribute_mode)
+ && PRESENT(set_attributes)) {
+ bool found = FALSE;
+ char *on = set_attribute_9(tp, 1);
+ char *off = set_attribute_9(tp, 0);
+ char *end = strdup(exit_attribute_mode);
+ char *tmp;
+ size_t i, j, k;
+
+ TR(TRACE_DATABASE, ("checking if we can trim sgr0 based on sgr"));
+ TR(TRACE_DATABASE, ("sgr0 %s", _nc_visbuf(end)));
+ TR(TRACE_DATABASE, ("sgr(9:off) %s", _nc_visbuf(off)));
+ TR(TRACE_DATABASE, ("sgr(9:on) %s", _nc_visbuf(on)));
+
+ if (!rewrite_sgr(on, enter_alt_charset_mode)
+ || !rewrite_sgr(off, exit_alt_charset_mode)
+ || !rewrite_sgr(end, exit_alt_charset_mode)) {
+ FreeIfNeeded(on);
+ FreeIfNeeded(off);
+ FreeIfNeeded(end);
+ } else if (similar_sgr(off, end)
+ && !similar_sgr(off, on)) {
+ TR(TRACE_DATABASE, ("adjusting sgr(9:off) : %s", _nc_visbuf(off)));
+ result = off;
+ /*
+ * If rmacs is a substring of sgr(0), remove that chunk.
+ */
+ if (exit_alt_charset_mode != 0) {
+ TR(TRACE_DATABASE, ("scan for rmacs %s", _nc_visbuf(exit_alt_charset_mode)));
+ j = strlen(off);
+ k = strlen(exit_alt_charset_mode);
+ if (j > k) {
+ for (i = 0; i <= (j - k); ++i) {
+ int k2 = compare_part(exit_alt_charset_mode, off + i);
+ if (k2 != 0) {
+ found = TRUE;
+ chop_out(off, i, i + k2);
+ break;
+ }
+ }
+ }
+ }
+ /*
+ * SGR 10 would reset to normal font.
+ */
+ if (!found) {
+ if ((i = is_csi(off)) != 0
+ && off[strlen(off) - 1] == 'm') {
+ TR(TRACE_DATABASE, ("looking for SGR 10 in %s",
+ _nc_visbuf(off)));
+ tmp = skip_zero(off + i);
+ if (tmp[0] == '1'
+ && skip_zero(tmp + 1) != tmp + 1) {
+ i = tmp - off;
+ if (off[i - 1] == ';')
+ i--;
+ j = skip_zero(tmp + 1) - off;
+ i = chop_out(off, i, j);
+ found = TRUE;
+ }
+ }
+ }
+ if (!found
+ && (tmp = strstr(end, off)) != 0
+ && strcmp(end, off) != 0) {
+ i = tmp - end;
+ j = strlen(off);
+ tmp = strdup(end);
+ chop_out(tmp, i, j);
+ free(off);
+ result = tmp;
+ }
+ TR(TRACE_DATABASE, ("...adjusted sgr0 : %s", _nc_visbuf(result)));
+ if (!strcmp(result, exit_attribute_mode)) {
+ TR(TRACE_DATABASE, ("...same result, discard"));
+ free(result);
+ result = exit_attribute_mode;
+ }
+ } else {
+ /*
+ * Either the sgr does not reference alternate character set,
+ * or it is incorrect. That's too hard to decide right now.
+ */
+ free(off);
+ }
+ free(end);
+ free(on);
+ } else {
+ /*
+ * Possibly some applications are confused if sgr0 contains rmacs,
+ * but that would be a different bug report -TD
+ */
+ }
+
+ returnPtr(result);
+}
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <ctype.h>
-MODULE_ID("$Id: lib_trace.c,v 1.53 2003/11/23 00:39:30 tom Exp $")
+MODULE_ID("$Id: lib_trace.c,v 1.58 2005/04/16 16:15:24 tom Exp $")
-NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
+NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */
#ifdef TRACE
NCURSES_EXPORT_VAR(const char *) _nc_tputs_trace = "";
va_list ap;
bool before = FALSE;
bool after = FALSE;
- int doit = _nc_tracing;
+ unsigned doit = _nc_tracing;
int save_err = errno;
if (strlen(fmt) >= sizeof(Called) - 1) {
return code;
}
+/* Trace 'const char*' return-values */
+NCURSES_EXPORT(const char *)
+_nc_retrace_cptr(const char *code)
+{
+ T((T_RETURN("%s"), _nc_visbuf(code)));
+ return code;
+}
+
+/* Trace 'NCURSES_CONST void*' return-values */
+NCURSES_EXPORT(NCURSES_CONST void *)
+_nc_retrace_cvoid_ptr(NCURSES_CONST void *code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
+/* Trace 'void*' return-values */
+NCURSES_EXPORT(void *)
+_nc_retrace_void_ptr(void *code)
+{
+ T((T_RETURN("%p"), code));
+ return code;
+}
+
/* Trace 'SCREEN *' return-values */
NCURSES_EXPORT(SCREEN *)
-_nc_retrace_sp(SCREEN * code)
+_nc_retrace_sp(SCREEN *code)
{
T((T_RETURN("%p"), code));
return code;
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas Dickey 1996-2003 *
+ * Author: Thomas Dickey 1996-on *
* and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
****************************************************************************/
#include <curses.priv.h>
#include <term.h> /* acs_chars */
-MODULE_ID("$Id: lib_traceatr.c,v 1.48 2004/01/25 22:31:38 tom Exp $")
+MODULE_ID("$Id: lib_traceatr.c,v 1.53 2005/08/20 20:21:20 tom Exp $")
-#define COLOR_OF(c) (c < 0 || c > 7 ? "default" : colors[c].name)
+#define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
#ifdef TRACE
static const char l_brace[] = {L_BRACE, 0};
static const char r_brace[] = {R_BRACE, 0};
+#ifndef USE_TERMLIB
+static char *
+color_of(int c)
+{
+ static char buffer[2][80];
+ static int sel;
+ static int last = -1;
+
+ if (c != last) {
+ last = c;
+ sel = !sel;
+ if (c == COLOR_DEFAULT)
+ strcpy(buffer[sel], "default");
+ else
+ sprintf(buffer[sel], "color%d", c);
+ }
+ return buffer[sel];
+}
+#endif /* !USE_TERMLIB */
+
NCURSES_EXPORT(char *)
_traceattr2(int bufnum, attr_t newmode)
{
{ A_COLOR, "A_COLOR" },
/* *INDENT-ON* */
- },
+ }
+#ifndef USE_TERMLIB
+ ,
colors[] =
{
/* *INDENT-OFF* */
{ COLOR_WHITE, "COLOR_WHITE" },
/* *INDENT-ON* */
- };
+ }
+#endif /* !USE_TERMLIB */
+ ;
size_t n;
unsigned save_nc_tracing = _nc_tracing;
_nc_tracing = 0;
if (names[n].val == A_COLOR) {
short pairnum = PAIR_NUMBER(newmode);
+#ifdef USE_TERMLIB
+ /* pair_content lives in libncurses */
+ (void) sprintf(temp, "{%d}", pairnum);
+#else
short fg, bg;
if (pair_content(pairnum, &fg, &bg) == OK) {
} else {
(void) sprintf(temp, "{%d}", pairnum);
}
+#endif
buf = _nc_trace_bufcat(bufnum, temp);
}
}
if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
(void) _nc_trace_bufcat(bufnum, found);
} else
- (void) _nc_trace_bufcat(bufnum, _tracechar(ChCharOf(ch)));
+ (void) _nc_trace_bufcat(bufnum, _tracechar((int)ChCharOf(ch)));
if (ChAttrOf(ch) != A_NORMAL) {
(void) _nc_trace_bufcat(bufnum, " | ");
if ((found = _nc_altcharset_name(attr, CharOfD(ch))) != 0) {
(void) _nc_trace_bufcat(bufnum, found);
attr &= ~A_ALTCHARSET;
- } else if (isnac(CHDEREF(ch))) {
+ } else if (isWidecExt(CHDEREF(ch))) {
(void) _nc_trace_bufcat(bufnum, "{NAC}");
+ attr &= ~A_CHARTEXT;
} else {
PUTC_DATA;
int n;
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <ctype.h>
-MODULE_ID("$Id: lib_tracechr.c,v 1.10 2003/06/14 11:05:42 tom Exp $")
+MODULE_ID("$Id: lib_tracechr.c,v 1.12 2005/04/16 16:55:46 tom Exp $")
#ifdef TRACE
NCURSES_EXPORT(char *)
_tracechar(int ch)
{
static char result[40];
- char *name;
+ NCURSES_CONST char *name;
if (ch > KEY_MIN || ch < 0) {
name = keyname(ch);
if (name == 0 || *name == '\0')
name = "NULL";
(void) sprintf(result, "'%.30s' = %#03o", name, ch);
- } else if (!isprint(ch) || ch > 255) {
+ } else if (!is8bits(ch) || !isprint(UChar(ch))) {
/*
* workaround for glibc bug:
* sprintf changes the result from unctrl() to an empty string if it
*/
(void) sprintf(result, "%#03o", ch);
} else {
- name = unctrl(ch);
+ name = unctrl((chtype) ch);
if (name == 0 || *name == 0)
name = "null"; /* shouldn't happen */
(void) sprintf(result, "'%.30s' = %#03o", name, ch);
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 1996-2001 *
+ * Author: Thomas E. Dickey 1996-on *
* and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
****************************************************************************/
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_tracedmp.c,v 1.25 2002/09/22 22:21:38 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.26 2005/01/29 16:23:51 tom Exp $")
#ifdef TRACE
NCURSES_EXPORT(void)
/* compute narrowest possible display width */
for (width = i = 0; i <= win->_maxy; ++i) {
n = 0;
- for (j = 0; j <= win->_maxx; ++j)
+ for (j = 0; j <= win->_maxx; ++j) {
if (CharOf(win->_line[i].text[j]) != L(' ')
- || AttrOf(win->_line[i].text[j]) != A_NORMAL)
+ || AttrOf(win->_line[i].text[j]) != A_NORMAL
+ || GetPair(win->_line[i].text[j]) != 0) {
n = j;
+ }
+ }
if (n > width)
width = n;
/* dump A_COLOR part, will screw up if there are more than 96 */
havecolors = FALSE;
for (j = 0; j < width; ++j)
- if (AttrOf(win->_line[n].text[j]) & A_COLOR) {
+ if (GetPair(win->_line[n].text[j]) != 0) {
havecolors = TRUE;
break;
}
if (havecolors) {
ep = buf;
- for (j = 0; j < width; ++j)
- ep[j] = UChar(AttrOf(win->_line[n].text[j]) >>
- NCURSES_ATTR_SHIFT) + ' ';
+ for (j = 0; j < width; ++j) {
+ int pair = GetPair(win->_line[n].text[j]);
+ if (pair >= 52)
+ ep[j] = '?';
+ else if (pair >= 36)
+ ep[j] = pair + 'A';
+ else if (pair >= 10)
+ ep[j] = pair + 'a';
+ else if (pair >= 1)
+ ep[j] = pair + '0';
+ else
+ ep[j] = ' ';
+ }
ep[j] = '\0';
_tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
"colors", n, 8, " ", buf);
/****************************************************************************
- * Copyright (c) 1998,2000,2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_tracemse.c,v 1.10 2002/01/12 22:32:25 tom Exp $")
+MODULE_ID("$Id: lib_tracemse.c,v 1.12 2005/06/11 19:53:50 tom Exp $")
#ifdef TRACE
NCURSES_EXPORT(char *)
_tracemouse(MEVENT const *ep)
{
- static char buf[80];
+ /*
+ * hmm - format is no longer than 80 columns, there are 5 numbers that
+ * could at most have 10 digits, and the mask contains no more than 32 bits
+ * with each bit representing less than 15 characters. Usually the whole
+ * string is less than 80 columns, but this buffer size is an absolute
+ * limit.
+ */
+ static char buf[80 + (5 * 10) + (32 * 15)];
(void) sprintf(buf, "id %2d at (%2d, %2d, %2d) state %4lx = {",
- ep->id, ep->x, ep->y, ep->z, ep->bstate);
+ ep->id,
+ ep->x,
+ ep->y,
+ ep->z,
+ (unsigned long) ep->bstate);
#define SHOW(m, s) if ((ep->bstate & m) == m) strcat(strcat(buf, s), ", ")
+
SHOW(BUTTON1_RELEASED, "release-1");
SHOW(BUTTON1_PRESSED, "press-1");
SHOW(BUTTON1_CLICKED, "click-1");
SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1");
SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON1_RESERVED_EVENT, "reserved-1");
+#endif
+
SHOW(BUTTON2_RELEASED, "release-2");
SHOW(BUTTON2_PRESSED, "press-2");
SHOW(BUTTON2_CLICKED, "click-2");
SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2");
SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON2_RESERVED_EVENT, "reserved-2");
+#endif
+
SHOW(BUTTON3_RELEASED, "release-3");
SHOW(BUTTON3_PRESSED, "press-3");
SHOW(BUTTON3_CLICKED, "click-3");
SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3");
SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON3_RESERVED_EVENT, "reserved-3");
+#endif
+
SHOW(BUTTON4_RELEASED, "release-4");
SHOW(BUTTON4_PRESSED, "press-4");
SHOW(BUTTON4_CLICKED, "click-4");
SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4");
SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON4_RESERVED_EVENT, "reserved-4");
+#endif
+
+#if NCURSES_MOUSE_VERSION == 2
+ SHOW(BUTTON5_RELEASED, "release-5");
+ SHOW(BUTTON5_PRESSED, "press-5");
+ SHOW(BUTTON5_CLICKED, "click-5");
+ SHOW(BUTTON5_DOUBLE_CLICKED, "doubleclick-5");
+ SHOW(BUTTON5_TRIPLE_CLICKED, "tripleclick-5");
+#endif
+
SHOW(BUTTON_CTRL, "ctrl");
SHOW(BUTTON_SHIFT, "shift");
SHOW(BUTTON_ALT, "alt");
SHOW(ALL_MOUSE_EVENTS, "all-events");
SHOW(REPORT_MOUSE_POSITION, "position");
+
#undef SHOW
if (buf[strlen(buf) - 1] == ' ')
/****************************************************************************
- * Copyright (c) 2001-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 2001-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 1996-2004 *
+ * Author: Thomas E. Dickey 1996-on *
* and: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
****************************************************************************/
#include <tic.h>
#include <ctype.h>
-MODULE_ID("$Id: visbuf.c,v 1.9 2004/02/03 01:16:37 tom Exp $")
+MODULE_ID("$Id: visbuf.c,v 1.14 2005/08/20 20:01:20 tom Exp $")
static char *
_nc_vischar(char *tp, unsigned c)
*tp++ = '^';
*tp++ = '@' + c;
} else {
- sprintf(tp, "\\%03lo", ChCharOf(c));
+ sprintf(tp, "\\%03lo", (unsigned long) ChCharOf(c));
tp += strlen(tp);
}
*tp = 0;
#if USE_WIDEC_SUPPORT
#ifdef TRACE
+
+#if defined(USE_TERMLIB)
+#define _nc_wchstrlen _my_wchstrlen
+static int
+_nc_wchstrlen(const cchar_t *s)
+{
+ int result = 0;
+ while (CharOf(s[result]) != L'\0') {
+ result++;
+ }
+ return result;
+}
+#endif
+
static const char *
-_nc_viswbuf2n(int bufnum, const wchar_t * buf, int len)
+_nc_viswbuf2n(int bufnum, const wchar_t *buf, int len)
{
char *vbuf;
char *tp;
}
NCURSES_EXPORT(const char *)
-_nc_viswbuf2(int bufnum, const wchar_t * buf)
+_nc_viswbuf2(int bufnum, const wchar_t *buf)
{
return _nc_viswbuf2n(bufnum, buf, -1);
}
NCURSES_EXPORT(const char *)
-_nc_viswbuf(const wchar_t * buf)
+_nc_viswbuf(const wchar_t *buf)
{
return _nc_viswbuf2(0, buf);
}
NCURSES_EXPORT(const char *)
-_nc_viswbufn(const wchar_t * buf, int len)
+_nc_viswbufn(const wchar_t *buf, int len)
{
return _nc_viswbuf2n(0, buf, len);
}
+/* this special case is used for wget_wstr() */
+NCURSES_EXPORT(const char *)
+_nc_viswibuf(const wint_t *buf)
+{
+ static wchar_t *mybuf;
+ static unsigned mylen;
+ unsigned n;
+
+ for (n = 0; buf[n] != 0; ++n) ;
+ if (mylen < ++n) {
+ mylen = n + 80;
+ if (mybuf != 0)
+ mybuf = typeRealloc(wchar_t, mylen, mybuf);
+ else
+ mybuf = typeMalloc(wchar_t, mylen);
+ }
+ for (n = 0; buf[n] != 0; ++n)
+ mybuf[n] = (wchar_t) buf[n];
+
+ return _nc_viswbuf2(0, mybuf);
+}
+
NCURSES_EXPORT(const char *)
-_nc_viscbuf2(int bufnum, const cchar_t * buf, int len)
+_nc_viscbuf2(int bufnum, const cchar_t *buf, int len)
{
char *result = _nc_trace_buf(bufnum, BUFSIZ);
int n;
len = _nc_wchstrlen(buf);
for (n = 1; n < len; n++) {
- if (AttrOf(buf[n]) != AttrOf(buf[0])) {
+ if (!SameAttrOf(buf[n], buf[0])) {
same = FALSE;
break;
}
if ((found = _nc_altcharset_name(attr, CharOfD(buf))) != 0) {
result = _nc_trace_bufcat(bufnum, found);
attr &= ~A_ALTCHARSET;
- } else if (!isnac(CHDEREF(buf))) {
+ } else if (!isWidecExt(CHDEREF(buf))) {
PUTC_DATA;
PUTC_INIT;
}
NCURSES_EXPORT(const char *)
-_nc_viscbuf(const cchar_t * buf, int len)
+_nc_viscbuf(const cchar_t *buf, int len)
{
return _nc_viscbuf2(0, buf, len);
}
#! /bin/sh
##############################################################################
-# Copyright (c) 1998,2000 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2000,2005 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"), #
#
# Author: Thomas E. Dickey <dickey@clark.net> 1997
#
-# $Id: MKexpanded.sh,v 1.10 2000/12/10 00:24:33 tom Exp $
+# $Id: MKexpanded.sh,v 1.11 2005/01/02 01:06:40 tom Exp $
#
# Script to generate 'expanded.c', a dummy source that contains functions
# corresponding to complex macros used in this library. By making functions,
{
return InsCharCost(count);
}
-NCURSES_EXPORT(void) _nc_UpdateAttrs (chtype c)
+NCURSES_EXPORT(void) _nc_UpdateAttrs (NCURSES_CH_T c)
{
UpdateAttrs(c);
}
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
#include <term.h> /* for back_color_erase */
-MODULE_ID("$Id: hashmap.c,v 1.46 2002/09/07 18:13:15 tom Exp $")
+MODULE_ID("$Id: hashmap.c,v 1.47 2005/01/29 21:27:58 tom Exp $")
#ifdef HASHDEBUG
NCURSES_CH_T blank = NewChar2(BLANK_TEXT, BLANK_ATTR);
if (back_color_erase)
- AddAttr(blank, (AttrOf(stdscr->_nc_bkgd) & A_COLOR));
+ SetPair(blank, GetPair(stdscr->_nc_bkgd));
for (i = TEXTWIDTH; i > 0; i--)
if (!(CharEq(blank, *to++)))
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <term.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_mvcur.c,v 1.97 2003/12/27 16:43:59 tom Exp $")
+MODULE_ID("$Id: lib_mvcur.c,v 1.103 2005/06/11 19:30:15 tom Exp $")
#define WANT_CHAR(y, x) SP->_newscr->_line[y].text[x] /* desired state */
#define BAUDRATE cur_term->_baudrate /* bits per second */
&& n > 0
&& n < (int) check.s_size
&& vcost == 0
- && str[0] == '\0'
- && isdigit(CharOf(WANT_CHAR(to_y, from_x))))
- ovw = FALSE;
+ && str[0] == '\0') {
+ int wanted = CharOf(WANT_CHAR(to_y, from_x));
+ if (is8bits(wanted) && isdigit(wanted))
+ ovw = FALSE;
+ }
#endif
/*
* If we have no attribute changes, overwrite is cheaper.
for (i = 0; i < n; i++) {
NCURSES_CH_T ch = WANT_CHAR(to_y, from_x + i);
- if (AttrOf(ch) != SP->_current_attr
+ if (!SameAttrOf(ch, SCREEN_ATTRS(SP))
#if USE_WIDEC_SUPPORT
|| !Charable(ch)
#endif
mvcur(int yold, int xold, int ynew, int xnew)
/* optimized cursor move from (yold, xold) to (ynew, xnew) */
{
- attr_t oldattr;
+ NCURSES_CH_T oldattr;
int code;
TR(TRACE_CALLS | TRACE_MOVE, (T_CALLED("mvcur(%d,%d,%d,%d)"),
* character set -- these have a strong tendency to screw up the CR &
* LF used for local character motions!
*/
- oldattr = SP->_current_attr;
- if ((oldattr & A_ALTCHARSET)
- || (oldattr && !move_standout_mode)) {
+ oldattr = SCREEN_ATTRS(SP);
+ if ((AttrOf(oldattr) & A_ALTCHARSET)
+ || (AttrOf(oldattr) && !move_standout_mode)) {
TR(TRACE_CHARPUT, ("turning off (%#lx) %s before move",
- oldattr, _traceattr(oldattr)));
- (void) vidattr(A_NORMAL);
+ (unsigned long) AttrOf(oldattr),
+ _traceattr(AttrOf(oldattr))));
+ (void) VIDATTR(A_NORMAL, 0);
}
if (xold >= screen_columns) {
/*
* Restore attributes if we disabled them before moving.
*/
- if (oldattr != SP->_current_attr) {
+ if (!SameAttrOf(oldattr, SCREEN_ATTRS(SP))) {
TR(TRACE_CHARPUT, ("turning on (%#lx) %s after move",
- oldattr, _traceattr(oldattr)));
- (void) vidattr(oldattr);
+ (unsigned long) AttrOf(oldattr),
+ _traceattr(AttrOf(oldattr))));
+ (void) VIDATTR(AttrOf(oldattr), GetPair(oldattr));
}
}
returnCode(code);
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
# endif
#endif
-MODULE_ID("$Id: lib_twait.c,v 1.49 2003/11/30 00:34:36 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_twait.c,v 1.50 2004/09/25 22:53:43 tom Exp $")
static long
_nc_gettime(bool first)
}
#endif
- result = poll(fds, count, milliseconds);
+ result = poll(fds, (unsigned) count, milliseconds);
#ifdef NCURSES_WGETCH_EVENTS
if ((mode & 4) && evl) {
/****************************************************************************
- * Copyright (c) 1998,1999,2000,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996 on *
****************************************************************************/
/*
#include <curses.priv.h>
#include <term.h>
-MODULE_ID("$Id: lib_vidattr.c,v 1.39 2001/08/26 00:40:46 Philippe.Blain Exp $")
+MODULE_ID("$Id: lib_vidattr.c,v 1.44 2005/01/22 22:15:44 tom Exp $")
#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
}
NCURSES_EXPORT(int)
-vidputs
-(chtype newmode, int (*outc) (int))
+vidputs(chtype newmode, int (*outc) (int))
{
static attr_t previous_attr = A_NORMAL;
attr_t turn_on, turn_off;
/* this allows us to go on whether or not newterm() has been called */
if (SP)
- previous_attr = SP->_current_attr;
+ previous_attr = AttrOf(SCREEN_ATTRS(SP));
TR(TRACE_ATTRS, ("previous attribute was %s", _traceattr(previous_attr)));
TurnOff(A_STANDOUT, exit_standout_mode);
}
}
- previous_attr &= ~A_COLOR;
+ previous_attr &= ALL_BUT_COLOR;
}
SetColorsIf((pair != 0) || fix_pair0, previous_attr);
(newmode & A_INVIS) != 0,
(newmode & A_PROTECT) != 0,
(newmode & A_ALTCHARSET) != 0), 1, outc);
- previous_attr &= ~A_COLOR;
+ previous_attr &= ALL_BUT_COLOR;
}
SetColorsIf((pair != 0) || fix_pair0, previous_attr);
} else {
if (turn_off && exit_attribute_mode) {
doPut(exit_attribute_mode);
- turn_on |= (newmode & (chtype) (~A_COLOR));
- previous_attr &= ~A_COLOR;
+ turn_on |= (newmode & ALL_BUT_COLOR);
+ previous_attr &= ALL_BUT_COLOR;
}
SetColorsIf((pair != 0) || fix_pair0, previous_attr);
TurnOn(A_PROTECT, enter_protected_mode);
TurnOn(A_INVIS, enter_secure_mode);
TurnOn(A_UNDERLINE, enter_underline_mode);
-#ifdef enter_horizontal_hl_mode
+#if USE_WIDEC_SUPPORT
TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
-#endif
-#ifdef enter_left_hl_mode
TurnOn(A_LEFT, enter_left_hl_mode);
-#endif
-#ifdef enter_low_hl_mode
TurnOn(A_LOW, enter_low_hl_mode);
-#endif
-#ifdef enter_right_hl_mode
TurnOn(A_RIGHT, enter_right_hl_mode);
-#endif
-#ifdef enter_top_hl_mode
TurnOn(A_TOP, enter_top_hl_mode);
-#endif
-#ifdef enter_vertical_hl_mode
TurnOn(A_VERTICAL, enter_vertical_hl_mode);
#endif
/* *INDENT-ON* */
newmode |= A_REVERSE;
if (SP)
- SP->_current_attr = newmode;
+ SetAttr(SCREEN_ATTRS(SP), newmode);
else
previous_attr = newmode;
/****************************************************************************
- * Copyright (c) 1998-2000,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2003,2004 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 *
#define TTY_DISPLAY_H 1
/*
- * $Id: tty_display.h,v 1.5 2003/08/02 22:59:07 Philippe.Blain Exp $
+ * $Id: tty_display.h,v 1.6 2005/01/01 23:41:12 tom Exp $
*/
extern NCURSES_EXPORT(bool) _nc_tty_beep (void);
extern NCURSES_EXPORT(bool) _nc_tty_check_resize (void);
: INFINITY)))
#if USE_XMC_SUPPORT
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) { \
+#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) { \
attr_t chg = D->_current_attr; \
vidattr(AttrOf(c)); \
if (magic_cookie_glitch > 0 \
} \
}
#else
-#define UpdateAttrs(c) if (D->_current_attr != AttrOf(c)) \
+#define UpdateAttrs(c) if (!SameAttrOf(D->_current_attr, AttrOf(c))) \
vidattr(AttrOf(c));
#endif
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
- * and: Thomas E. Dickey 1996-2004 *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*-----------------------------------------------------------------
#include <ctype.h>
#include <term.h>
-MODULE_ID("$Id: tty_update.c,v 1.205 2004/02/07 18:02:42 tom Exp $")
+MODULE_ID("$Id: tty_update.c,v 1.220 2005/08/13 17:12:32 tom Exp $")
/*
* This define controls the line-breakout optimization. Every once in a
#define FILL_BCE() (SP->_coloron && !SP->_default_color && !back_color_erase)
+static const NCURSES_CH_T normal = NewChar2(BLANK_TEXT, BLANK_ATTR);
+
/*
* Enable checking to see if doupdate and friends are tracking the true
* cursor position correctly. NOTE: this is a debugging hack which will
NCURSES_CH_T my_ch;
PUTC_DATA;
NCURSES_CH_T tilde;
- NCURSES_ATTR_T attr = AttrOfD(ch);
+ NCURSES_CH_T attr = CHDEREF(ch);
TR(TRACE_CHARPUT, ("PutAttrChar(%s) at (%d, %d)",
_tracech_t(ch),
/*
* If this is not a valid character, there is nothing more to do.
*/
- if (isnac(CHDEREF(ch)))
+ if (isWidecExt(CHDEREF(ch))) {
+ TR(TRACE_CHARPUT, ("...skip"));
return;
+ }
/*
* Determine the number of character cells which the 'ch' value will use
* on the screen. It should be at least one.
if ((chlen = wcwidth(CharOf(CHDEREF(ch)))) <= 0) {
static NCURSES_CH_T blank = NewChar(BLANK_TEXT);
- if (isprint(CharOf(CHDEREF(ch)))
- || (SP->_posix_locale && CharOf(CHDEREF(ch)) >= 160)) {
+ if (is8bits(CharOf(CHDEREF(ch)))
+ && (isprint(CharOf(CHDEREF(ch)))
+ || (SP->_legacy_coding && CharOf(CHDEREF(ch)) >= 160))) {
;
} else {
ch = CHREF(blank);
}
#endif
- if ((attr & A_ALTCHARSET)
+ if ((AttrOf(attr) & A_ALTCHARSET)
&& SP->_acs_map != 0
&& CharOfD(ch) < ACS_LEN) {
my_ch = CHDEREF(ch); /* work around const param */
* normal one to be broken (by mis-design ;-).
*/
if (SP->_screen_acs_fix
- && SP->_acs_map[CharOf(my_ch)] & A_ALTCHARSET) {
- attr &= ~(A_ALTCHARSET);
+ && SP->_screen_acs_map[CharOf(my_ch)]) {
+ RemAttr(attr, A_ALTCHARSET);
my_ch = _nc_wacs[CharOf(my_ch)];
}
#endif
- if (attr & A_ALTCHARSET) {
- chtype temp = UChar(SP->_acs_map[CharOfD(ch)]);
+ /*
+ * If we (still) have alternate character set, it is the normal 8bit
+ * flavor. The _screen_acs_map[] array tells if the character was
+ * really in acs_chars, needed because of the way wide/normal line
+ * drawing flavors are integrated.
+ */
+ if (AttrOf(attr) & A_ALTCHARSET) {
+ int j = CharOfD(ch);
+ chtype temp = UChar(SP->_acs_map[j]);
+
+ if (!(SP->_screen_acs_map[j]))
+ RemAttr(attr, A_ALTCHARSET);
if (temp != 0)
- SetChar(my_ch, temp, attr);
- RemAttr(my_ch, A_ALTCHARSET);
+ SetChar(my_ch, temp, AttrOf(attr));
}
ch = CHREF(my_ch);
}
if (tilde_glitch && (CharOfD(ch) == L('~'))) {
- SetChar(tilde, L('`'), attr);
+ SetChar(tilde, L('`'), AttrOf(attr));
ch = CHREF(tilde);
}
{
if (!back_color_erase && SP->_coloron) {
#if NCURSES_EXT_FUNCS
+ int pair;
+
if (!SP->_default_color)
return FALSE;
if (SP->_default_fg != C_MASK || SP->_default_bg != C_MASK)
return FALSE;
- if (AttrOfD(ch) & A_COLOR) {
+ if ((pair = GetPair(CHDEREF(ch))) != 0) {
short fg, bg;
- pair_content(PAIR_NUMBER(AttrOfD(ch)), &fg, &bg);
+ pair_content(pair, &fg, &bg);
if (fg != C_MASK || bg != C_MASK)
return FALSE;
}
if (erase_chars
&& runcount > SP->_ech_cost + SP->_cup_ch_cost
&& can_clear_with(CHREF(ntext0))) {
- UpdateAttrs(AttrOf(ntext0));
+ UpdateAttrs(ntext0);
putp(tparm(erase_chars, runcount));
/*
if (wrap_possible)
rep_count--;
- UpdateAttrs(AttrOf(ntext0));
+ UpdateAttrs(ntext0);
tputs(tparm(repeat_char, CharOf(ntext0), rep_count),
rep_count, _nc_outch);
SP->_curscol += rep_count;
if (otext != ntext
&& (last - first + 1) > SP->_inline_cost) {
for (j = first, same = 0; j <= last; j++) {
- if (!same && isnac(otext[j]))
+ if (!same && isWidecExt(otext[j]))
continue;
if (CharEq(otext[j], ntext[j])) {
same++;
* Keep the physical screen in normal mode in case we get other
* processes writing to the screen.
*/
- UpdateAttrs(A_NORMAL);
+ UpdateAttrs(normal);
_nc_flush();
curscr->_attrs = newscr->_attrs;
}
if (needclear) {
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("clr_eol");
if (clr_eol && SP->_el_cost <= (screen_columns - SP->_curscol)) {
putp(clr_eol);
row = SP->_cursrow;
col = SP->_curscol;
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("clr_eos");
tputs(clr_eos, screen_lines - row, _nc_outch);
int n;
bool attrchanged = FALSE;
- TR(TRACE_UPDATE, ("TransformLine(%d) called", lineno));
+ TR(TRACE_UPDATE, (T_CALLED("TransformLine(%d)"), lineno));
/* copy new hash value to old one */
if (SP->oldhash && SP->newhash)
SP->oldhash[lineno] = SP->newhash[lineno];
-#define ColorOf(n) (AttrOf(n) & A_COLOR)
-#define unColor(n) (AttrOf(n) & ALL_BUT_COLOR)
/*
* If we have colors, there is the possibility of having two color pairs
* that display as the same colors. For instance, Lynx does this. Check
* they are equivalent.
*/
if (SP->_coloron) {
- attr_t oldColor;
- attr_t newColor;
int oldPair;
int newPair;
for (n = 0; n < screen_columns; n++) {
if (!CharEq(newLine[n], oldLine[n])) {
- oldColor = ColorOf(oldLine[n]);
- newColor = ColorOf(newLine[n]);
- if (oldColor != newColor
+ oldPair = GetPair(oldLine[n]);
+ newPair = GetPair(newLine[n]);
+ if (oldPair != newPair
&& unColor(oldLine[n]) == unColor(newLine[n])) {
- oldPair = PAIR_NUMBER(oldColor);
- newPair = PAIR_NUMBER(newColor);
if (oldPair < COLOR_PAIRS
&& newPair < COLOR_PAIRS
&& SP->_color_pairs[oldPair] == SP->_color_pairs[newPair]) {
- RemAttr(oldLine[n], A_COLOR);
- AddAttr(oldLine[n], ColorOf(newLine[n]));
+ SetPair(oldLine[n], GetPair(newLine[n]));
}
}
}
if (ceol_standout_glitch && clr_eol) {
firstChar = 0;
while (firstChar < screen_columns) {
- if (AttrOf(newLine[firstChar]) != AttrOf(oldLine[firstChar])) {
+ if (!SameAttrOf(newLine[firstChar], oldLine[firstChar])) {
attrchanged = TRUE;
break;
}
if (nFirstChar >= screen_columns
&& SP->_el_cost <= SP->_el1_cost) {
GoTo(lineno, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("clr_eol");
putp(clr_eol);
} else {
GoTo(lineno, nFirstChar - 1);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("clr_bol");
putp(clr_bol);
}
firstChar++;
}
/* if there wasn't one, we're done */
- if (firstChar >= screen_columns)
+ if (firstChar >= screen_columns) {
+ TR(TRACE_UPDATE, (T_RETURN("")));
return;
+ }
blank = newLine[screen_columns - 1];
newLine + firstChar,
(nLastChar - firstChar + 1) * sizeof(NCURSES_CH_T));
}
+ TR(TRACE_UPDATE, (T_RETURN("")));
return;
}
/* can be -1 if no characters differ */
while (CharEq(newLine[nLastChar], oldLine[oLastChar])) {
/* don't split a wide char */
- if (isnac(newLine[nLastChar]) &&
+ if (isWidecExt(newLine[nLastChar]) &&
!CharEq(newLine[nLastChar - 1], oldLine[oLastChar - 1]))
break;
nLastChar--;
if (oLastChar < nLastChar) {
int m = max(nLastNonblank, oLastNonblank);
+#if USE_WIDEC_SUPPORT
+ while (isWidecExt(newLine[n + 1]) && n) {
+ --n;
+ --oLastChar;
+ }
+#endif
GoTo(lineno, n + 1);
- if (InsCharCost(nLastChar - oLastChar)
- > (m - n)) {
+ if ((nLastChar < nLastNonblank)
+ || InsCharCost(nLastChar - oLastChar) > (m - n)) {
PutRange(oldLine, newLine, lineno, n + 1, m);
} else {
InsStr(&newLine[n + 1], nLastChar - oLastChar);
* setting the video attributes from
* the last character on the row.
*/
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
DelChar(oLastChar - nLastChar);
}
}
memcpy(oldLine + firstChar,
newLine + firstChar,
(screen_columns - firstChar) * sizeof(NCURSES_CH_T));
+ TR(TRACE_UPDATE, (T_RETURN("")));
+ return;
}
/*
#if NCURSES_EXT_FUNCS
if (SP->_coloron
&& !SP->_default_color) {
- _nc_do_color((int) COLOR_PAIR(SP->_current_attr), 0, FALSE, _nc_outch);
+ _nc_do_color(GET_SCREEN_PAIR(SP), 0, FALSE, _nc_outch);
if (!back_color_erase) {
fast_clear = FALSE;
}
if (fast_clear) {
if (clear_screen) {
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("clear_screen");
putp(clear_screen);
SP->_cursrow = SP->_curscol = 0;
SP->_cursrow = SP->_curscol = -1;
GoTo(0, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("clr_eos");
tputs(clr_eos, screen_lines, _nc_outch);
} else if (clr_eol) {
SP->_cursrow = SP->_curscol = -1;
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
for (i = 0; i < screen_lines; i++) {
GoTo(i, 0);
TPUTS_TRACE("clr_eol");
GoTo(0, 0);
}
} else {
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
for (i = 0; i < screen_lines; i++) {
GoTo(i, 0);
for (j = 0; j < screen_columns; j++)
if (n == 1 && scroll_forward && top == miny && bot == maxy) {
GoTo(bot, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("scroll_forward");
putp(scroll_forward);
} else if (n == 1 && delete_line && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("delete_line");
putp(delete_line);
} else if (parm_index && top == miny && bot == maxy) {
GoTo(bot, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("parm_index");
tputs(tparm(parm_index, n, 0), n, _nc_outch);
} else if (parm_delete_line && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("parm_delete_line");
tputs(tparm(parm_delete_line, n, 0), n, _nc_outch);
} else if (scroll_forward && top == miny && bot == maxy) {
GoTo(bot, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
for (i = 0; i < n; i++) {
TPUTS_TRACE("scroll_forward");
putp(scroll_forward);
}
} else if (delete_line && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
for (i = 0; i < n; i++) {
TPUTS_TRACE("delete_line");
putp(delete_line);
if (n == 1 && scroll_reverse && top == miny && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("scroll_reverse");
putp(scroll_reverse);
} else if (n == 1 && insert_line && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("insert_line");
putp(insert_line);
} else if (parm_rindex && top == miny && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("parm_rindex");
tputs(tparm(parm_rindex, n, 0), n, _nc_outch);
} else if (parm_insert_line && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
TPUTS_TRACE("parm_insert_line");
tputs(tparm(parm_insert_line, n, 0), n, _nc_outch);
} else if (scroll_reverse && top == miny && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
for (i = 0; i < n; i++) {
TPUTS_TRACE("scroll_reverse");
putp(scroll_reverse);
}
} else if (insert_line && bot == maxy) {
GoTo(top, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
for (i = 0; i < n; i++) {
TPUTS_TRACE("insert_line");
putp(insert_line);
return ERR;
GoTo(del, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
if (n == 1 && delete_line) {
TPUTS_TRACE("delete_line");
putp(delete_line);
}
GoTo(ins, 0);
- UpdateAttrs(AttrOf(blank));
+ UpdateAttrs(blank);
if (n == 1 && insert_line) {
TPUTS_TRACE("insert_line");
putp(insert_line);
_nc_screen_resume(void)
{
/* make sure terminal is in a sane known state */
- SP->_current_attr = A_NORMAL;
+ SetAttr(SCREEN_ATTRS(SP), A_NORMAL);
newscr->_clear = TRUE;
/* reset color pairs and definitions */
NCURSES_EXPORT(void)
_nc_screen_wrap(void)
{
- UpdateAttrs(A_NORMAL);
+ UpdateAttrs(normal);
#if NCURSES_EXT_FUNCS
if (SP->_coloron
&& !SP->_default_color) {
NCURSES_EXPORT(void)
_nc_do_xmc_glitch(attr_t previous)
{
- attr_t chg = XMC_CHANGES(previous ^ SP->_current_attr);
+ attr_t chg = XMC_CHANGES(previous ^ AttrOf(SCREEN_ATTRS(SP)));
while (chg != 0) {
if (chg & 1) {
/****************************************************************************
- * Copyright (c) 2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2003-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: charable.c,v 1.2 2003/07/05 18:04:08 tom Exp $")
+MODULE_ID("$Id: charable.c,v 1.4 2005/04/16 18:08:56 tom Exp $")
NCURSES_EXPORT(bool) _nc_is_charable(wchar_t ch)
{
bool result;
#if HAVE_WCTOB
- result = (wctob(ch) == ch);
+ result = (wctob((wint_t) ch) == ch);
#else
result = (_nc_to_char(ch) >= 0);
#endif
#if HAVE_BTOWC
result = btowc(ch);
#elif HAVE_MBTOWC
+ wchar_t convert;
char temp[2];
temp[0] = ch;
temp[1] = '\0';
- if (mbtowc((wchar_t *) (&result), temp, 1) != 1)
+ if (mbtowc(&convert, temp, 1) >= 0)
+ result = convert;
+ else
result = WEOF;
#endif
return result;
#include <curses.priv.h>
-MODULE_ID("$Id: lib_add_wch.c,v 1.2 2004/02/07 17:53:33 tom Exp $")
+MODULE_ID("$Id: lib_add_wch.c,v 1.4 2004/09/19 00:33:51 tom Exp $")
NCURSES_EXPORT(int)
wadd_wch(WINDOW *win, const cchar_t * wch)
break;
if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
code = ERR;
- if (PUTC_ch < 256)
- code = waddch(win, UChar(PUTC_ch));
+ if (is8bits(PUTC_ch))
+ code = waddch(win, UChar(PUTC_ch) | wch->attr);
break;
}
for (n = 0; n < PUTC_n; n++) {
- if ((code = waddch(win, UChar(PUTC_buf[n]))) == ERR) {
+ if ((code = waddch(win, UChar(PUTC_buf[n]) | wch->attr)) == ERR) {
break;
}
}
break;
if ((PUTC_n = wcrtomb(PUTC_buf, PUTC_ch, &PUT_st)) <= 0) {
code = ERR;
- if (PUTC_ch < 256)
- code = waddch(win, UChar(PUTC_ch));
+ if (is8bits(PUTC_ch))
+ code = waddch(win, UChar(PUTC_ch) | wch->attr);
break;
}
for (n = 0; n < PUTC_n; n++) {
- if ((code = waddch(win, UChar(PUTC_buf[n]))) == ERR) {
+ if ((code = waddch(win, UChar(PUTC_buf[n]) | wch->attr)) == ERR) {
break;
}
}
/****************************************************************************
- * Copyright (c) 2001-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2001-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_cchar.c,v 1.8 2003/05/25 00:07:41 tom Exp $")
+MODULE_ID("$Id: lib_cchar.c,v 1.11 2005/01/29 21:29:16 tom Exp $")
/*
* The SuSv2 description leaves some room for interpretation. We'll assume wch
- * is L'\0' terminated, contains at most one character with strictly positive
- * width, which must be the first, and contains no characters of negative
- * width.
+ * points to a string which is L'\0' terminated, contains at least one
+ * character with strictly positive width, which must be the first, and
+ * contains no characters of negative width.
*/
NCURSES_EXPORT(int)
-setcchar(cchar_t * wcval, const wchar_t * wch, const attr_t attrs,
- short color_pair, const void *opts)
+setcchar(cchar_t *wcval,
+ const wchar_t *wch,
+ const attr_t attrs,
+ short color_pair,
+ const void *opts)
{
int i;
int len;
TR(TRACE_CCALLS, (T_CALLED("setcchar(%p,%s,%ld,%d,%p)"),
wcval, _nc_viswbuf(wch), attrs, color_pair, opts));
- if (opts != NULL || (len = wcslen(wch)) > CCHARW_MAX
+ len = wcslen(wch);
+ if (opts != NULL
|| (len > 1 && wcwidth(wch[0]) < 0)) {
code = ERR;
} else {
+ if (len > CCHARW_MAX)
+ len = CCHARW_MAX;
/*
* If we have a following spacing-character, stop at that point. We
memset(wcval, 0, sizeof(*wcval));
if (len != 0) {
- SetAttr(*wcval, attrs | color_pair);
+ SetAttr(*wcval, attrs | COLOR_PAIR(color_pair));
+ SetPair(CHDEREF(wcval), color_pair);
memcpy(&wcval->chars, wch, len * sizeof(wchar_t));
TR(TRACE_CCALLS, ("copy %d wchars, first is %s", len,
_tracecchar_t(wcval)));
}
NCURSES_EXPORT(int)
-getcchar(const cchar_t * wcval, wchar_t * wch, attr_t * attrs,
- short *color_pair, void *opts)
+getcchar(const cchar_t *wcval,
+ wchar_t *wch,
+ attr_t *attrs,
+ short *color_pair,
+ void *opts)
{
wchar_t *wp;
int len;
} else if (attrs == 0 || color_pair == 0) {
code = ERR;
} else if (len >= 0) {
- *attrs = AttrOf(*wcval);
- *color_pair = AttrOf(*wcval) & A_COLOR;
+ *attrs = AttrOf(*wcval) & A_ATTRIBUTES;
+ *color_pair = GetPair(*wcval);
wmemcpy(wch, wcval->chars, (unsigned) len);
wch[len] = L'\0';
code = OK;
/****************************************************************************
- * Copyright (c) 2002,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 2002,2004 *
+ * Author: Thomas E. Dickey 2002-on *
****************************************************************************/
/*
*/
#include <curses.priv.h>
+#include <ctype.h>
-MODULE_ID("$Id: lib_get_wch.c,v 1.6 2004/01/18 01:18:17 tom Exp $")
+MODULE_ID("$Id: lib_get_wch.c,v 1.12 2005/08/13 18:51:43 tom Exp $")
#if HAVE_MBTOWC && HAVE_MBLEN
#define reset_mbytes(state) mblen(NULL, 0), mbtowc(NULL, NULL, 0)
#define count_mbytes(buffer,length,state) mblen(buffer,length)
#define check_mbytes(wch,buffer,length,state) \
- (int) mbtowc(&wch, buffer, count)
+ (int) mbtowc(&wch, buffer, length)
+#define state_unused
#elif HAVE_MBRTOWC && HAVE_MBRLEN
-#define reset_mbytes(state) memset(&state, 0, sizeof(state))
+#define reset_mbytes(state) init_mb(state)
#define count_mbytes(buffer,length,state) mbrlen(buffer,length,&state)
#define check_mbytes(wch,buffer,length,state) \
- (int) mbrtowc(&wch, buffer, count, &state)
+ (int) mbrtowc(&wch, buffer, length, &state)
#else
make an error
#endif
NCURSES_EXPORT(int)
-wget_wch(WINDOW *win, wint_t * result)
+wget_wch(WINDOW *win, wint_t *result)
{
int code;
char buffer[(MB_LEN_MAX * 9) + 1]; /* allow some redundant shifts */
int status;
- mbstate_t state;
size_t count = 0;
unsigned long value;
wchar_t wch;
+#ifndef state_unused
+ mbstate_t state;
+#endif
T((T_CALLED("wget_wch(%p)"), win));
- (void) state;
/*
* We can get a stream of single-byte characters and KEY_xxx codes from
* would be worth the effort.
*/
if (count != 0) {
- ungetch(value);
+ ungetch((int) value);
code = ERR;
}
break;
} else if (count + 1 >= sizeof(buffer)) {
- ungetch(value);
+ ungetch((int) value);
code = ERR;
break;
} else {
reset_mbytes(state);
if (check_mbytes(wch, buffer, count, state) != status) {
code = ERR; /* the two calls should match */
+ ungetch((int) value);
}
value = wch;
break;
/****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2003,2004 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 2002 *
+ * Author: Thomas E. Dickey *
****************************************************************************/
/*
#include <curses.priv.h>
#include <term.h>
-MODULE_ID("$Id: lib_get_wstr.c,v 1.6 2003/05/17 21:33:03 tom Exp $")
+MODULE_ID("$Id: lib_get_wstr.c,v 1.8 2004/10/16 21:55:36 tom Exp $")
+
+static int
+wadd_wint(WINDOW *win, wint_t *src)
+{
+ cchar_t tmp;
+ wchar_t wch[2];
+
+ wch[0] = *src;
+ wch[1] = 0;
+ setcchar(&tmp, wch, A_NORMAL, 0, NULL);
+ return wadd_wch(win, &tmp);
+}
/*
* This wipes out the last character, no matter whether it was a tab, control
* or other character, and handles reverse wraparound.
*/
-static wchar_t *
-WipeOut(WINDOW *win, int y, int x, wchar_t * first, wchar_t * last, bool echoed)
+static wint_t *
+WipeOut(WINDOW *win, int y, int x, wint_t *first, wint_t *last, bool echoed)
{
if (last > first) {
*--last = '\0';
if (echoed) {
int y1 = win->_cury;
int x1 = win->_curx;
+ int n;
wmove(win, y, x);
- waddwstr(win, first);
+ for (n = 0; first[n] != 0; ++n) {
+ wadd_wint(win, first + n);
+ }
getyx(win, y, x);
while (win->_cury < y1
|| (win->_cury == y1 && win->_curx < x1))
}
NCURSES_EXPORT(int)
-wgetn_wstr(WINDOW *win, wint_t * str, int maxlen)
+wgetn_wstr(WINDOW *win, wint_t *str, int maxlen)
{
TTY buf;
bool oldnl, oldecho, oldraw, oldcbreak;
wint_t erasec;
wint_t killc;
- wchar_t *oldstr;
- wchar_t *tmpstr;
+ wint_t *oldstr = str;
+ wint_t *tmpstr = str;
wint_t ch;
int y, x, code;
erasec = erasechar();
killc = killchar();
- assert(sizeof(wchar_t) == sizeof(wint_t));
- oldstr = (wchar_t *) str;
- tmpstr = (wchar_t *) str;
-
getyx(win, y, x);
if (is_wintouched(win) || (win->_flags & _HASMOVED))
*tmpstr = 0;
if (oldecho == TRUE) {
int oldy = win->_cury;
- cchar_t tmp;
- setcchar(&tmp, tmpstr - 1, A_NORMAL, 0, NULL);
- if (wadd_wch(win, &tmp) == ERR) {
+ if (wadd_wint(win, tmpstr - 1) == ERR) {
/*
* We can't really use the lower-right corner for input,
* since it'll mess up bookkeeping for erases.
*tmpstr = 0;
if (code == ERR) {
if (tmpstr == oldstr) {
- *tmpstr++ = (wchar_t) WEOF;
+ *tmpstr++ = WEOF;
*tmpstr = 0;
}
returnCode(ERR);
}
- T(("wgetn_wstr returns %s", _nc_viswbuf(oldstr)));
+ T(("wgetn_wstr returns %s", _nc_viswibuf(oldstr)));
returnCode(OK);
}
/****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2004 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas Dickey 2002 *
+ * Author: Thomas Dickey 2002,2004 *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_in_wch.c,v 1.2 2002/08/03 20:23:29 tom Exp $")
+MODULE_ID("$Id: lib_in_wch.c,v 1.3 2004/05/16 00:13:52 tom Exp $")
NCURSES_EXPORT(int)
win_wch(WINDOW *win, cchar_t * wcval)
} else {
code = ERR;
}
- returnCode(code);
+ TR(TRACE_CCALLS, (T_RETURN("%d"), code));
+ return (code);
}
/****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2004 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas Dickey 2002 *
+ * Author: Thomas Dickey 2002,2004 *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_in_wchnstr.c,v 1.2 2002/08/03 20:38:45 tom Exp $")
+MODULE_ID("$Id: lib_in_wchnstr.c,v 1.3 2004/05/16 00:12:30 tom Exp $")
NCURSES_EXPORT(int)
win_wchnstr(WINDOW *win, cchar_t * wchstr, int n)
{
int code = OK;
- TR(TRACE_CCALLS, (T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
+ TR(TRACE_CALLS, (T_CALLED("win_wchnstr(%p,%p,%d)"), win, wchstr, n));
if (win != 0
&& wchstr != 0) {
+ int row, col;
+ int j;
+
+ getyx(win, row, col);
if (n < 0) {
n = getmaxx(win) + 1 - getcurx(win);
}
- while (n-- > 0)
- win_wch(win, wchstr++);
+ for (j = 0; j < n; ++j) {
+ wchstr[j] = win->_line[row].text[col + j];
+ }
+ T(("result = %s", _nc_viscbuf(wchstr, n)));
} else {
code = ERR;
}
/****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2003,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_ins_wch.c,v 1.3 2003/03/29 21:52:29 tom Exp $")
+MODULE_ID("$Id: lib_ins_wch.c,v 1.7 2005/09/17 19:25:13 tom Exp $")
/*
* Insert the given character, updating the current location to simplify
* inserting a string.
*/
-static void
-_nc_insert_wch(WINDOW *win, const cchar_t * wch)
+static int
+_nc_insert_wch(WINDOW *win, const cchar_t *wch)
{
+ int cells = wcwidth(CharOf(CHDEREF(wch)));
+ int cell;
+
+ if (cells <= 0)
+ cells = 1;
+
if (win->_curx <= win->_maxx) {
struct ldat *line = &(win->_line[win->_cury]);
NCURSES_CH_T *end = &(line->text[win->_curx]);
NCURSES_CH_T *temp1 = &(line->text[win->_maxx]);
- NCURSES_CH_T *temp2 = temp1 - 1;
+ NCURSES_CH_T *temp2 = temp1 - cells;
CHANGED_TO_EOL(line, win->_curx, win->_maxx);
while (temp1 > end)
*temp1-- = *temp2--;
*temp1 = _nc_render(win, *wch);
+ for (cell = 1; cell < cells; ++cell) {
+ SetWidecExt(temp1[cell], cell);
+ }
win->_curx++;
}
+ return OK;
}
NCURSES_EXPORT(int)
-wins_wch(WINDOW *win, const cchar_t * wch)
+wins_wch(WINDOW *win, const cchar_t *wch)
{
NCURSES_SIZE_T oy;
NCURSES_SIZE_T ox;
oy = win->_cury;
ox = win->_curx;
- _nc_insert_wch(win, wch);
+ code = _nc_insert_wch(win, wch);
win->_curx = ox;
win->_cury = oy;
_nc_synchook(win);
- code = OK;
}
returnCode(code);
}
NCURSES_EXPORT(int)
-wins_nwstr(WINDOW *win, const wchar_t * wstr, int n)
+wins_nwstr(WINDOW *win, const wchar_t *wstr, int n)
{
int code = ERR;
NCURSES_SIZE_T oy;
&& wstr != 0) {
if (n < 1)
n = wcslen(wstr);
+ code = OK;
if (n > 0) {
oy = win->_cury;
ox = win->_curx;
for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
- if (wcwidth(*cp) > 1) {
+ int len = wcwidth(*cp);
+
+ if (len != 1) {
cchar_t tmp_cchar;
wchar_t tmp_wchar = *cp;
memset(&tmp_cchar, 0, sizeof(tmp_cchar));
WA_NORMAL,
0,
(void *) 0);
- _nc_insert_wch(win, &tmp_cchar);
+ code = _nc_insert_wch(win, &tmp_cchar);
} else {
- _nc_insert_ch(win, *cp); /* tabs, other ASCII stuff */
+ /* tabs, other ASCII stuff */
+ code = _nc_insert_ch(win, (chtype) (*cp));
}
+ if (code != OK)
+ break;
}
win->_curx = ox;
win->_cury = oy;
_nc_synchook(win);
}
- code = OK;
}
returnCode(code);
}
/****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2004 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas Dickey 2002 *
+ * Author: Thomas Dickey *
****************************************************************************/
/*
#include <curses.priv.h>
-MODULE_ID("$Id: lib_inwstr.c,v 1.3 2002/10/06 00:56:36 tom Exp $")
+MODULE_ID("$Id: lib_inwstr.c,v 1.4 2004/10/23 20:41:28 tom Exp $")
NCURSES_EXPORT(int)
-winnwstr(WINDOW *win, wchar_t * wstr, int n)
+winnwstr(WINDOW *win, wchar_t *wstr, int n)
{
int row, col, inx;
int count = 0;
text = win->_line[row].text;
while (count < n && count != ERR) {
- if (!isnac(text[col])) {
+ if (!isWidecExt(text[col])) {
for (inx = 0; (inx < CCHARW_MAX)
&& ((wch = text[col].chars[inx]) != 0);
++inx) {
* it does not define what happens for a negative count with winnwstr().
*/
NCURSES_EXPORT(int)
-winwstr(WINDOW *win, wchar_t * wstr)
+winwstr(WINDOW *win, wchar_t *wstr)
{
int result = OK;
T((T_CALLED("winwstr(%p,%p)"), win, wstr));
/****************************************************************************
- * Copyright (c) 2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 2003-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey, 2003 *
+ * Author: Thomas E. Dickey *
****************************************************************************/
/*
*/
#include <curses.priv.h>
-#ifdef HAVE_WCTYPE_H
+#if HAVE_WCTYPE_H
#include <wctype.h>
#endif
-MODULE_ID("$Id: lib_slk_wset.c,v 1.6 2004/01/03 21:14:03 tom Exp $")
+MODULE_ID("$Id: lib_slk_wset.c,v 1.11 2005/01/16 01:03:53 tom Exp $")
NCURSES_EXPORT(int)
-slk_wset(int i, const wchar_t * astr, int format)
+slk_wset(int i, const wchar_t *astr, int format)
{
- static wchar_t empty[] =
- {L'\0'};
int result = ERR;
- SLK *slk = SP->_slk;
- int offset;
size_t arglen;
- const wchar_t *p;
+ const wchar_t *str;
+ char *mystr;
+ mbstate_t state;
T((T_CALLED("slk_wset(%d, %s, %d)"), i, _nc_viswbuf(astr), format));
- if (astr == 0)
- astr = empty;
- arglen = wcslen(astr);
- while (iswspace(*astr)) {
- --arglen;
- ++astr; /* skip over leading spaces */
- }
- p = astr;
- while (iswprint(*p))
- p++; /* The first non-print stops */
-
- arglen = (size_t) (p - astr);
-
- if (slk != NULL &&
- i >= 1 &&
- i <= slk->labcnt &&
- format >= 0 &&
- format <= 2) {
- char *new_text;
- size_t n;
- size_t used = 0;
- int mycols;
- mbstate_t state;
-
- --i; /* Adjust numbering of labels */
-
- /*
- * Reduce the actual number of columns to fit in the label field.
- */
- while (arglen != 0 && wcswidth(astr, arglen) > slk->maxlen) {
- --arglen;
- }
- mycols = wcswidth(astr, arglen);
-
- /*
- * translate the wide-character string to multibyte form.
- */
- memset(&state, 0, sizeof(state));
-
- if ((new_text = (char *) _nc_doalloc(0, MB_LEN_MAX * arglen)) == 0)
- returnCode(ERR);
-
- for (n = 0; n < arglen; ++n) {
- used += wcrtomb(new_text + used, astr[n], &state);
- }
- new_text[used] = '\0';
-
- if (used >= (size_t) (slk->maxlen + 1)) {
- if ((slk->ent[i].ent_text = (char *) _nc_doalloc(slk->ent[i].ent_text,
- used + 1)) == 0)
- returnCode(ERR);
- if ((slk->ent[i].form_text = (char *) _nc_doalloc(slk->ent[i].form_text,
- used + 1)) == 0)
- returnCode(ERR);
- }
-
- (void) strcpy(slk->ent[i].ent_text, new_text);
- free(new_text);
-
- sprintf(slk->ent[i].form_text, "%*s", (size_t) slk->maxlen, " ");
-
- switch (format) {
- default:
- case 0: /* left-aligned */
- offset = 0;
- break;
- case 1: /* centered */
- offset = (slk->maxlen - mycols) / 2;
- break;
- case 2: /* right-aligned */
- offset = slk->maxlen - mycols;
- break;
- }
- if (offset < 0)
- offset = 0;
- strcpy(slk->ent[i].form_text + offset,
- slk->ent[i].ent_text);
- /*
- * Pad the display with blanks on the right, unless it is already
- * right-aligned.
- */
- if (format != 2 && mycols < slk->maxlen) {
- sprintf(slk->ent[i].form_text + offset + used,
- "%*s",
- slk->maxlen - (mycols - offset),
- " ");
+ init_mb(state);
+ str = astr;
+ if ((arglen = wcsrtombs(NULL, &str, 0, &state)) != (size_t) -1) {
+ if ((mystr = (char *) _nc_doalloc(0, arglen + 1)) != 0) {
+ str = astr;
+ if (wcsrtombs(mystr, &str, arglen, &state) != (size_t) -1) {
+ /* glibc documentation claims that the terminating L'\0'
+ * is written, but it is not...
+ */
+ mystr[arglen] = 0;
+ result = slk_set(i, mystr, format);
+ }
+ free(mystr);
}
- slk->ent[i].dirty = TRUE;
- result = OK;
}
returnCode(result);
}
/****************************************************************************
- * Copyright (c) 2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2003,2004 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <curses.priv.h>
-MODULE_ID("$Id: lib_unget_wch.c,v 1.5 2003/07/05 19:46:51 tom Exp $")
+MODULE_ID("$Id: lib_unget_wch.c,v 1.7 2004/12/05 01:21:31 tom Exp $")
+
+#ifdef linux
+/*
+ * glibc's wcrtomb() function is broken - does not return the proper value
+ * when target is null (noted for glibc 2.3.2). This is a workaround.
+ */
+NCURSES_EXPORT(size_t)
+_nc_wcrtomb(char *target, wchar_t source, mbstate_t * state)
+{
+ if (target == 0) {
+ wchar_t temp[2];
+ const wchar_t *tempp = temp;
+ temp[0] = source;
+ temp[1] = 0;
+ return wcsrtombs(NULL, &tempp, 0, state);
+ }
+ return wcrtomb(target, source, state);
+}
+#endif
NCURSES_EXPORT(int)
unget_wch(const wchar_t wch)
T((T_CALLED("unget_wch(%#lx)"), (unsigned long) wch));
- memset(&state, 0, sizeof(state));
- length = wcrtomb(0, wch, &state);
+ init_mb(state);
+ length = _nc_wcrtomb(0, wch, &state);
if (length != (size_t) (-1)
&& length != 0) {
char *string;
if ((string = (char *) malloc(length)) != 0) {
- memset(&state, 0, sizeof(state));
+ init_mb(state);
wcrtomb(string, wch, &state);
for (n = (int) (length - 1); n >= 0; --n) {
/****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002-2004,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey 2002 *
+ * Author: Thomas E. Dickey *
****************************************************************************/
#include <curses.priv.h>
#include <term.h>
-MODULE_ID("$Id: lib_vid_attr.c,v 1.1 2002/05/11 20:55:26 tom Exp $")
+MODULE_ID("$Id: lib_vid_attr.c,v 1.3 2005/01/29 18:34:00 tom Exp $")
-#define set_color(mode, pair) mode &= ~A_COLOR; mode |= COLOR_PAIR(pair)
+#define doPut(mode) TPUTS_TRACE(#mode); tputs(mode, 1, outc)
+
+#define TurnOn(mask,mode) \
+ if ((turn_on & mask) && mode) { doPut(mode); }
+
+#define TurnOff(mask,mode) \
+ if ((turn_off & mask) && mode) { doPut(mode); turn_off &= ~mask; }
+
+ /* if there is no current screen, assume we *can* do color */
+#define SetColorsIf(why, old_attr, old_pair) \
+ if (can_color && (why)) { \
+ TR(TRACE_ATTRS, ("old pair = %d -- new pair = %d", old_pair, pair)); \
+ if ((pair != old_pair) \
+ || (fix_pair0 && (pair == 0)) \
+ || (reverse ^ ((old_attr & A_REVERSE) != 0))) { \
+ _nc_do_color(old_pair, pair, reverse, outc); \
+ } \
+ }
+
+#define set_color(mode, pair) mode &= ALL_BUT_COLOR; mode |= COLOR_PAIR(pair)
NCURSES_EXPORT(int)
vid_puts(attr_t newmode, short pair, void *opts GCC_UNUSED, int (*outc) (int))
{
+#if NCURSES_EXT_COLORS
+ static attr_t previous_attr = A_NORMAL;
+ static int previous_pair = 0;
+
+ attr_t turn_on, turn_off;
+ bool reverse = FALSE;
+ bool can_color = (SP == 0 || SP->_coloron);
+#if NCURSES_EXT_FUNCS
+ bool fix_pair0 = (SP != 0 && SP->_coloron && !SP->_default_color);
+#else
+#define fix_pair0 FALSE
+#endif
+
+ T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
+
+ /* this allows us to go on whether or not newterm() has been called */
+ if (SP) {
+ previous_attr = AttrOf(SCREEN_ATTRS(SP));
+ previous_pair = GetPair(SCREEN_ATTRS(SP));
+ }
+
+ TR(TRACE_ATTRS, ("previous attribute was %s, %d",
+ _traceattr(previous_attr), previous_pair));
+
+#if !USE_XMC_SUPPORT
+ if ((SP != 0)
+ && (magic_cookie_glitch > 0))
+ newmode &= ~(SP->_xmc_suppress);
+#endif
+
+ /*
+ * If we have a terminal that cannot combine color with video
+ * attributes, use the colors in preference.
+ */
+ if ((pair != 0
+ || fix_pair0)
+ && (no_color_video > 0)) {
+ /*
+ * If we had chosen the A_xxx definitions to correspond to the
+ * no_color_video mask, we could simply shift it up and mask off the
+ * attributes. But we did not (actually copied Solaris' definitions).
+ * However, this is still simpler/faster than a lookup table.
+ *
+ * The 63 corresponds to A_STANDOUT, A_UNDERLINE, A_REVERSE, A_BLINK,
+ * A_DIM, A_BOLD which are 1:1 with no_color_video. The bits that
+ * correspond to A_INVIS, A_PROTECT (192) must be shifted up 1 and
+ * A_ALTCHARSET (256) down 2 to line up. We use the NCURSES_BITS
+ * macro so this will work properly for the wide-character layout.
+ */
+ unsigned value = no_color_video;
+ attr_t mask = NCURSES_BITS((value & 63)
+ | ((value & 192) << 1)
+ | ((value & 256) >> 2), 8);
+
+ if ((mask & A_REVERSE) != 0
+ && (newmode & A_REVERSE) != 0) {
+ reverse = TRUE;
+ mask &= ~A_REVERSE;
+ }
+ newmode &= ~mask;
+ }
+
+ if (newmode == previous_attr
+ && pair == previous_pair)
+ returnCode(OK);
+
+ if (reverse) {
+ newmode &= ~A_REVERSE;
+ }
+
+ turn_off = (~newmode & previous_attr) & ALL_BUT_COLOR;
+ turn_on = (newmode & ~previous_attr) & ALL_BUT_COLOR;
+
+ SetColorsIf(((pair == 0) && !fix_pair0), previous_attr, previous_pair);
+
+ if (newmode == A_NORMAL) {
+ if ((previous_attr & A_ALTCHARSET) && exit_alt_charset_mode) {
+ doPut(exit_alt_charset_mode);
+ previous_attr &= ~A_ALTCHARSET;
+ }
+ if (previous_attr) {
+ if (exit_attribute_mode) {
+ doPut(exit_attribute_mode);
+ } else {
+ if (!SP || SP->_use_rmul) {
+ TurnOff(A_UNDERLINE, exit_underline_mode);
+ }
+ if (!SP || SP->_use_rmso) {
+ TurnOff(A_STANDOUT, exit_standout_mode);
+ }
+ }
+ previous_attr &= ALL_BUT_COLOR;
+ previous_pair = 0;
+ }
+
+ SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
+ } else if (set_attributes) {
+ if (turn_on || turn_off) {
+ TPUTS_TRACE("set_attributes");
+ tputs(tparm(set_attributes,
+ (newmode & A_STANDOUT) != 0,
+ (newmode & A_UNDERLINE) != 0,
+ (newmode & A_REVERSE) != 0,
+ (newmode & A_BLINK) != 0,
+ (newmode & A_DIM) != 0,
+ (newmode & A_BOLD) != 0,
+ (newmode & A_INVIS) != 0,
+ (newmode & A_PROTECT) != 0,
+ (newmode & A_ALTCHARSET) != 0), 1, outc);
+ previous_attr &= ALL_BUT_COLOR;
+ previous_pair = 0;
+ }
+ SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
+ } else {
+
+ TR(TRACE_ATTRS, ("turning %s off", _traceattr(turn_off)));
+
+ TurnOff(A_ALTCHARSET, exit_alt_charset_mode);
+
+ if (!SP || SP->_use_rmul) {
+ TurnOff(A_UNDERLINE, exit_underline_mode);
+ }
+
+ if (!SP || SP->_use_rmso) {
+ TurnOff(A_STANDOUT, exit_standout_mode);
+ }
+
+ if (turn_off && exit_attribute_mode) {
+ doPut(exit_attribute_mode);
+ turn_on |= (newmode & ALL_BUT_COLOR);
+ previous_attr &= ALL_BUT_COLOR;
+ previous_pair = 0;
+ }
+ SetColorsIf((pair != 0) || fix_pair0, previous_attr, previous_pair);
+
+ TR(TRACE_ATTRS, ("turning %s on", _traceattr(turn_on)));
+ /* *INDENT-OFF* */
+ TurnOn(A_ALTCHARSET, enter_alt_charset_mode);
+ TurnOn(A_BLINK, enter_blink_mode);
+ TurnOn(A_BOLD, enter_bold_mode);
+ TurnOn(A_DIM, enter_dim_mode);
+ TurnOn(A_REVERSE, enter_reverse_mode);
+ TurnOn(A_STANDOUT, enter_standout_mode);
+ TurnOn(A_PROTECT, enter_protected_mode);
+ TurnOn(A_INVIS, enter_secure_mode);
+ TurnOn(A_UNDERLINE, enter_underline_mode);
+#if USE_WIDEC_SUPPORT
+ TurnOn(A_HORIZONTAL, enter_horizontal_hl_mode);
+ TurnOn(A_LEFT, enter_left_hl_mode);
+ TurnOn(A_LOW, enter_low_hl_mode);
+ TurnOn(A_RIGHT, enter_right_hl_mode);
+ TurnOn(A_TOP, enter_top_hl_mode);
+ TurnOn(A_VERTICAL, enter_vertical_hl_mode);
+#endif
+ /* *INDENT-ON* */
+
+ }
+
+ if (reverse)
+ newmode |= A_REVERSE;
+
+ if (SP) {
+ SetAttr(SCREEN_ATTRS(SP), newmode);
+ SetPair(SCREEN_ATTRS(SP), pair);
+ } else {
+ previous_attr = newmode;
+ previous_pair = pair;
+ }
+
+ returnCode(OK);
+#else
T((T_CALLED("vid_puts(%s,%d)"), _traceattr(newmode), pair));
set_color(newmode, pair);
returnCode(vidputs(newmode, outc));
+#endif
}
#undef vid_attr
NCURSES_EXPORT(int)
-vid_attr(attr_t newmode, short pair, void *opts GCC_UNUSED)
+vid_attr(attr_t newmode, short pair, void *opts)
{
T((T_CALLED("vid_attr(%s,%d)"), _traceattr(newmode), pair));
- set_color(newmode, pair);
- returnCode(vidputs(newmode, _nc_outch));
+ returnCode(vid_puts(newmode, pair, opts, _nc_outch));
}
+/*
+ * This implementation uses the same mask values for A_xxx and WA_xxx, so
+ * we can use termattrs() for part of the logic.
+ */
NCURSES_EXPORT(attr_t)
term_attrs(void)
{
- attr_t attrs = WA_NORMAL;
+ attr_t attrs;
T((T_CALLED("term_attrs()")));
- if (enter_alt_charset_mode)
- attrs |= WA_ALTCHARSET;
-
- if (enter_blink_mode)
- attrs |= WA_BLINK;
-
- if (enter_bold_mode)
- attrs |= WA_BOLD;
-
- if (enter_dim_mode)
- attrs |= WA_DIM;
-
- if (enter_reverse_mode)
- attrs |= WA_REVERSE;
-
- if (enter_standout_mode)
- attrs |= WA_STANDOUT;
-
- if (enter_protected_mode)
- attrs |= WA_PROTECT;
-
- if (enter_secure_mode)
- attrs |= WA_INVIS;
-
- if (enter_underline_mode)
- attrs |= WA_UNDERLINE;
+ attrs = termattrs();
- if (SP->_coloron)
- attrs |= A_COLOR;
+ /* these are only supported for wide-character mode */
+ if (enter_horizontal_hl_mode)
+ attrs |= WA_HORIZONTAL;
+ if (enter_left_hl_mode)
+ attrs |= WA_LEFT;
+ if (enter_low_hl_mode)
+ attrs |= WA_LOW;
+ if (enter_right_hl_mode)
+ attrs |= WA_RIGHT;
+ if (enter_top_hl_mode)
+ attrs |= WA_TOP;
+ if (enter_vertical_hl_mode)
+ attrs |= WA_VERTICAL;
returnAttr(attrs);
}
/****************************************************************************
- * Copyright (c) 2001,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 2001-2003,2005 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 *
#if USE_WIDEC_SUPPORT
-MODULE_ID("$Id: lib_wunctrl.c,v 1.7 2003/07/05 17:01:43 tom Exp $")
+MODULE_ID("$Id: lib_wunctrl.c,v 1.8 2005/04/16 18:10:44 tom Exp $")
NCURSES_EXPORT(wchar_t *)
-wunctrl(cchar_t * wc)
+wunctrl(cchar_t *wc)
{
static wchar_t str[5], *sp;
if (Charable(*wc)) {
- const char *p;
- for (p = unctrl(_nc_to_char(CharOf(*wc))), sp = str; *p;)
+ const char *p = unctrl((unsigned) _nc_to_char((wint_t) CharOf(*wc)));
+
+ for (sp = str; *p;)
*sp++ = _nc_to_widechar(*p++);
return str;
} else
/****************************************************************************
- * Copyright (c) 1998,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997,2002 *
+ * Author: Thomas E. Dickey 1997,2002,2005 *
****************************************************************************/
/* LINTLIBRARY */
#include "panel.priv.h"
+#undef _nc_retrace_panel
+PANEL *_nc_retrace_panel(
+ PANEL *pan)
+ { return(*(PANEL **)0); }
+
#undef _nc_my_visbuf
const char *_nc_my_visbuf(
const void *ptr)
/****************************************************************************
- * Copyright (c) 2002 Free Software Foundation, Inc. *
+ * Copyright (c) 2002,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 2002 *
+ * Author: Thomas E. Dickey 2002,2005 *
****************************************************************************/
/* LINTLIBRARY */
#include "panel.priv.h"
+#undef _nc_retrace_panel
+PANEL *_nc_retrace_panel(
+ PANEL *pan)
+ { return(*(PANEL **)0); }
+
#undef _nc_my_visbuf
const char *_nc_my_visbuf(
const void *ptr)
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_above.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_above.c,v 1.6 2005/02/19 16:44:57 tom Exp $")
NCURSES_EXPORT(PANEL *)
-panel_above (const PANEL *pan)
+panel_above(const PANEL * pan)
{
- if(!pan)
+ T((T_CALLED("panel_above(%p)"), pan));
+ if (!pan)
{
/* if top and bottom are equal, we have no or only the pseudo panel;
- if not, we return the panel above the pseudo panel */
- return(EMPTY_STACK() ? (PANEL*)0 : _nc_bottom_panel->above);
+ if not, we return the panel above the pseudo panel */
+ returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_bottom_panel->above);
}
else
- return(pan->above);
+ returnPanel(pan->above);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_below.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_below.c,v 1.6 2005/02/19 16:45:10 tom Exp $")
-NCURSES_EXPORT(PANEL*)
-panel_below (const PANEL *pan)
+NCURSES_EXPORT(PANEL *)
+panel_below(const PANEL * pan)
{
- if(!pan)
+ T((T_CALLED("panel_below(%p)"), pan));
+ if (!pan)
{
/* if top and bottom are equal, we have no or only the pseudo panel */
- return(EMPTY_STACK() ? (PANEL*)0 : _nc_top_panel);
+ returnPanel(EMPTY_STACK()? (PANEL *) 0 : _nc_top_panel);
}
else
{
/* we must not return the pseudo panel */
- return(Is_Pseudo(pan->below) ? (PANEL*) 0 : pan->below);
+ returnPanel(Is_Pseudo(pan->below) ? (PANEL *) 0 : pan->below);
}
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_bottom.c,v 1.9 2001/02/24 23:46:33 tom Exp $")
+MODULE_ID("$Id: p_bottom.c,v 1.11 2005/02/19 16:38:16 tom Exp $")
NCURSES_EXPORT(int)
-bottom_panel (PANEL *pan)
+bottom_panel(PANEL * pan)
{
int err = OK;
- if (pan) {
+ T((T_CALLED("bottom_panel(%p)"), pan));
+ if (pan)
+ {
+ if (!Is_Bottom(pan))
+ {
- if(!Is_Bottom(pan)) {
-
- dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
-
- HIDE_PANEL(pan,err,OK);
- assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
-
- dStack("<lb%d>",1,pan);
-
- pan->below = _nc_bottom_panel;
- pan->above = _nc_bottom_panel->above;
- if (pan->above)
- pan->above->below = pan;
- _nc_bottom_panel->above = pan;
-
- dStack("<lb%d>",9,pan);
+ dBug(("--> bottom_panel %s", USER_PTR(pan->user)));
+
+ HIDE_PANEL(pan, err, OK);
+ assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
+
+ dStack("<lb%d>", 1, pan);
+
+ pan->below = _nc_bottom_panel;
+ pan->above = _nc_bottom_panel->above;
+ if (pan->above)
+ pan->above->below = pan;
+ _nc_bottom_panel->above = pan;
+
+ dStack("<lb%d>", 9, pan);
+ }
}
- }
else
err = ERR;
-
- return(err);
+
+ returnCode(err);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_delete.c,v 1.6 2001/02/24 23:46:41 tom Exp $")
+MODULE_ID("$Id: p_delete.c,v 1.8 2005/02/19 16:38:45 tom Exp $")
NCURSES_EXPORT(int)
-del_panel (PANEL *pan)
+del_panel(PANEL * pan)
{
int err = OK;
- if(pan)
+
+ T((T_CALLED("del_panel(%p)"), pan));
+ if (pan)
{
dBug(("--> del_panel %s", USER_PTR(pan->user)));
- HIDE_PANEL(pan,err,OK);
+ HIDE_PANEL(pan, err, OK);
free((void *)pan);
}
else
err = ERR;
- return(err);
+
+ returnCode(err);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_hidden.c,v 1.5 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_hidden.c,v 1.7 2005/02/19 16:39:17 tom Exp $")
NCURSES_EXPORT(int)
-panel_hidden (const PANEL *pan)
+panel_hidden(const PANEL * pan)
{
- if(!pan)
- return(ERR);
- return(IS_LINKED(pan) ? FALSE : TRUE);
-}
+ T((T_CALLED("panel_hidden(%p)"), pan));
+ if (!pan)
+ returnCode(ERR);
+ returnCode(IS_LINKED(pan) ? FALSE : TRUE);
+}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_hide.c,v 1.7 2001/02/24 23:46:45 tom Exp $")
+MODULE_ID("$Id: p_hide.c,v 1.9 2005/02/19 16:39:41 tom Exp $")
NCURSES_EXPORT(int)
-hide_panel (register PANEL *pan)
+hide_panel(register PANEL * pan)
{
int err = OK;
- if(!pan)
- return(ERR);
+ T((T_CALLED("hide_panel(%p)"), pan));
+ if (!pan)
+ returnCode(ERR);
dBug(("--> hide_panel %s", USER_PTR(pan->user)));
- dStack("<u%d>",1,pan);
+ dStack("<u%d>", 1, pan);
- HIDE_PANEL(pan,err,ERR);
+ HIDE_PANEL(pan, err, ERR);
- dStack("<u%d>",9,pan);
+ dStack("<u%d>", 9, pan);
- return(err);
+ returnCode(err);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_move.c,v 1.7 2001/02/24 23:41:35 tom Exp $")
+MODULE_ID("$Id: p_move.c,v 1.9 2005/02/19 16:46:49 tom Exp $")
NCURSES_EXPORT(int)
-move_panel (PANEL *pan, int starty, int startx)
+move_panel(PANEL * pan, int starty, int startx)
{
- if(!pan)
- return(ERR);
+ T((T_CALLED("move_panel(%p,%d,%d)"), pan, starty, startx));
- if (IS_LINKED(pan)) {
- Touchpan(pan);
- PANEL_UPDATE(pan,(PANEL*)0);
- }
+ if (!pan)
+ returnCode(ERR);
- if (mvwin(pan->win,starty,startx))
- return(ERR);
+ if (IS_LINKED(pan))
+ {
+ Touchpan(pan);
+ PANEL_UPDATE(pan, (PANEL *) 0);
+ }
- return(OK);
+ returnCode(mvwin(pan->win, starty, startx));
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_new.c,v 1.6 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_new.c,v 1.8 2005/02/19 16:41:03 tom Exp $")
#ifdef TRACE
-static char* stdscr_id;
-static char* new_id;
+static char *stdscr_id;
+static char *new_id;
#endif
/*+-------------------------------------------------------------------------
Get root (i.e. stdscr's) panel.
Establish the pseudo panel for stdscr if necessary.
--------------------------------------------------------------------------*/
-static PANEL*
+static PANEL *
root_panel(void)
{
- if(_nc_stdscr_pseudo_panel == (PANEL*)0)
+ if (_nc_stdscr_pseudo_panel == (PANEL *) 0)
{
-
+
assert(stdscr && !_nc_bottom_panel && !_nc_top_panel);
- _nc_stdscr_pseudo_panel = (PANEL*)malloc(sizeof(PANEL));
- if (_nc_stdscr_pseudo_panel != 0) {
- PANEL* pan = _nc_stdscr_pseudo_panel;
- WINDOW* win = stdscr;
- pan->win = win;
- pan->below = (PANEL*)0;
- pan->above = (PANEL*)0;
+ _nc_stdscr_pseudo_panel = (PANEL *) malloc(sizeof(PANEL));
+ if (_nc_stdscr_pseudo_panel != 0)
+ {
+ PANEL *pan = _nc_stdscr_pseudo_panel;
+ WINDOW *win = stdscr;
+
+ pan->win = win;
+ pan->below = (PANEL *) 0;
+ pan->above = (PANEL *) 0;
#ifdef TRACE
- if (!stdscr_id)
- stdscr_id = strdup("stdscr");
- pan->user = stdscr_id;
+ if (!stdscr_id)
+ stdscr_id = strdup("stdscr");
+ pan->user = stdscr_id;
#else
- pan->user = (void*)0;
+ pan->user = (void *)0;
#endif
- _nc_bottom_panel = _nc_top_panel = pan;
- }
+ _nc_bottom_panel = _nc_top_panel = pan;
+ }
}
return _nc_stdscr_pseudo_panel;
}
NCURSES_EXPORT(PANEL *)
-new_panel (WINDOW *win)
+new_panel(WINDOW *win)
{
- PANEL *pan = (PANEL*)0;
+ PANEL *pan = (PANEL *) 0;
+
+ T((T_CALLED("new_panel(%p)"), win));
if (!win)
- return(pan);
+ returnPanel(pan);
if (!_nc_stdscr_pseudo_panel)
(void)root_panel();
assert(_nc_stdscr_pseudo_panel);
- if (!(win->_flags & _ISPAD) && (pan = (PANEL*)malloc(sizeof(PANEL))))
+ if (!(win->_flags & _ISPAD) && (pan = (PANEL *) malloc(sizeof(PANEL))))
{
pan->win = win;
- pan->above = (PANEL *)0;
- pan->below = (PANEL *)0;
+ pan->above = (PANEL *) 0;
+ pan->below = (PANEL *) 0;
#ifdef TRACE
if (!new_id)
new_id = strdup("new");
#endif
(void)show_panel(pan);
}
- return(pan);
+ returnPanel(pan);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_replace.c,v 1.7 2001/02/24 23:41:38 tom Exp $")
+MODULE_ID("$Id: p_replace.c,v 1.9 2005/02/19 16:41:31 tom Exp $")
NCURSES_EXPORT(int)
-replace_panel (PANEL *pan, WINDOW *win)
+replace_panel(PANEL * pan, WINDOW *win)
{
- if(!pan)
- return(ERR);
-
- if (IS_LINKED(pan)) {
- Touchpan(pan);
- PANEL_UPDATE(pan,(PANEL*)0);
- }
-
+ T((T_CALLED("replace_panel(%p,%p)"), pan, win));
+
+ if (!pan)
+ returnCode(ERR);
+
+ if (IS_LINKED(pan))
+ {
+ Touchpan(pan);
+ PANEL_UPDATE(pan, (PANEL *) 0);
+ }
+
pan->win = win;
- return(OK);
+ returnCode(OK);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_show.c,v 1.9 2001/02/24 23:46:50 tom Exp $")
+MODULE_ID("$Id: p_show.c,v 1.11 2005/02/19 16:42:02 tom Exp $")
NCURSES_EXPORT(int)
-show_panel (PANEL *pan)
-{
+show_panel(PANEL * pan)
+{
int err = OK;
- if(!pan)
- return(ERR);
+ T((T_CALLED("show_panel(%p)"), pan));
+
+ if (!pan)
+ returnCode(ERR);
if (Is_Top(pan))
- return(OK);
+ returnCode(OK);
dBug(("--> show_panel %s", USER_PTR(pan->user)));
- HIDE_PANEL(pan,err,OK);
+ HIDE_PANEL(pan, err, OK);
- dStack("<lt%d>",1,pan);
+ dStack("<lt%d>", 1, pan);
assert(_nc_bottom_panel == _nc_stdscr_pseudo_panel);
_nc_top_panel->above = pan;
- pan->below = _nc_top_panel;
- pan->above = (PANEL *)0;
+ pan->below = _nc_top_panel;
+ pan->above = (PANEL *) 0;
_nc_top_panel = pan;
-
- dStack("<lt%d>",9,pan);
- return(OK);
+ dStack("<lt%d>", 9, pan);
+
+ returnCode(OK);
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_top.c,v 1.3 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_top.c,v 1.5 2005/02/19 16:42:23 tom Exp $")
NCURSES_EXPORT(int)
-top_panel (PANEL *pan)
+top_panel(PANEL * pan)
{
- return(show_panel(pan));
+ T((T_CALLED("top_panel(%p)"), pan));
+ returnCode(show_panel(pan));
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_update.c,v 1.7 2001/02/24 23:41:42 tom Exp $")
+MODULE_ID("$Id: p_update.c,v 1.9 2005/02/19 16:49:47 tom Exp $")
NCURSES_EXPORT(void)
-update_panels (void)
+update_panels(void)
{
PANEL *pan;
+ T((T_CALLED("update_panels()")));
dBug(("--> update_panels"));
pan = _nc_bottom_panel;
- while(pan && pan->above)
+ while (pan && pan->above)
{
- PANEL_UPDATE(pan,pan->above);
+ PANEL_UPDATE(pan, pan->above);
pan = pan->above;
}
Wnoutrefresh(pan);
pan = pan->above;
}
+
+ returnVoid;
}
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_user.c,v 1.4 2000/12/10 02:20:44 tom Exp $")
+MODULE_ID("$Id: p_user.c,v 1.6 2005/02/19 16:52:44 tom Exp $")
NCURSES_EXPORT(int)
-set_panel_userptr
-(PANEL *pan, NCURSES_CONST void *uptr)
+set_panel_userptr(PANEL * pan, NCURSES_CONST void *uptr)
{
- if(!pan)
- return(ERR);
+ T((T_CALLED("set_panel_userptr(%p,%p)"), pan, uptr));
+ if (!pan)
+ returnCode(ERR);
pan->user = uptr;
- return(OK);
+ returnCode(OK);
}
-NCURSES_EXPORT(NCURSES_CONST void*)
-panel_userptr (const PANEL *pan)
+NCURSES_EXPORT(NCURSES_CONST void *)
+panel_userptr(const PANEL * pan)
{
- return(pan ? pan->user : (NCURSES_CONST void *)0);
+ T((T_CALLED("panel_userptr(%p)"), pan));
+ returnCVoidPtr(pan ? pan->user : (NCURSES_CONST void *)0);
}
-
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2000,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
*/
#include "panel.priv.h"
-MODULE_ID("$Id: p_win.c,v 1.3 2000/12/10 02:20:43 tom Exp $")
+MODULE_ID("$Id: p_win.c,v 1.5 2005/02/19 16:44:16 tom Exp $")
NCURSES_EXPORT(WINDOW *)
-panel_window (const PANEL *pan)
+panel_window(const PANEL * pan)
{
- return(pan ? pan->win : (WINDOW *)0);
+ T((T_CALLED("panel_window(%p)"), pan));
+ returnWin(pan ? pan->win : (WINDOW *)0);
}
-
-
-
-
/****************************************************************************
- * Copyright (c) 1998,2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/* panel.c -- implementation of panels library, some core routines */
#include "panel.priv.h"
-MODULE_ID("$Id: panel.c,v 1.20 2001/02/24 23:17:26 tom Exp $")
+MODULE_ID("$Id: panel.c,v 1.23 2005/02/19 18:04:31 tom Exp $")
+/*+-------------------------------------------------------------------------
+ _nc_retrace_panel (pan)
+--------------------------------------------------------------------------*/
+#ifdef TRACE
+NCURSES_EXPORT(PANEL *)
+_nc_retrace_panel(PANEL * pan)
+{
+ T((T_RETURN("%p"), pan));
+ return pan;
+}
+#endif
+
+/*+-------------------------------------------------------------------------
+ _nc_my_visbuf(ptr)
+--------------------------------------------------------------------------*/
#ifdef TRACE
#ifndef TRACE_TXT
NCURSES_EXPORT(const char *)
-_nc_my_visbuf (const void *ptr)
+_nc_my_visbuf(const void *ptr)
{
- char temp[32];
- if (ptr != 0)
- sprintf(temp, "ptr:%p", ptr);
- else
- strcpy(temp, "<null>");
- return _nc_visbuf(temp);
+ char temp[32];
+
+ if (ptr != 0)
+ sprintf(temp, "ptr:%p", ptr);
+ else
+ strcpy(temp, "<null>");
+ return _nc_visbuf(temp);
}
#endif
#endif
-
/*+-------------------------------------------------------------------------
dPanel(text,pan)
--------------------------------------------------------------------------*/
#ifdef TRACE
NCURSES_EXPORT(void)
-_nc_dPanel
-(const char *text, const PANEL *pan)
+_nc_dPanel(const char *text, const PANEL * pan)
{
- _tracef("%s id=%s b=%s a=%s y=%d x=%d",
- text, USER_PTR(pan->user),
- (pan->below) ? USER_PTR(pan->below->user) : "--",
- (pan->above) ? USER_PTR(pan->above->user) : "--",
- PSTARTY(pan), PSTARTX(pan));
+ _tracef("%s id=%s b=%s a=%s y=%d x=%d",
+ text, USER_PTR(pan->user),
+ (pan->below) ? USER_PTR(pan->below->user) : "--",
+ (pan->above) ? USER_PTR(pan->above->user) : "--",
+ PSTARTY(pan), PSTARTX(pan));
}
#endif
--------------------------------------------------------------------------*/
#ifdef TRACE
NCURSES_EXPORT(void)
-_nc_dStack
-(const char *fmt, int num, const PANEL *pan)
+_nc_dStack(const char *fmt, int num, const PANEL * pan)
{
char s80[80];
- sprintf(s80,fmt,num,pan);
- _tracef("%s b=%s t=%s",s80,
- (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
- (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--");
- if(pan)
+ sprintf(s80, fmt, num, pan);
+ _tracef("%s b=%s t=%s", s80,
+ (_nc_bottom_panel) ? USER_PTR(_nc_bottom_panel->user) : "--",
+ (_nc_top_panel) ? USER_PTR(_nc_top_panel->user) : "--");
+ if (pan)
_tracef("pan id=%s", USER_PTR(pan->user));
pan = _nc_bottom_panel;
- while(pan)
+ while (pan)
{
- dPanel("stk",pan);
+ dPanel("stk", pan);
pan = pan->above;
}
}
--------------------------------------------------------------------------*/
#ifdef TRACE
NCURSES_EXPORT(void)
-_nc_Wnoutrefresh (const PANEL *pan)
+_nc_Wnoutrefresh(const PANEL * pan)
{
- dPanel("wnoutrefresh",pan);
+ dPanel("wnoutrefresh", pan);
wnoutrefresh(pan->win);
}
#endif
--------------------------------------------------------------------------*/
#ifdef TRACE
NCURSES_EXPORT(void)
-_nc_Touchpan (const PANEL *pan)
+_nc_Touchpan(const PANEL * pan)
{
- dPanel("Touchpan",pan);
+ dPanel("Touchpan", pan);
touchwin(pan->win);
}
#endif
--------------------------------------------------------------------------*/
#ifdef TRACE
NCURSES_EXPORT(void)
-_nc_Touchline
-(const PANEL *pan, int start, int count)
+_nc_Touchline(const PANEL * pan, int start, int count)
{
char s80[80];
- sprintf(s80,"Touchline s=%d c=%d",start,count);
- dPanel(s80,pan);
- touchline(pan->win,start,count);
+
+ sprintf(s80, "Touchline s=%d c=%d", start, count);
+ dPanel(s80, pan);
+ touchline(pan->win, start, count);
}
#endif
#ifndef TRACE
# ifndef __GNUC__
/* Some C compilers need something defined in a source file */
- void _nc_dummy_panel(void) { }
+extern void _nc_dummy_panel(void);
+void
+_nc_dummy_panel(void)
+{
+}
# endif
#endif
/****************************************************************************
- * Copyright (c) 2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
* authorization. *
****************************************************************************/
-/* $Id: panel.priv.h,v 1.19 2001/06/02 23:31:05 tom Exp $ */
+/* $Id: panel.priv.h,v 1.20 2005/02/19 17:16:54 tom Exp $ */
#ifndef NCURSES_PANEL_PRIV_H
#define NCURSES_PANEL_PRIV_H 1
# define USER_PTR(ptr) _nc_my_visbuf((const char *)ptr)
# endif
+# define returnPanel(code) TRACE_RETURN(code,panel)
+
+ extern NCURSES_EXPORT(PANEL *) _nc_retrace_panel (PANEL *);
extern NCURSES_EXPORT(void) _nc_dPanel (const char*, const PANEL*);
extern NCURSES_EXPORT(void) _nc_dStack (const char*, int, const PANEL*);
extern NCURSES_EXPORT(void) _nc_Wnoutrefresh (const PANEL*);
# define Touchpan(pan) _nc_Touchpan(pan)
# define Touchline(pan,start,count) _nc_Touchline(pan,start,count)
#else /* !TRACE */
+# define returnPanel(code) return code
# define dBug(x)
# define dPanel(text,pan)
# define dStack(fmt,num,pan)
#define _nc_bottom_panel _nc_panelhook()->bottom_panel
#define EMPTY_STACK() (_nc_top_panel==_nc_bottom_panel)
-#define Is_Bottom(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p)))
+#define Is_Bottom(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_bottom_panel->above==(p)))
#define Is_Top(p) (((p)!=(PANEL*)0) && !EMPTY_STACK() && (_nc_top_panel==(p)))
#define Is_Pseudo(p) ((p) && ((p)==_nc_bottom_panel))
/*+-------------------------------------------------------------------------
Walk through the panel stack starting at the given location and
check for intersections; overlapping panels are "touched", so they
- are incrementally overwriting cells that should be hidden.
+ are incrementally overwriting cells that should be hidden.
If the "touch" flag is set, the panel gets touched before it is
- updated.
+ updated.
---------------------------------------------------------------------------*/
#define PANEL_UPDATE(pan,panstart)\
{ PANEL* pan2 = ((panstart) ? (panstart) : _nc_bottom_panel);\
-# $Id: Makefile.in,v 1.62 2003/11/01 22:45:57 tom Exp $
+# $Id: Makefile.in,v 1.65 2005/09/25 00:42:08 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2005 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"), #
MODEL = ../@DFT_OBJ_SUBDIR@
DESTDIR = @DESTDIR@
+top_srcdir = @top_srcdir@
srcdir = @srcdir@
prefix = @prefix@
exec_prefix = @exec_prefix@
CPP = @CPP@
CFLAGS = @CFLAGS@
-INCDIR = $(srcdir)/../include
+INCDIR = $(top_srcdir)/include
CPPFLAGS = -I../progs -I$(srcdir) -DHAVE_CONFIG_H @CPPFLAGS@
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
LD = @LD@
LINK = @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
LDFLAGS = @EXTRA_LDFLAGS@ \
- @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
+ @TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
# Default library, for linking applications
DEPS_CURSES = ../lib/@LIB_PREFIX@ncurses@DFT_DEP_SUFFIX@
+HEADER_DEPS = \
+ ../include/curses.h \
+ $(INCDIR)/term_entry.h \
+ $(INCDIR)/tic.h \
+ $(INCDIR)/nc_alloc.h
+
################################################################################
all: $(AUTO_SRC) $(PROGS)
/****************************************************************************
- * Copyright (c) 1998 Free Software Foundation, Inc. *
+ * Copyright (c) 1998,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <progs.priv.h>
-#include <curses.h>
-
-MODULE_ID("$Id: clear.c,v 1.8 1998/09/26 11:42:50 tom Exp $")
+MODULE_ID("$Id: clear.c,v 1.9 2005/09/25 00:46:43 tom Exp $")
static int putch(int c)
{
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include "termsort.c" /* this C file is generated */
#include <parametrized.h> /* so is this */
-MODULE_ID("$Id: dump_entry.c,v 1.66 2003/05/24 22:43:59 tom Exp $")
+MODULE_ID("$Id: dump_entry.c,v 1.70 2005/07/23 20:03:30 tom Exp $")
#define INDENT 8
#define DISCARD(string) string = ABSENT_STRING
static int oldcol; /* last value of column before wrap */
static bool pretty; /* true if we format if-then-else strings */
+static char *save_sgr;
+static char *save_acsc;
+
static DYNBUF outbuf;
static DYNBUF tmpbuf;
/* indirection pointers for implementing sort and display modes */
-static const int *bool_indirect, *num_indirect, *str_indirect;
+static const PredIdx *bool_indirect, *num_indirect, *str_indirect;
static NCURSES_CONST char *const *bool_names;
static NCURSES_CONST char *const *num_names;
static NCURSES_CONST char *const *str_names;
static TERMTYPE *cur_type;
static int
-dump_predicate(int type, int idx)
+dump_predicate(PredType type, PredIdx idx)
/* predicate function to use for ordinary decompilation */
{
switch (type) {
return (FALSE); /* pacify compiler */
}
-static void set_obsolete_termcaps(TERMTYPE * tp);
+static void set_obsolete_termcaps(TERMTYPE *tp);
/* is this the index of a function key string? */
#define FNKEY(i) (((i)<= 65 && (i)>= 75) || ((i)<= 216 && (i)>= 268))
#define STR_IDX(name) (&(name) - &(CUR Strings[0]))
static bool
-version_filter(int type, int idx)
+version_filter(PredType type, PredIdx idx)
/* filter out capabilities we may want to suppress */
{
switch (tversion) {
return src;
}
+#define SAME_CAP(n,cap) (&tterm->Strings[n] == &cap)
+
int
-fmt_entry(TERMTYPE * tterm,
- int (*pred) (int type, int idx),
+fmt_entry(TERMTYPE *tterm,
+ PredFunc pred,
bool content_only,
bool suppress_untranslatable,
bool infodump,
int numbers)
{
- int i, j;
+ PredIdx i, j;
char buffer[MAX_TERMINFO_LENGTH];
+ char *capability;
NCURSES_CONST char *name;
int predval, len;
- int num_bools = 0;
- int num_values = 0;
- int num_strings = 0;
+ PredIdx num_bools = 0;
+ PredIdx num_values = 0;
+ PredIdx num_strings = 0;
bool outcount = 0;
#define WRAP_CONCAT \
for_each_string(j, tterm) {
i = StrIndirect(j);
name = ExtStrname(tterm, i, str_names);
+ capability = tterm->Strings[i];
if (!version_filter(STRING, i))
continue;
else if (isObsolete(outform, name))
continue;
+#if NCURSES_XNAMES
/*
- * Some older versions of vi want rmir/smir to be defined
- * for ich/ich1 to work. If they're not defined, force
- * them to be output as defined and empty.
+ * Extended names can be longer than 2 characters, but termcap programs
+ * cannot read those (filter them out).
*/
+ if (outform == F_TERMCAP && (strlen(name) > 2))
+ continue;
+#endif
+
if (outform == F_TERMCAP) {
- if (insert_character || parm_ich) {
- if (&tterm->Strings[i] == &enter_insert_mode
+ /*
+ * Some older versions of vi want rmir/smir to be defined
+ * for ich/ich1 to work. If they're not defined, force
+ * them to be output as defined and empty.
+ */
+ if (PRESENT(insert_character) || PRESENT(parm_ich)) {
+ if (SAME_CAP(i, enter_insert_mode)
&& enter_insert_mode == ABSENT_STRING) {
(void) strcpy(buffer, "im=");
WRAP_CONCAT;
continue;
}
- if (&tterm->Strings[i] == &exit_insert_mode
+ if (SAME_CAP(i, exit_insert_mode)
&& exit_insert_mode == ABSENT_STRING) {
(void) strcpy(buffer, "ei=");
WRAP_CONCAT;
continue;
}
}
+ /*
+ * termcap applications such as screen will be confused if sgr0
+ * is translated to a string containing rmacs. Filter that out.
+ */
+ if (PRESENT(exit_attribute_mode)) {
+ if (SAME_CAP(i, exit_attribute_mode)) {
+ char *trimmed_sgr0;
+ char *my_sgr = set_attributes;
+
+ set_attributes = save_sgr;
+
+ trimmed_sgr0 = _nc_trim_sgr0(tterm);
+ if (strcmp(capability, trimmed_sgr0))
+ capability = trimmed_sgr0;
+
+ set_attributes = my_sgr;
+ }
+ }
}
predval = pred(STRING, i);
buffer[0] = '\0';
if (predval != FAIL) {
- if (tterm->Strings[i] != ABSENT_STRING
+ if (capability != ABSENT_STRING
&& i + 1 > num_strings)
num_strings = i + 1;
- if (!VALID_STRING(tterm->Strings[i])) {
+ if (!VALID_STRING(capability)) {
sprintf(buffer, "%s@", name);
WRAP_CONCAT;
} else if (outform == F_TERMCAP || outform == F_TCONVERR) {
int params = ((i < (int) SIZEOF(parametrized))
? parametrized[i]
: 0);
- char *srccap = _nc_tic_expand(tterm->Strings[i], TRUE, numbers);
+ char *srccap = _nc_tic_expand(capability, TRUE, numbers);
char *cv = _nc_infotocap(name, srccap, params);
if (cv == 0) {
} else {
sprintf(buffer, "%s=%s", name, cv);
}
- len += strlen(tterm->Strings[i]) + 1;
+ len += strlen(capability) + 1;
WRAP_CONCAT;
} else {
- char *src = _nc_tic_expand(tterm->Strings[i],
+ char *src = _nc_tic_expand(capability,
outform == F_TERMINFO, numbers);
strcpy_DYN(&tmpbuf, 0);
} else {
strcpy_DYN(&tmpbuf, src);
}
- len += strlen(tterm->Strings[i]) + 1;
+ len += strlen(capability) + 1;
wrap_concat(tmpbuf.text);
outcount = TRUE;
}
}
+ /* e.g., trimmed_sgr0 */
+ if (capability != tterm->Strings[i])
+ free(capability);
}
len += num_strings * 2;
}
static bool
-kill_string(TERMTYPE * tterm, char *cap)
+kill_string(TERMTYPE *tterm, char *cap)
{
int n;
for (n = 0; n < NUM_STRINGS(tterm); ++n) {
}
static char *
-find_string(TERMTYPE * tterm, char *name)
+find_string(TERMTYPE *tterm, char *name)
{
- int n;
+ PredIdx n;
for (n = 0; n < NUM_STRINGS(tterm); ++n) {
if (version_filter(STRING, n)
&& !strcmp(name, strnames[n])) {
* make it smaller.
*/
static int
-kill_labels(TERMTYPE * tterm, int target)
+kill_labels(TERMTYPE *tterm, int target)
{
int n;
int result = 0;
* make it smaller.
*/
static int
-kill_fkeys(TERMTYPE * tterm, int target)
+kill_fkeys(TERMTYPE *tterm, int target)
{
int n;
int result = 0;
#define SHOW_WHY if (!already_used) PRINTF
int
-dump_entry(TERMTYPE * tterm,
+dump_entry(TERMTYPE *tterm,
bool suppress_untranslatable,
bool limited,
int already_used,
int numbers,
- int (*pred) (int type, int idx))
+ PredFunc pred)
/* dump a single entry */
{
int len, critlen;
}
critlen -= already_used;
+ save_sgr = set_attributes;
+ save_acsc = acs_chars;
+
if (((len = FMT_ENTRY()) > critlen)
&& limited) {
if (!suppress_untranslatable) {
* is really just an optimization hack. Another good candidate is
* acsc since it is both long and unused by BSD termcap.
*/
- char *oldsgr = set_attributes;
- char *oldacsc = acs_chars;
bool changed = FALSE;
+#if NCURSES_XNAMES
+ /*
+ * Extended names are most likely function-key definitions. Drop
+ * those first.
+ */
+ int n;
+ for (n = STRCOUNT; n < NUM_STRINGS(tterm); n++) {
+ char *name = ExtStrname(tterm, n, strnames);
+
+ if (VALID_STRING(tterm->Strings[n])) {
+ set_attributes = ABSENT_STRING;
+ /* we remove long names anyway - only report the short */
+ if (strlen(name) <= 2) {
+ SHOW_WHY("# (%s removed to fit entry within %d bytes)\n",
+ name,
+ critlen);
+ }
+ changed = TRUE;
+ if ((len = FMT_ENTRY()) <= critlen)
+ break;
+ }
+ }
+#endif
if (VALID_STRING(set_attributes)) {
set_attributes = ABSENT_STRING;
SHOW_WHY("# (sgr removed to fit entry within %d bytes)\n",
}
tversion = oldversion;
}
- set_attributes = oldsgr;
- acs_chars = oldacsc;
+ set_attributes = save_sgr;
+ acs_chars = save_acsc;
}
}
}
void
-compare_entry(void (*hook) (int t, int i, const char *name), TERMTYPE * tp
- GCC_UNUSED, bool quiet)
+compare_entry(void (*hook) (PredType t, PredIdx i, const char *name),
+ TERMTYPE *tp GCC_UNUSED,
+ bool quiet)
/* compare two entries */
{
- int i, j;
+ PredIdx i, j;
NCURSES_CONST char *name;
if (!quiet)
#define CUR tp->
static void
-set_obsolete_termcaps(TERMTYPE * tp)
+set_obsolete_termcaps(TERMTYPE *tp)
{
#include "capdefaults.c"
}
* unique.
*/
void
-repair_acsc(TERMTYPE * tp)
+repair_acsc(TERMTYPE *tp)
{
if (VALID_STRING(acs_chars)) {
size_t n, m;
/****************************************************************************
- * Copyright (c) 1998,1999 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2004 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
+ * $Id: dump_entry.h,v 1.27 2004/12/04 15:37:17 tom Exp $
+ *
* Dump control definitions and variables
*/
+#ifndef DUMP_ENTRY_H
+#define DUMP_ENTRY_H 1
+
/* capability output formats */
#define F_TERMINFO 0 /* use terminfo names */
#define F_VARIABLE 1 /* use C variable names */
#define CMP_STRING 2 /* comparison on strings */
#define CMP_USE 3 /* comparison on use capabilities */
+typedef unsigned PredType;
+typedef int PredIdx;
+typedef int (*PredFunc)(PredType, PredIdx);
+
extern NCURSES_CONST char *nametrans(const char *);
extern void dump_init(const char *, int, int, int, int, bool);
-extern int fmt_entry(TERMTYPE *, int (*)(int, int), bool, bool, bool, int);
-extern int dump_entry(TERMTYPE *, bool, bool, int, int, int (*)(int, int));
+extern int fmt_entry(TERMTYPE *, PredFunc, bool, bool, bool, int);
+extern int dump_entry(TERMTYPE *, bool, bool, int, int, PredFunc);
extern int dump_uses(const char *, bool);
-extern void compare_entry(void (*)(int, int, const char *), TERMTYPE *, bool);
+extern void compare_entry(void (*)(PredType, PredIdx, const char *), TERMTYPE *, bool);
extern void repair_acsc(TERMTYPE * tp);
#define FAIL -1
+
+#endif /* DUMP_ENTRY_H */
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <progs.priv.h>
-#include <term_entry.h>
#include <dump_entry.h>
-MODULE_ID("$Id: infocmp.c,v 1.71 2003/10/18 18:01:54 tom Exp $")
+MODULE_ID("$Id: infocmp.c,v 1.79 2005/09/25 00:39:43 tom Exp $")
#define L_CURL "{"
#define R_CURL "}"
static bool limited = TRUE; /* "-r" option is not set */
static bool quiet = FALSE;
+static bool literal = FALSE;
static const char *bool_sep = ":";
static const char *s_absent = "NULL";
static const char *s_cancel = "NULL";
#if NO_LEAKS
#undef ExitProgram
-static void
-ExitProgram(int code) GCC_NORETURN;
+static void ExitProgram(int code) GCC_NORETURN;
/* prototype is to get gcc to accept the noreturn attribute */
- static void
- ExitProgram(int code)
+static void
+ExitProgram(int code)
{
while (termcount-- > 0)
_nc_free_termtype(&entries[termcount].tterm);
***************************************************************************/
static int
-capcmp(unsigned idx, const char *s, const char *t)
+capcmp(PredIdx idx, const char *s, const char *t)
/* capability comparison function */
{
if (!VALID_STRING(s) && !VALID_STRING(t))
}
static int
-use_predicate(int type, int idx)
+use_predicate(unsigned type, PredIdx idx)
/* predicate function to use for use decompilation */
{
ENTRY *ep;
}
static bool
-entryeq(TERMTYPE * t1, TERMTYPE * t2)
+entryeq(TERMTYPE *t1, TERMTYPE *t2)
/* are two entries equivalent? */
{
unsigned i;
return (FALSE);
for (i = 0; i < NUM_STRINGS(t1); i++)
- if (capcmp(i, t1->Strings[i], t2->Strings[i]))
+ if (capcmp((PredIdx) i, t1->Strings[i], t2->Strings[i]))
return (FALSE);
return (TRUE);
}
static void
-compare_predicate(int type, int idx, const char *name)
+compare_predicate(PredType type, PredIdx idx, const char *name)
/* predicate function to use for entry difference reports */
{
register ENTRY *e1 = &entries[0];
{"\033)A", "ISO UK G1"}, /* enable UK chars for G1 */
{"\033)B", "ISO US G1"}, /* enable US chars for G1 */
- /* these are DEC private modes widely supported by emulators */
+ /* these are DEC private controls widely supported by emulators */
{"\033=", "DECPAM"}, /* application keypad mode */
{"\033>", "DECPNM"}, /* normal keypad mode */
{"\033<", "DECANSI"}, /* enter ANSI mode */
+ {"\033[!p", "DECSTR"}, /* soft reset */
+ {"\033 F", "S7C1T"}, /* 7-bit controls */
{(char *) 0, (char *) 0}
};
+static const assoc std_modes[] =
+/* ECMA \E[ ... [hl] modes recognized by many emulators */
+{
+ {"2", "AM"}, /* keyboard action mode */
+ {"4", "IRM"}, /* insert/replace mode */
+ {"12", "SRM"}, /* send/receive mode */
+ {"20", "LNM"}, /* linefeed mode */
+ {(char *) 0, (char *) 0}
+};
+
static const assoc private_modes[] =
/* DEC \E[ ... [hl] modes recognized by many emulators */
{
{(char *) 0, (char *) 0}
};
+static int
+skip_csi(const char *cap)
+{
+ int result = 0;
+ if (cap[0] == '\033' && cap[1] == '[')
+ result = 2;
+ else if (UChar(cap[0]) == 0233)
+ result = 1;
+ return result;
+}
+
static void
-analyze_string(const char *name, const char *cap, TERMTYPE * tp)
+analyze_string(const char *name, const char *cap, TERMTYPE *tp)
{
char buf[MAX_TERMINFO_LENGTH];
char buf2[MAX_TERMINFO_LENGTH];
const char *sp, *ep;
const assoc *ap;
+ int tp_lines = tp->Numbers[2];
if (cap == ABSENT_STRING || cap == CANCELLED_STRING)
return;
buf[0] = '\0';
for (sp = cap; *sp; sp++) {
int i;
+ int csi;
size_t len = 0;
const char *expansion = 0;
}
/* now check the standard capabilities */
- if (!expansion)
+ if (!expansion) {
+ csi = skip_csi(sp);
for (ap = std_caps; ap->from; ap++) {
- len = strlen(ap->from);
+ size_t adj = csi ? 2 : 0;
- if (strncmp(ap->from, sp, len) == 0) {
+ len = strlen(ap->from);
+ if (len > adj
+ && strncmp(ap->from + adj, sp + csi, len - adj) == 0) {
expansion = ap->to;
+ len -= adj;
+ len += csi;
break;
}
}
+ }
+
+ /* now check for standard-mode sequences */
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0
+ && (len = strspn(sp + csi, "0123456789;"))
+ && ((sp[csi + len] == 'h') || (sp[csi + len] == 'l'))) {
+ char buf3[MAX_TERMINFO_LENGTH];
+
+ (void) strcpy(buf2, (sp[csi + len] == 'h') ? "ECMA+" : "ECMA-");
+ (void) strncpy(buf3, sp + csi, len);
+ len += csi + 1;
+ buf3[len] = '\0';
+
+ ep = strtok(buf3, ";");
+ do {
+ bool found = FALSE;
+
+ for (ap = std_modes; ap->from; ap++) {
+ size_t tlen = strlen(ap->from);
+
+ if (strncmp(ap->from, ep, tlen) == 0) {
+ (void) strcat(buf2, ap->to);
+ found = TRUE;
+ break;
+ }
+ }
+
+ if (!found)
+ (void) strcat(buf2, ep);
+ (void) strcat(buf2, ";");
+ } while
+ ((ep = strtok((char *) 0, ";")));
+ buf2[strlen(buf2) - 1] = '\0';
+ expansion = buf2;
+ }
/* now check for private-mode sequences */
if (!expansion
- && sp[0] == '\033' && sp[1] == '[' && sp[2] == '?'
- && (len = strspn(sp + 3, "0123456789;"))
- && ((sp[3 + len] == 'h') || (sp[3 + len] == 'l'))) {
+ && (csi = skip_csi(sp)) != 0
+ && sp[csi] == '?'
+ && (len = strspn(sp + csi + 1, "0123456789;"))
+ && ((sp[csi + 1 + len] == 'h') || (sp[csi + 1 + len] == 'l'))) {
char buf3[MAX_TERMINFO_LENGTH];
- (void) strcpy(buf2, (sp[3 + len] == 'h') ? "DEC+" : "DEC-");
- (void) strncpy(buf3, sp + 3, len);
- len += 4;
+ (void) strcpy(buf2, (sp[csi + 1 + len] == 'h') ? "DEC+" : "DEC-");
+ (void) strncpy(buf3, sp + csi + 1, len);
+ len += csi + 2;
buf3[len] = '\0';
ep = strtok(buf3, ";");
/* now check for ECMA highlight sequences */
if (!expansion
- && sp[0] == '\033' && sp[1] == '['
- && (len = strspn(sp + 2, "0123456789;"))
- && sp[2 + len] == 'm') {
+ && (csi = skip_csi(sp)) != 0
+ && (len = strspn(sp + csi, "0123456789;")) != 0
+ && sp[csi + len] == 'm') {
char buf3[MAX_TERMINFO_LENGTH];
(void) strcpy(buf2, "SGR:");
- (void) strncpy(buf3, sp + 2, len);
- len += 3;
+ (void) strncpy(buf3, sp + csi, len);
+ len += csi + 1;
buf3[len] = '\0';
ep = strtok(buf3, ";");
buf2[strlen(buf2) - 1] = '\0';
expansion = buf2;
}
+
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0
+ && sp[csi] == 'm') {
+ len = csi + 1;
+ (void) strcpy(buf2, "SGR:");
+ strcat(buf2, ecma_highlights[0].to);
+ expansion = buf2;
+ }
+
/* now check for scroll region reset */
- if (!expansion) {
- (void) sprintf(buf2, "\033[1;%dr", tp->Numbers[2]);
- len = strlen(buf2);
- if (strncmp(buf2, sp, len) == 0)
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0) {
+ if (sp[csi] == 'r') {
expansion = "RSR";
+ len = 1;
+ } else {
+ (void) sprintf(buf2, "1;%dr", tp_lines);
+ len = strlen(buf2);
+ if (strncmp(buf2, sp + csi, len) == 0)
+ expansion = "RSR";
+ }
+ len += csi;
}
/* now check for home-down */
- if (!expansion) {
- (void) sprintf(buf2, "\033[%d;1H", tp->Numbers[2]);
+ if (!expansion
+ && (csi = skip_csi(sp)) != 0) {
+ (void) sprintf(buf2, "%d;1H", tp_lines);
len = strlen(buf2);
- if (strncmp(buf2, sp, len) == 0)
+ if (strncmp(buf2, sp + csi, len) == 0) {
expansion = "LL";
+ } else {
+ (void) sprintf(buf2, "%dH", tp_lines);
+ len = strlen(buf2);
+ if (strncmp(buf2, sp + csi, len) == 0) {
+ expansion = "LL";
+ }
+ }
+ len += csi;
}
/* now look at the expansion we got, if any */
/* parse entries out of the source file */
_nc_set_source(argv[n]);
- _nc_read_entry_source(stdin, NULL, TRUE, FALSE, NULLHOOK);
+ _nc_read_entry_source(stdin, NULL, TRUE, literal, NULLHOOK);
if (itrace)
(void) fprintf(stderr, "Resolving file %d...\n", n - 0);
/* maybe do use resolution */
- if (!_nc_resolve_uses(!limited)) {
+ if (!_nc_resolve_uses2(!limited, literal)) {
(void) fprintf(stderr,
"There are unresolved use entries in %s:\n",
argv[n]);
," -L use long names"
," -R subset (see manpage)"
," -T eliminate size limits (test)"
+ ," -U eliminate post-processing of entries"
," -V print version"
#if NCURSES_XNAMES
," -a with -F, list commented-out caps"
," -u produce source with 'use='"
," -v number (verbose)"
," -w number (width)"
+#if NCURSES_XNAMES
+ ," -x treat unknown capabilities as user-defined"
+#endif
};
const size_t first = 3;
const size_t last = SIZEOF(tbl);
/* dump C initializers for the terminal type */
static void
-dump_initializers(TERMTYPE * term)
+dump_initializers(TERMTYPE *term)
{
unsigned n;
int size;
str = "CANCELLED_BOOLEAN";
break;
}
- (void) printf("\t/* %3d: %-8s */\t%s,\n",
+ (void) printf("\t/* %3u: %-8s */\t%s,\n",
n, ExtBoolname(term, n, boolnames), str);
}
(void) printf("%s;\n", R_CURL);
str = buf;
break;
}
- (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
+ (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
ExtNumname(term, n, numnames), str);
}
(void) printf("%s;\n", R_CURL);
- size = sizeof(TERMTYPE)
- + (NUM_BOOLEANS(term) * sizeof(term->Booleans[0]))
- + (NUM_NUMBERS(term) * sizeof(term->Numbers[0]));
+ size = (sizeof(TERMTYPE)
+ + (NUM_BOOLEANS(term) * sizeof(term->Booleans[0]))
+ + (NUM_NUMBERS(term) * sizeof(term->Numbers[0])));
(void) printf("static char * %s[] = %s\n", name_initializer("string"), L_CURL);
else {
str = string_variable(ExtStrname(term, n, strnames));
}
- (void) printf("\t/* %3d: %-8s */\t%s,\n", n,
+ (void) printf("\t/* %3u: %-8s */\t%s,\n", n,
ExtStrname(term, n, strnames), str);
}
(void) printf("%s;\n", R_CURL);
(void) printf("static char * %s[] = %s\n",
name_initializer("string_ext"), L_CURL);
for (n = BOOLCOUNT; n < NUM_BOOLEANS(term); ++n) {
- (void) printf("\t/* %3d: bool */\t\"%s\",\n",
+ (void) printf("\t/* %3u: bool */\t\"%s\",\n",
n, ExtBoolname(term, n, boolnames));
}
for (n = NUMCOUNT; n < NUM_NUMBERS(term); ++n) {
- (void) printf("\t/* %3d: num */\t\"%s\",\n",
+ (void) printf("\t/* %3u: num */\t\"%s\",\n",
n, ExtNumname(term, n, numnames));
}
for (n = STRCOUNT; n < NUM_STRINGS(term); ++n) {
- (void) printf("\t/* %3d: str */\t\"%s\",\n",
+ (void) printf("\t/* %3u: str */\t\"%s\",\n",
n, ExtStrname(term, n, strnames));
}
(void) printf("%s;\n", R_CURL);
/* dump C initializers for the terminal type */
static void
-dump_termtype(TERMTYPE * term)
+dump_termtype(TERMTYPE *term)
{
(void) printf("\t%s\n\t\t%s,\n", L_CURL, name_initializer("alias"));
(void) printf("\t\t(char *)0,\t/* pointer to string table */\n");
/* where is the terminfo database location going to default to? */
restdir = firstdir = 0;
+#if NCURSES_XNAMES
+ use_extended_names(FALSE);
+#endif
+
while ((c = getopt(argc,
argv,
- "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtuVv:w:")) != EOF)
+ "1A:aB:CcdEeFfGgIiLlnpqR:rs:TtUuVv:w:x")) != EOF)
switch (c) {
case '1':
mwidth = 0;
break;
#endif
+ case 'U':
+ literal = TRUE;
+ break;
+
case 'u':
compare = C_USEALL;
break;
mwidth = optarg_to_number();
break;
+#if NCURSES_XNAMES
+ case 'x':
+ use_extended_names(TRUE);
+ break;
+#endif
+
default:
usage();
}
-# $Id: modules,v 1.10 2000/01/02 01:30:45 tom Exp $
+# $Id: modules,v 1.12 2005/09/25 00:54:22 tom Exp $
# Program modules (some are in ncurses lib!)
##############################################################################
-# Copyright (c) 1998-2000 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2000,2005 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"), #
#
@ base
-clear progs $(srcdir) ../include/term.h
-tic progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-toe progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-dump_entry progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
-infocmp progs $(srcdir) ../include/term.h $(INCDIR)/tic.h $(srcdir)/dump_entry.h
-tput progs $(srcdir) ../include/term.h
-tset progs $(srcdir) ../include/term.h
+clear progs $(srcdir) $(HEADER_DEPS)
+tic progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h
+toe progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h
+dump_entry progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h ../include/parametrized.h $(INCDIR)/capdefaults.c termsort.c
+infocmp progs $(srcdir) $(HEADER_DEPS) $(srcdir)/dump_entry.h
+tput progs $(srcdir) $(HEADER_DEPS) transform.h termsort.c
+tset progs $(srcdir) $(HEADER_DEPS) transform.h $(srcdir)/dump_entry.h ../include/termcap.h
/****************************************************************************
- * Copyright (c) 1998-2000 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2005 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 *
****************************************************************************/
/****************************************************************************
- * Author: Thomas E. Dickey <dickey@clark.net> 1997,1998 *
+ * Author: Thomas E. Dickey 1997-on *
****************************************************************************/
/*
- * $Id: progs.priv.h,v 1.27 2001/06/18 18:43:52 tom Exp $
+ * $Id: progs.priv.h,v 1.29 2005/08/06 20:05:32 tom Exp $
*
* progs.priv.h
*
#if HAVE_UNISTD_H
#include <unistd.h>
-#else
-# if HAVE_LIBC_H
-# include <libc.h>
-# endif
#endif
#if HAVE_SYS_BSDTYPES_H
#if HAVE_DIRENT_H
# include <dirent.h>
# define NAMLEN(dirent) strlen((dirent)->d_name)
+# if defined(_FILE_OFFSET_BITS) && defined(HAVE_STRUCT_DIRENT64)
+# if !defined(_LP64) && (_FILE_OFFSET_BITS == 64)
+# define DIRENT struct dirent64
+# else
+# define DIRENT struct dirent
+# endif
+# else
+# define DIRENT struct dirent
+# endif
#else
-# define dirent direct
+# define DIRENT struct direct
# define NAMLEN(dirent) (dirent)->d_namlen
# if HAVE_SYS_NDIR_H
# include <sys/ndir.h>
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
#include <sys/stat.h>
#include <dump_entry.h>
-#include <term_entry.h>
#include <transform.h>
-MODULE_ID("$Id: tic.c,v 1.109 2003/12/06 17:36:57 tom Exp $")
+MODULE_ID("$Id: tic.c,v 1.125 2005/09/25 00:39:43 tom Exp $")
const char *_nc_progname = "tic";
static FILE *log_fp;
static FILE *tmp_fp;
+static bool capdump = FALSE; /* running as infotocap? */
+static bool infodump = FALSE; /* running as captoinfo? */
static bool showsummary = FALSE;
static const char *to_remove;
-static int tparm_errs;
-static void (*save_check_termtype) (TERMTYPE *);
-static void check_termtype(TERMTYPE * tt);
-
-static const char usage_string[] = "[-V] [-v[n]] [-e names] [-o dir] [-R name] [-CILNTcfrswx1] source-file\n";
+static void (*save_check_termtype) (TERMTYPE *, bool);
+static void check_termtype(TERMTYPE *tt, bool);
+
+static const char usage_string[] = "\
+[-e names] \
+[-o dir] \
+[-R name] \
+[-v[n]] \
+[-V] \
+[-w[n]] \
+[-\
+1\
+a\
+C\
+c\
+f\
+G\
+g\
+I\
+L\
+N\
+r\
+s\
+T\
+t\
+U\
+x\
+] \
+source-file\n";
static void
cleanup(void)
#if NCURSES_XNAMES
" -t suppress commented-out capabilities",
#endif
+ " -U suppress post-processing of entries",
" -V print version",
" -v[n] set verbosity level",
" -w[n] set format width for translation output",
if (showsummary) {
fprintf(log_fp, "Entries that will be compiled:\n");
for (n = 0; dst[n] != 0; n++)
- fprintf(log_fp, "%d:%s\n", n + 1, dst[n]);
+ fprintf(log_fp, "%u:%s\n", n + 1, dst[n]);
}
return dst;
}
int width = 60;
bool formatted = FALSE; /* reformat complex strings? */
+ bool literal = FALSE; /* suppress post-processing? */
int numbers = 0; /* format "%'char'" to/from "%{number}" */
- bool infodump = FALSE; /* running as captoinfo? */
- bool capdump = FALSE; /* running as infotocap? */
bool forceresolve = FALSE; /* force resolution */
bool limited = TRUE;
char *tversion = (char *) NULL;
* be optional.
*/
while ((this_opt = getopt(argc, argv,
- "0123456789CILNR:TVace:fGgo:rstvwx")) != EOF) {
+ "0123456789CILNR:TUVace:fGgo:rstvwx")) != EOF) {
if (isdigit(this_opt)) {
switch (last_opt) {
case 'v':
break;
case 'N':
smart_defaults = FALSE;
+ literal = TRUE;
break;
case 'R':
tversion = optarg;
case 'T':
limited = FALSE;
break;
+ case 'U':
+ literal = TRUE;
+ break;
case 'V':
puts(curses_version());
return EXIT_SUCCESS;
set_trace_level(debug_level);
if (_nc_tracing) {
- save_check_termtype = _nc_check_termtype;
- _nc_check_termtype = check_termtype;
+ save_check_termtype = _nc_check_termtype2;
+ _nc_check_termtype2 = check_termtype;
}
#if !HAVE_BIG_CORE
/*
(void) fprintf(stderr,
"Sorry, -e can't be used without -I or -C\n");
cleanup();
- return EXIT_FAILURE;
+ ExitProgram(EXIT_FAILURE);
}
#endif /* HAVE_BIG_CORE */
_nc_progname,
_nc_progname,
usage_string);
- return EXIT_FAILURE;
+ ExitProgram(EXIT_FAILURE);
}
} else {
if (infodump == TRUE) {
_nc_progname,
usage_string);
cleanup();
- return EXIT_FAILURE;
+ ExitProgram(EXIT_FAILURE);
}
}
_nc_set_writedir(outdir);
#endif /* HAVE_BIG_CORE */
_nc_read_entry_source(tmp_fp, (char *) NULL,
- !smart_defaults, FALSE,
- (check_only || infodump || capdump) ? NULLHOOK : immedhook);
+ !smart_defaults || literal, FALSE,
+ ((check_only || infodump || capdump)
+ ? NULLHOOK
+ : immedhook));
/* do use resolution */
if (check_only || (!infodump && !capdump) || forceresolve) {
- if (!_nc_resolve_uses(TRUE) && !check_only) {
+ if (!_nc_resolve_uses2(TRUE, literal) && !check_only) {
cleanup();
- return EXIT_FAILURE;
+ ExitProgram(EXIT_FAILURE);
}
}
fprintf(log_fp, "No entries written\n");
}
cleanup();
- return (EXIT_SUCCESS);
+ ExitProgram(EXIT_SUCCESS);
}
/*
* Check if the alternate character-set capabilities are consistent.
*/
static void
-check_acs(TERMTYPE * tp)
+check_acs(TERMTYPE *tp)
{
if (VALID_STRING(acs_chars)) {
const char *boxes = "lmkjtuvwqxn";
* Check if the color capabilities are consistent
*/
static void
-check_colors(TERMTYPE * tp)
+check_colors(TERMTYPE *tp)
{
if ((max_colors > 0) != (max_pairs > 0)
|| ((max_colors > max_pairs) && (initialize_pair == 0)))
if (VALID_STRING(set_foreground)
&& VALID_STRING(set_a_foreground)
- && !strcmp(set_foreground, set_a_foreground))
+ && !_nc_capcmp(set_foreground, set_a_foreground))
_nc_warning("expected setf/setaf to be different");
if (VALID_STRING(set_background)
&& VALID_STRING(set_a_background)
- && !strcmp(set_background, set_a_background))
+ && !_nc_capcmp(set_background, set_a_background))
_nc_warning("expected setb/setab to be different");
/* see: has_colors() */
* is mapped inconsistently.
*/
static void
-check_keypad(TERMTYPE * tp)
+check_keypad(TERMTYPE *tp)
{
char show[80];
* markers.
*/
static void
-check_params(TERMTYPE * tp, const char *name, char *value)
+check_params(TERMTYPE *tp, const char *name, char *value)
{
int expected = expected_params(name);
int actual = 0;
return s;
}
+/*
+ * Skip a delay altogether, e.g., when comparing a simple string to sgr,
+ * the latter may have a worst-case delay on the end.
+ */
+static char *
+ignore_delays(char *s)
+{
+ int delaying = 0;
+
+ do {
+ switch (*s) {
+ case '$':
+ if (delaying == 0)
+ delaying = 1;
+ break;
+ case '<':
+ if (delaying == 1)
+ delaying = 2;
+ break;
+ case '\0':
+ delaying = 0;
+ break;
+ default:
+ if (delaying) {
+ s = skip_delay(s);
+ if (*s == '>')
+ ++s;
+ delaying = 0;
+ }
+ break;
+ }
+ if (delaying)
+ ++s;
+ } while (delaying);
+ return s;
+}
+
/*
* An sgr string may contain several settings other than the one we're
* interested in, essentially sgr0 + rmacs + whatever. As long as the
a++;
b++;
}
- return TRUE;
+ /* ignore delays on the end of the string */
+ a = ignore_delays(a);
+ return ((num != 0) || (*a == 0));
}
-static void
-check_sgr(TERMTYPE * tp, char *zero, int num, char *cap, const char *name)
+static char *
+check_sgr(TERMTYPE *tp, char *zero, int num, char *cap, const char *name)
{
- char *test = tparm(set_attributes,
- num == 1,
- num == 2,
- num == 3,
- num == 4,
- num == 5,
- num == 6,
- num == 7,
- num == 8,
- num == 9);
- tparm_errs += _nc_tparm_err;
+ char *test;
+
+ _nc_tparm_err = 0;
+ test = tparm(set_attributes,
+ num == 1,
+ num == 2,
+ num == 3,
+ num == 4,
+ num == 5,
+ num == 6,
+ num == 7,
+ num == 8,
+ num == 9);
if (test != 0) {
if (PRESENT(cap)) {
if (!similar_sgr(num, test, cap)) {
name, _nc_visbuf2(1, cap),
num, _nc_visbuf2(2, test));
}
- } else if (strcmp(test, zero)) {
+ } else if (_nc_capcmp(test, zero)) {
_nc_warning("sgr(%d) present, but not %s", num, name);
}
} else if (PRESENT(cap)) {
_nc_warning("sgr(%d) missing, but %s present", num, name);
}
+ if (_nc_tparm_err)
+ _nc_warning("stack error in sgr(%d) string", num);
+ return test;
}
#define CHECK_SGR(num,name) check_sgr(tp, zero, num, name, #name)
+#ifdef TRACE
+/*
+ * If tic is compiled with TRACE, we'll be able to see the output from the
+ * DEBUG() macro. But since it doesn't use traceon(), it always goes to
+ * the standard error. Use this function to make it simpler to follow the
+ * resulting debug traces.
+ */
+static void
+show_where(unsigned level)
+{
+ if (_nc_tracing >= level) {
+ char my_name[256];
+ _nc_get_type(my_name);
+ fprintf(stderr, "\"%s\", line %d, '%s' ",
+ _nc_get_source(),
+ _nc_curr_line, my_name);
+ }
+}
+
+#else
+#define show_where(level) /* nothing */
+#endif
+
/* other sanity-checks (things that we don't want in the normal
* logic that reads a terminfo entry)
*/
static void
-check_termtype(TERMTYPE * tp)
+check_termtype(TERMTYPE *tp, bool literal)
{
bool conflict = FALSE;
unsigned j, k;
* a given string (e.g., KEY_END and KEY_LL). But curses will only
* return one (the last one assigned).
*/
- memset(fkeys, 0, sizeof(fkeys));
- for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
- char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
- bool first = TRUE;
- if (!VALID_STRING(a))
- continue;
- for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) {
- char *b = tp->Strings[_nc_tinfo_fkeys[k].offset];
- if (!VALID_STRING(b)
- || fkeys[k])
+ if (!(_nc_syntax == SYN_TERMCAP && capdump)) {
+ memset(fkeys, 0, sizeof(fkeys));
+ for (j = 0; _nc_tinfo_fkeys[j].code; j++) {
+ char *a = tp->Strings[_nc_tinfo_fkeys[j].offset];
+ bool first = TRUE;
+ if (!VALID_STRING(a))
continue;
- if (!strcmp(a, b)) {
- fkeys[j] = 1;
- fkeys[k] = 1;
- if (first) {
- if (!conflict) {
- _nc_warning("Conflicting key definitions (using the last)");
- conflict = TRUE;
+ for (k = j + 1; _nc_tinfo_fkeys[k].code; k++) {
+ char *b = tp->Strings[_nc_tinfo_fkeys[k].offset];
+ if (!VALID_STRING(b)
+ || fkeys[k])
+ continue;
+ if (!_nc_capcmp(a, b)) {
+ fkeys[j] = 1;
+ fkeys[k] = 1;
+ if (first) {
+ if (!conflict) {
+ _nc_warning("Conflicting key definitions (using the last)");
+ conflict = TRUE;
+ }
+ fprintf(stderr, "... %s is the same as %s",
+ keyname((int) _nc_tinfo_fkeys[j].code),
+ keyname((int) _nc_tinfo_fkeys[k].code));
+ first = FALSE;
+ } else {
+ fprintf(stderr, ", %s",
+ keyname((int) _nc_tinfo_fkeys[k].code));
}
- fprintf(stderr, "... %s is the same as %s",
- keyname(_nc_tinfo_fkeys[j].code),
- keyname(_nc_tinfo_fkeys[k].code));
- first = FALSE;
- } else {
- fprintf(stderr, ", %s",
- keyname(_nc_tinfo_fkeys[k].code));
}
}
+ if (!first)
+ fprintf(stderr, "\n");
}
- if (!first)
- fprintf(stderr, "\n");
}
for (j = 0; j < NUM_STRINGS(tp); j++) {
ANDMISSING(cursor_visible, cursor_normal);
if (PRESENT(cursor_visible) && PRESENT(cursor_normal)
- && !strcmp(cursor_visible, cursor_normal))
+ && !_nc_capcmp(cursor_visible, cursor_normal))
_nc_warning("cursor_visible is same as cursor_normal");
/*
ANDMISSING(change_scroll_region, save_cursor);
ANDMISSING(change_scroll_region, restore_cursor);
- tparm_errs = 0;
if (PRESENT(set_attributes)) {
- char *zero = tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-
- zero = strdup(zero);
- CHECK_SGR(1, enter_standout_mode);
- CHECK_SGR(2, enter_underline_mode);
- CHECK_SGR(3, enter_reverse_mode);
- CHECK_SGR(4, enter_blink_mode);
- CHECK_SGR(5, enter_dim_mode);
- CHECK_SGR(6, enter_bold_mode);
- CHECK_SGR(7, enter_secure_mode);
- CHECK_SGR(8, enter_protected_mode);
- CHECK_SGR(9, enter_alt_charset_mode);
- free(zero);
- if (tparm_errs)
- _nc_warning("stack error in sgr string");
+ char *zero = 0;
+
+ _nc_tparm_err = 0;
+ if (PRESENT(exit_attribute_mode)) {
+ zero = strdup(CHECK_SGR(0, exit_attribute_mode));
+ } else {
+ zero = strdup(tparm(set_attributes, 0, 0, 0, 0, 0, 0, 0, 0, 0));
+ }
+ if (_nc_tparm_err)
+ _nc_warning("stack error in sgr(0) string");
+
+ if (zero != 0) {
+ CHECK_SGR(1, enter_standout_mode);
+ CHECK_SGR(2, enter_underline_mode);
+ CHECK_SGR(3, enter_reverse_mode);
+ CHECK_SGR(4, enter_blink_mode);
+ CHECK_SGR(5, enter_dim_mode);
+ CHECK_SGR(6, enter_bold_mode);
+ CHECK_SGR(7, enter_secure_mode);
+ CHECK_SGR(8, enter_protected_mode);
+ CHECK_SGR(9, enter_alt_charset_mode);
+ free(zero);
+ } else {
+ _nc_warning("sgr(0) did not return a value");
+ }
+ } else if (PRESENT(exit_attribute_mode) &&
+ set_attributes != CANCELLED_STRING) {
+ if (_nc_syntax == SYN_TERMINFO)
+ _nc_warning("missing sgr string");
+ }
+
+ if (PRESENT(exit_attribute_mode)) {
+ char *check_sgr0 = _nc_trim_sgr0(tp);
+
+ if (check_sgr0 == 0 || *check_sgr0 == '\0') {
+ _nc_warning("trimmed sgr0 is empty");
+ } else {
+ show_where(2);
+ if (check_sgr0 != exit_attribute_mode) {
+ DEBUG(2,
+ ("will trim sgr0\n\toriginal sgr0=%s\n\ttrimmed sgr0=%s",
+ _nc_visbuf2(1, exit_attribute_mode),
+ _nc_visbuf2(2, check_sgr0)));
+ free(check_sgr0);
+ } else {
+ DEBUG(2,
+ ("will not trim sgr0\n\toriginal sgr0=%s",
+ _nc_visbuf(exit_attribute_mode)));
+ }
+ }
}
+#ifdef TRACE
+ show_where(2);
+ if (!auto_right_margin) {
+ DEBUG(2,
+ ("can write to lower-right directly"));
+ } else if (PRESENT(enter_am_mode) && PRESENT(exit_am_mode)) {
+ DEBUG(2,
+ ("can write to lower-right by suppressing automargin"));
+ } else if ((PRESENT(enter_insert_mode) && PRESENT(exit_insert_mode))
+ || PRESENT(insert_character) || PRESENT(parm_ich)) {
+ DEBUG(2,
+ ("can write to lower-right by using inserts"));
+ } else {
+ DEBUG(2,
+ ("cannot write to lower-right"));
+ }
+#endif
/*
* Some standard applications (e.g., vi) and some non-curses
* Finally, do the non-verbose checks
*/
if (save_check_termtype != 0)
- save_check_termtype(tp);
+ save_check_termtype(tp, literal);
}
/****************************************************************************
- * Copyright (c) 1998-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2002,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <sys/stat.h>
#include <dump_entry.h>
-#include <term_entry.h>
-MODULE_ID("$Id: toe.c,v 1.27 2002/10/06 01:22:05 tom Exp $")
+MODULE_ID("$Id: toe.c,v 1.29 2005/09/25 00:39:43 tom Exp $")
#define isDotname(name) (!strcmp(name, ".") || !strcmp(name, ".."))
for (i = 0; i < eargc; i++) {
DIR *termdir;
- struct dirent *subdir;
+ DIRENT *subdir;
if ((termdir = opendir(eargv[i])) == 0) {
(void) fflush(stdout);
char buf[PATH_MAX];
char name_1[PATH_MAX];
DIR *entrydir;
- struct dirent *entry;
+ DIRENT *entry;
strncpy(name_1, subdir->d_name, len)[len] = '\0';
if (isDotname(name_1))
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
#endif
#include <transform.h>
-MODULE_ID("$Id: tput.c,v 1.34 2004/01/16 23:23:11 Daniel.Jacobowitz Exp $")
+MODULE_ID("$Id: tput.c,v 1.35 2005/04/03 14:25:32 tom Exp $")
#define PUTS(s) fputs(s, stdout)
#define PUTCHAR(c) putchar(c)
int i, j, c;
int status;
FILE *f;
- int token = UNDEF;
if ((name = argv[0]) == 0)
name = "";
} else if ((s = tigetstr(name)) == CANCELLED_STRING) {
quit(4, "unknown terminfo capability '%s'", name);
} else if (s != ABSENT_STRING) {
- token = STRING;
if (argc > 1) {
int k;
int popcount;
int c;
char buf[BUFSIZ];
int result = 0;
- int err;
check_aliases(prg_name = _nc_rootname(argv[0]));
argvec[argnum] = 0;
if (argnum != 0
- && (err = tput(argnum, argvec)) != 0) {
+ && tput(argnum, argvec) != 0) {
if (result == 0)
result = 4; /* will return value >4 */
++result;
/****************************************************************************
- * Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
/****************************************************************************
* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995 *
* and: Eric S. Raymond <esr@snark.thyrsus.com> *
+ * and: Thomas E. Dickey 1996-on *
****************************************************************************/
/*
#include <sys/ptem.h>
#endif
-#include <curses.h> /* for bool typedef */
#include <dump_entry.h>
#include <transform.h>
-MODULE_ID("$Id: tset.c,v 0.56 2003/12/06 17:21:01 tom Exp $")
+MODULE_ID("$Id: tset.c,v 1.60 2005/09/25 00:43:52 tom Exp $")
extern char **environ;
static TTY mode, oldmode, original;
+static bool opt_c; /* set control-chars */
+static bool opt_w; /* set window-size */
+
static bool can_restore = FALSE;
static bool isreset = FALSE; /* invoked as reset */
static int terasechar = -1; /* new erase character */
{
va_list ap;
va_start(ap, fmt);
- (void) fprintf(stderr, "tset: ");
+ (void) fprintf(stderr, "%s: ", _nc_progname);
(void) vfprintf(stderr, fmt, ap);
va_end(ap);
exit_error();
failed(const char *msg)
{
char temp[BUFSIZ];
- perror(strncat(strcpy(temp, "tset: "), msg, sizeof(temp) - 10));
+ unsigned len = strlen(_nc_progname) + 2;
+
+ if (len < sizeof(temp) - 12) {
+ strcpy(temp, _nc_progname);
+ strcat(temp, ": ");
+ } else {
+ strcpy(temp, "tset: ");
+ }
+ perror(strncat(temp, msg, sizeof(temp) - strlen(temp) - 2));
exit_error();
/* NOTREACHED */
}
while (setupterm((NCURSES_CONST char *) ttype, STDOUT_FILENO, &errret)
!= OK) {
if (errret == 0) {
- (void) fprintf(stderr, "tset: unknown terminal type %s\n",
- ttype);
+ (void) fprintf(stderr, "%s: unknown terminal type %s\n",
+ _nc_progname, ttype);
ttype = 0;
} else {
(void) fprintf(stderr,
- "tset: can't initialize terminal type %s (error %d)\n",
- ttype, errret);
+ "%s: can't initialize terminal type %s (error %d)\n",
+ _nc_progname, ttype, errret);
ttype = 0;
}
ttype = askuser(ttype);
* used to try a bunch of half-clever things
* with cup and hpa, for an average saving of
* somewhat less than two character times per
- * tab stop, less that .01 sec at 2400cps. We
+ * tab stop, less than .01 sec at 2400cps. We
* lost all this cruft because it seemed to be
* introducing some odd bugs.
- * ----------12345678----------- */
+ * -----------12345678----------- */
(void) fputs(" ", stderr);
tputs(set_tab, 0, outc);
}
(void) fprintf(stderr, "backspace.\n");
else if (newer < 040) {
newer ^= 0100;
- (void) fprintf(stderr, "control-%c (^%c).\n", newer, newer);
+ (void) fprintf(stderr, "control-%c (^%c).\n", UChar(newer), UChar(newer));
} else
- (void) fprintf(stderr, "%c.\n", newer);
+ (void) fprintf(stderr, "%c.\n", UChar(newer));
}
#endif
}
static void
-usage(const char *pname)
+usage(void)
{
- (void) fprintf(stderr,
- "usage: %s [-IQVrs] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal]", pname);
+ static const char *tbl[] =
+ {
+ ""
+ ,"Options:"
+ ," -c set control characters"
+ ," -e ch erase character"
+ ," -I no initialization strings"
+ ," -i ch interrupt character"
+ ," -k ch kill character"
+ ," -m mapping map identifier to type"
+ ," -Q do not output control key settings"
+ ," -r display term on stderr"
+ ," -s output TERM set command"
+ ," -V print curses-version"
+ ," -w set window-size"
+ };
+ unsigned n;
+ (void) fprintf(stderr, "Usage: %s [options] [terminal]\n", _nc_progname);
+ for (n = 0; n < sizeof(tbl) / sizeof(tbl[0]); ++n)
+ fprintf(stderr, "%s\n", tbl[n]);
exit_error();
/* NOTREACHED */
}
const char *p;
const char *ttype;
- if (GET_TTY(STDERR_FILENO, &mode) < 0)
- failed("standard error");
- can_restore = TRUE;
- original = oldmode = mode;
-#ifdef TERMIOS
- ospeed = cfgetospeed(&mode);
-#else
- ospeed = mode.sg_ospeed;
-#endif
-
- p = _nc_rootname(*argv);
- if (!strcmp(p, PROG_RESET)) {
- isreset = TRUE;
- reset_mode();
- }
-
obsolete(argv);
noinit = noset = quiet = Sflag = sflag = showterm = 0;
- while ((ch = getopt(argc, argv, "a:d:e:Ii:k:m:np:qQSrsV")) != EOF) {
+ while ((ch = getopt(argc, argv, "a:cd:e:Ii:k:m:np:qQSrsVw")) != EOF) {
switch (ch) {
- case 'q': /* display term only */
- noset = 1;
+ case 'c': /* set control-chars */
+ opt_c = TRUE;
break;
case 'a': /* OBSOLETE: map identifier to type */
add_mapping("arpanet", optarg);
case 'Q': /* don't output control key settings */
quiet = 1;
break;
- case 'S': /* OBSOLETE: output TERM & TERMCAP */
- Sflag = 1;
+ case 'q': /* display term only */
+ noset = 1;
break;
case 'r': /* display term on stderr */
showterm = 1;
break;
+ case 'S': /* OBSOLETE: output TERM & TERMCAP */
+ Sflag = 1;
+ break;
case 's': /* output TERM set command */
sflag = 1;
break;
- case 'V':
+ case 'V': /* print curses-version */
puts(curses_version());
return EXIT_SUCCESS;
+ case 'w': /* set window-size */
+ opt_w = TRUE;
+ break;
case '?':
default:
- usage(*argv);
+ usage();
}
}
+
+ _nc_progname = _nc_rootname(*argv);
argc -= optind;
argv += optind;
if (argc > 1)
- usage(*argv);
+ usage();
+
+ if (!opt_c && !opt_w)
+ opt_c = opt_w = TRUE;
+
+ if (GET_TTY(STDERR_FILENO, &mode) < 0)
+ failed("standard error");
+ can_restore = TRUE;
+ original = oldmode = mode;
+#ifdef TERMIOS
+ ospeed = cfgetospeed(&mode);
+#else
+ ospeed = mode.sg_ospeed;
+#endif
+
+ if (!strcmp(_nc_progname, PROG_RESET)) {
+ isreset = TRUE;
+ reset_mode();
+ }
ttype = get_termcap_entry(*argv);
tlines = lines;
#if defined(TIOCGWINSZ) && defined(TIOCSWINSZ)
- /* Set window size */
- (void) ioctl(STDERR_FILENO, TIOCGWINSZ, &win);
- if (win.ws_row == 0 && win.ws_col == 0 &&
- tlines > 0 && tcolumns > 0) {
- win.ws_row = tlines;
- win.ws_col = tcolumns;
- (void) ioctl(STDERR_FILENO, TIOCSWINSZ, &win);
+ if (opt_w) {
+ /* Set window size */
+ (void) ioctl(STDERR_FILENO, TIOCGWINSZ, &win);
+ if (win.ws_row == 0 && win.ws_col == 0 &&
+ tlines > 0 && tcolumns > 0) {
+ win.ws_row = tlines;
+ win.ws_col = tcolumns;
+ (void) ioctl(STDERR_FILENO, TIOCSWINSZ, &win);
+ }
}
#endif
- set_control_chars();
- set_conversions();
+ if (opt_c) {
+ set_control_chars();
+ set_conversions();
- if (!noinit)
- set_init();
+ if (!noinit)
+ set_init();
- /* Set the modes if they've changed. */
- if (memcmp(&mode, &oldmode, sizeof(mode))) {
- SET_TTY(STDERR_FILENO, &mode);
+ /* Set the modes if they've changed. */
+ if (memcmp(&mode, &oldmode, sizeof(mode))) {
+ SET_TTY(STDERR_FILENO, &mode);
+ }
}
}
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
- Copyright (C) 19yy <name of author>
+ Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
- Gnomovision version 69, Copyright (C) 19yy name of author
+ Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
-# $Id: Makefile.in,v 1.31 2003/11/01 22:46:24 tom Exp $
+# $Id: Makefile.in,v 1.35 2005/06/18 23:01:59 tom Exp $
# Makefile for tack
#
# The variable 'srcdir' refers to the source-distribution, and can be set with
exec_prefix = @exec_prefix@
bindir = @bindir@
libdir = @libdir@
-mandir = @mandir@/man1
+mandir = @mandir@
includedir = @includedir@
datadir = @datadir@
LD = @LD@
LINK = @LINK_PROGS@ $(LIBTOOL_LINK) $(CC)
LDFLAGS = @EXTRA_LDFLAGS@ \
- @PROG_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@ @EXTRA_LIBS@
+ @TINFO_ARGS@ @LDFLAGS@ @LD_MODEL@ @LIBS@
LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
install.libs \
uninstall.libs:
+EDITARGS = $(DESTDIR)$(mandir) $(srcdir) $(srcdir)/*.[0-9]*
+
install.tack: $(PROGS) \
$(DESTDIR)$(bindir) \
$(DESTDIR)$(mandir)
$(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) tack$x $(DESTDIR)$(bindir)/tack$x
- $(INSTALL_DATA) $(srcdir)/tack.1 $(DESTDIR)$(mandir)/tack.1
+ sh ../edit_man.sh normal installing $(EDITARGS)
uninstall.tack:
-@$(LIBTOOL_UNINSTALL) rm -f $(DESTDIR)$(bindir)/tack$x
- -@rm -f $(DESTDIR)$(mandir)/tack.1
+ -sh ../edit_man.sh normal removing $(EDITARGS)
$(DESTDIR)$(bindir) \
$(DESTDIR)$(mandir) :
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: ansi.c,v 1.9 2001/06/18 18:44:17 tom Exp $")
+MODULE_ID("$Id: ansi.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
/*
* Standalone tests for ANSI terminals. Three entry points:
/*
** Copyright (C) 1991, 1997-2000 Free Software Foundation, Inc.
-**
+**
** This file is part of TACK.
-**
+**
** TACK is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2, or (at your option)
** any later version.
-**
+**
** TACK is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
-**
+**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: charset.c,v 1.8 2001/06/18 18:44:26 tom Exp $")
+MODULE_ID("$Id: charset.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
/*
Menu definitions for alternate character set and SGR tests.
}
-void
+void
eat_cookie(void)
{ /* put a blank if this is not a magic cookie
terminal */
}
-void
+void
put_mode(char *s)
{ /* send the attribute string (with or without
% execution) */
}
put_crlf();
-#ifdef max_attributes
+#ifdef max_attributes
if (max_attributes >= 0) {
sprintf(temp, "(ma) Maximum attributes %d ", max_attributes);
ptext(temp);
#ifdef ACS_ULCORNER
maybe_wait(5);
put_mode(enter_alt_charset_mode);
- put_this(ACS_ULCORNER);
- put_this(ACS_TTEE);
- put_this(ACS_URCORNER);
- put_this(ACS_ULCORNER);
- put_this(ACS_HLINE);
- put_this(ACS_URCORNER);
+ put_that(ACS_ULCORNER);
+ put_that(ACS_TTEE);
+ put_that(ACS_URCORNER);
+ put_that(ACS_ULCORNER);
+ put_that(ACS_HLINE);
+ put_that(ACS_URCORNER);
char_count += 6;
put_mode(exit_alt_charset_mode);
put_crlf();
put_mode(enter_alt_charset_mode);
- put_this(ACS_LTEE);
- put_this(ACS_PLUS);
- put_this(ACS_RTEE);
- put_this(ACS_VLINE);
+ put_that(ACS_LTEE);
+ put_that(ACS_PLUS);
+ put_that(ACS_RTEE);
+ put_that(ACS_VLINE);
if (magic_cookie_glitch >= 1)
put_this(' ');
else {
put_this(' ');
put_mode(enter_alt_charset_mode);
}
- put_this(ACS_VLINE);
+ put_that(ACS_VLINE);
char_count += 6;
put_mode(exit_alt_charset_mode);
put_str(" Here are 2 boxes");
put_crlf();
put_mode(enter_alt_charset_mode);
- put_this(ACS_LLCORNER);
- put_this(ACS_BTEE);
- put_this(ACS_LRCORNER);
- put_this(ACS_LLCORNER);
- put_this(ACS_HLINE);
- put_this(ACS_LRCORNER);
+ put_that(ACS_LLCORNER);
+ put_that(ACS_BTEE);
+ put_that(ACS_LRCORNER);
+ put_that(ACS_LLCORNER);
+ put_that(ACS_HLINE);
+ put_that(ACS_LRCORNER);
char_count += 6;
put_mode(exit_alt_charset_mode);
put_crlf();
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: color.c,v 1.5 2004/01/16 23:14:25 Jochen.Voss Exp $")
+MODULE_ID("$Id: color.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
/*
* Color terminal tests. Has only one entry point: test_color().
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
#include <sys/time.h>
#endif
-MODULE_ID("$Id: control.c,v 1.3 2000/03/04 21:10:59 tom Exp $")
+MODULE_ID("$Id: control.c,v 1.8 2005/09/17 19:49:16 tom Exp $")
/* terminfo test program control subroutines */
char txt_longer_test_time[80]; /* +) use longer time */
char txt_shorter_test_time[80]; /* -) use shorter time */
-int pad_test_duration = 1; /* number of seconds for a pad test */
+static int pad_test_duration = 1; /* number of seconds for a pad test */
int auto_pad_mode; /* run the time tests */
int no_alarm_event; /* TRUE if the alarm has not gone off yet */
-int usec_run_time; /* length of last test in microseconds */
-MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
+unsigned long usec_run_time; /* length of last test in microseconds */
+static MY_TIMER stop_watch[MAX_TIMERS]; /* Hold the start timers */
char txt_longer_augment[80]; /* >) use bigger augment */
char txt_shorter_augment[80]; /* <) use smaller augment */
int tx_delay[TT_MAX]; /* Number of milliseconds delay */
int txp; /* number of entries used */
int tx_characters; /* printing characters sent by test */
-int tx_cps; /* characters per second */
-struct test_list *tx_source; /* The test that generated this data */
-
-extern struct test_menu pad_menu; /* Pad menu structure */
-extern struct test_list pad_test_list[];
+unsigned long tx_cps; /* characters per second */
+static struct test_list *tx_source; /* The test that generated this data */
#define RESULT_BLOCK 1024
static int blocks; /* number of result blocks available */
static struct test_results *results; /* pointer to next available */
-struct test_results *pads[STRCOUNT]; /* save pad results here */
+static struct test_results *pads[STRCOUNT]; /* save pad results here */
/*
** event_start(number)
sliding_scale(
int dividend,
int factor,
- int divisor)
+ unsigned long divisor)
{
double d = dividend;
ptext(temp);
while (r) {
sprintf(temp, "$<%d>", r->delay / 1000);
- put_columns(temp, strlen(temp), 10);
+ put_columns(temp, (int) strlen(temp), 10);
r = r->next;
}
r = pads[x];
if (r->reps > 1) {
delay = r->delay / (r->reps * 100);
sprintf(temp, "$<%d.%d*>", delay / 10, delay % 10);
- put_columns(temp, strlen(temp), 10);
+ put_columns(temp, (int) strlen(temp), 10);
}
r = r->next;
}
put_crlf();
}
}
- sprintf(tbuf, "%011u", usec_run_time);
- sprintf(temp, "Test time: %d.%s, characters per second %d, characters %d",
- usec_run_time / 1000000, &tbuf[5], tx_cps, tx_characters);
+ sprintf(tbuf, "%011lu", usec_run_time);
+ sprintf(temp, "Test time: %lu.%s, characters per second %lu, characters %d",
+ usec_run_time / 1000000UL, &tbuf[5], tx_cps, tx_characters);
ptextln(temp);
for (i = 0; i < txp; i++) {
if ((j = get_string_cap_byvalue(tx_cap[i])) >= 0) {
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: crum.c,v 1.3 2000/03/04 21:09:18 tom Exp $")
+MODULE_ID("$Id: crum.c,v 1.4 2005/09/17 19:49:16 tom Exp $")
/*
* Test cursor movement.
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
#include <time.h>
#include <tic.h>
-MODULE_ID("$Id: edit.c,v 1.8 2001/06/18 18:44:32 tom Exp $")
+MODULE_ID("$Id: edit.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
/*
* Terminfo edit features
};
static char change_pad_text[MAX_CHANGES][80];
-struct test_list change_pad_list[MAX_CHANGES] = {
+static struct test_list change_pad_list[MAX_CHANGES] = {
{MENU_LAST, 0, 0, 0, 0, 0, 0}
};
build_change_menu, change_pad_list, 0, 0, 0
};
-extern struct test_results *pads[STRCOUNT]; /* save pad results here */
-
static TERMTYPE original_term; /* terminal type description */
static char flag_boolean[BOOLCOUNT]; /* flags for booleans */
static char flag_numerics[NUMCOUNT]; /* flags for numerics */
static char flag_strings[STRCOUNT]; /* flags for strings */
static int xon_index; /* Subscript for (xon) */
-int xon_shadow;
+static int xon_shadow;
static int start_display; /* the display has just started */
static int display_lines; /* number of lines displayed */
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: fun.c,v 1.3 2000/03/04 20:29:21 tom Exp $")
+MODULE_ID("$Id: fun.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
/*
* Test the function keys on the terminal. The code for echo tests
#define MAX_STRINGS STRCOUNT
-/* scan code externals */
-extern int scan_max; /* length of longest scan code */
-extern char **scan_up, **scan_down, **scan_name;
-extern int *scan_tested, *scan_length;
/* local definitions */
static const char *fk_name[MAX_STRINGS];
if (fk_label[i]) {
sprintf(outbuf, "%s %s",
fk_name[i] ? fk_name[i] : "??", fk_label[i]);
- put_columns(outbuf, strlen(outbuf), 16);
+ put_columns(outbuf, (int) strlen(outbuf), 16);
}
}
put_newlines(2);
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
/* initialization and wrapup code */
#include <tack.h>
-MODULE_ID("$Id: init.c,v 1.4 2003/09/20 19:40:57 tom Exp $")
+MODULE_ID("$Id: init.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
#if NCURSES_VERSION_MAJOR >= 5 || NCURSES_VERSION_PATCH >= 981219
#define _nc_get_curterm(p) _nc_get_tty_mode(p)
report_cap("ACK (u8)", user8);
#endif
- sprintf(temp, "\nTerminal size: %d x %d. Baud rate: %ld. Frame size: %d.%d", columns, lines, tty_baud_rate, tty_frame_size >> 1, (tty_frame_size & 1) * 5);
+ sprintf(temp, "\nTerminal size: %d x %d. Baud rate: %u. Frame size: %d.%d",
+ columns, lines,
+ tty_baud_rate,
+ tty_frame_size >> 1,
+ (tty_frame_size & 1) * 5);
putln(temp);
}
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: menu.c,v 1.2 2000/03/04 21:13:53 tom Exp $")
+MODULE_ID("$Id: menu.c,v 1.3 2005/09/17 19:49:16 tom Exp $")
/*
Menu control
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: modes.c,v 1.1 1998/01/10 00:29:53 tom Exp $")
+MODULE_ID("$Id: modes.c,v 1.2 2005/09/17 19:49:16 tom Exp $")
/*
* Tests boolean flags and terminal modes.
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
/* screen formatting and I/O utility functions */
#include <tack.h>
#include <time.h>
-MODULE_ID("$Id: output.c,v 1.8 2003/10/25 20:43:43 tom Exp $")
+MODULE_ID("$Id: output.c,v 1.10 2005/09/17 19:49:16 tom Exp $")
/* globals */
long char_sent; /* number of characters sent */
int can_go_home; /* TRUE if we can fashion a home command */
int can_clear_screen; /* TRUE if we can somehow clear the screen */
int raw_characters_sent; /* Total output characters */
-int log_count; /* Number of characters on a log line */
+static int log_count; /* Number of characters on a log line */
/* translate mode default strings */
#define TM_carriage_return TM_string[0].value
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: pad.c,v 1.3 2003/10/18 22:11:29 tom Exp $")
+MODULE_ID("$Id: pad.c,v 1.6 2005/09/17 19:49:16 tom Exp $")
/* test the pad counts on the terminal */
static void pad_smacs(struct test_list *, int *, int *);
static void pad_crash(struct test_list *, int *, int *);
-extern struct test_menu change_pad_menu;
-
/*
Any command found in this list, executed from a "Done" prompt
will force the default action to repeat rather than next.
{MENU_LAST, 0, 0, 0, 0, 0, 0}
};
-extern int test_complete; /* counts number of tests completed */
-
/* globals */
-int hzcc; /* horizontal character count */
+static int hzcc; /* horizontal character count */
char letter; /* current character being displayed */
int letter_number; /* points into letters[] */
int augment, repeats; /* number of characters (or lines) effected */
put_str(every_line);
}
tt_putparm(change_scroll_region, 1, 0, lines - 1);
- tt_putparm(cursor_address, 1, lines - 1, strlen(every_line));
+ tt_putparm(cursor_address, 1, lines - 1, (int) strlen(every_line));
} while(still_testing());
pad_test_shutdown(t, 0);
put_str(" ");
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
/* scan mode keyboard support */
#include <tack.h>
-MODULE_ID("$Id: scan.c,v 1.2 1999/08/21 23:09:35 tom Exp $")
+MODULE_ID("$Id: scan.c,v 1.5 2005/09/17 19:49:16 tom Exp $")
-int scan_max; /* length of longest scan code */
+unsigned scan_max; /* length of longest scan code */
char **scan_up, **scan_down, **scan_name;
-int *scan_tested, *scan_length, *scan_value;
+unsigned *scan_tested, *scan_length;
+static unsigned *scan_value;
static int shift_state;
static char *str;
static int debug_char_count;
-#define SHIFT_KEY 0x100
+#define SHIFT_KEY 0x100
#define CONTROL_KEY 0x200
-#define META_KEY 0x400
-#define CAPS_LOCK 0x800
+#define META_KEY 0x400
+#define CAPS_LOCK 0x800
static const struct {
const char *name;
- int type;
+ unsigned type;
} scan_special[] = {
{"<shift>", SHIFT_KEY},
{"<left shift>", SHIFT_KEY},
char *s, *sl;
FILE *fp;
int ch, i, j;
+ unsigned len;
char home[512];
if ((str = getenv("HOME")))
scan_up = (char **) malloc(sizeof(char *) * MAX_SCAN);
scan_down = (char **) malloc(sizeof(char *) * MAX_SCAN);
scan_name = (char **) malloc(sizeof(char *) * MAX_SCAN);
- scan_tested = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_length = (int *) malloc(sizeof(int *) * MAX_SCAN);
- scan_value = (int *) malloc(sizeof(int *) * MAX_SCAN);
+ scan_tested = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
+ scan_length = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
+ scan_value = (unsigned *) malloc(sizeof(unsigned *) * MAX_SCAN);
scan_up[0] = scan_down[0] = scan_name[0] = (char *) 0;
str = (char *) malloc(4096); /* buffer space */
sl = str + 4000; /* an upper limit */
scan_name[i] = str;
scan_length[i] = strlen(scan_down[i]);
- ch = strlen(scan_up[i]) + scan_length[i];
- if (ch > scan_max)
- scan_max = ch;
+ len = strlen(scan_up[i]) + scan_length[i];
+ if (len > scan_max)
+ scan_max = len;
- scan_value[i] = scan_name[i][0];
+ scan_value[i] = UChar(scan_name[i][0]);
if (scan_name[i][1]) /* multi-character name */
for (j = 0; scan_special[j].name; j++) {
if (!strcmp(scan_name[i], scan_special[j].name)) {
scan_key(void)
{ /* read a key and translate scan mode to
ASCII */
- int i, j, ch;
+ unsigned i;
+ int j, ch;
char buf[64];
for (i = 1;; i++) {
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
#include <time.h>
-MODULE_ID("$Id: sync.c,v 1.3 2001/06/16 17:55:48 tom Exp $")
+MODULE_ID("$Id: sync.c,v 1.8 2005/09/17 19:49:16 tom Exp $")
/* terminal-synchronization and performance tests */
static void sync_clear(struct test_list *, int *, int *);
static void sync_summary(struct test_list *, int *, int *);
-struct test_list sync_test_list[] = {
+static struct test_list sync_test_list[] = {
{MENU_NEXT, 0, 0, 0, "b) baud rate test", sync_home, 0},
{MENU_NEXT, 0, 0, 0, "l) scroll performance", sync_lines, 0},
{MENU_NEXT, 0, 0, 0, "c) clear screen performance", sync_clear, 0},
};
int tty_can_sync; /* TRUE if tty_sync_error() returned FALSE */
-int tty_newline_rate; /* The number of newlines per second */
-int tty_clear_rate; /* The number of clear-screens per second */
-int tty_cps; /* The number of characters per second */
+static int tty_newline_rate; /* The number of newlines per second */
+static int tty_clear_rate; /* The number of clear-screens per second */
+unsigned long tty_cps; /* The number of characters per second */
#define TTY_ACK_SIZE 64
-int ACK_terminator; /* terminating ACK character */
-int ACK_length; /* length of ACK string */
-const char *tty_ENQ; /* enquire string */
-char tty_ACK[TTY_ACK_SIZE]; /* ACK response, set by tty_sync_error() */
+static int ACK_terminator; /* terminating ACK character */
+static int ACK_length; /* length of ACK string */
+static const char *tty_ENQ; /* enquire string */
+static char tty_ACK[TTY_ACK_SIZE]; /* ACK response, set by tty_sync_error() */
/*****************************************************************************
*
if (tx_cps > tty_cps) {
tty_cps = tx_cps;
}
- sprintf(temp, "%d characters per second. Baudrate %d ", tx_cps, j);
+ sprintf(temp, "%lu characters per second. Baudrate %d ", tx_cps, j);
ptext(temp);
generic_done_message(t, state, ch);
}
put_crlf();
ptextln("Terminal size characters/sec linefeeds/sec clears/sec");
sprintf(size, "%dx%d", columns, lines);
- sprintf(temp, "%-10s%-11s%11d %11d %11d", tty_basename, size,
+ sprintf(temp, "%-10s%-11s%11lu %11d %11d", tty_basename, size,
tty_cps, tty_newline_rate, tty_clear_rate);
ptextln(temp);
generic_done_message(t, state, ch);
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
/*
* Operating system dependent functions. We assume the POSIX API.
* global has no effect.
*/
+#ifdef HAVE_CONFIG_H
+#include <ncurses_cfg.h>
+#endif
#include <signal.h> /* include before curses.h to work around glibc bug */
#include <tack.h>
#endif
#endif
-MODULE_ID("$Id: sysdep.c,v 1.11 2002/04/21 19:40:43 tom Exp $")
+MODULE_ID("$Id: sysdep.c,v 1.15 2005/09/17 19:49:16 tom Exp $")
#if DECL_ERRNO
extern int errno;
/* globals */
int tty_frame_size; /* asynch frame size times 2 */
-unsigned long tty_baud_rate; /* baud rate - bits per second */
+unsigned tty_baud_rate; /* baud rate - bits per second */
int not_a_tty; /* TRUE if output is not a tty (i.e. pipe) */
int nodelay_read; /* TRUE if NDELAY is set */
#endif /* NL1 */
break;
}
- if (!(new_modes.c_oflag & ~OPOST))
- new_modes.c_oflag &= ~OPOST;
+ if (!(new_modes.c_oflag & (unsigned long) ~OPOST))
+ new_modes.c_oflag &= (unsigned long) ~OPOST;
#else
new_modes.sg_flags |= RAW;
if (not_a_tty)
if (ask > max) {
ask = max;
}
- if ((got = read(fileno(stdin), s, ask))) {
+ if ((got = read(fileno(stdin), s, (unsigned) ask))) {
s += got;
} else {
break;
{
signal(SIGALRM, alarm_event);
no_alarm_event = 1;
- (void) alarm(seconds);
+ (void) alarm((unsigned) seconds);
}
the new terminfo to a file. The file will have the same name
as the terminal name.
.SH SEE ALSO
-\fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1m), \fBinfocmp\fR(1m).
+\fBterminfo\fR(\*n), \fBncurses\fR(3X), \fBtic\fR(1M), \fBinfocmp\fR(1M).
You should also have the documentation supplied by the terminal
manufacturer.
.SH BUGS
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
#include <tack.h>
-MODULE_ID("$Id: tack.c,v 1.2 2001/10/28 01:05:35 tom Exp $")
+MODULE_ID("$Id: tack.c,v 1.4 2005/09/17 19:49:16 tom Exp $")
/*
This program is designed to test terminfo, not curses. Therefore
*
*****************************************************************************/
-extern struct test_menu sync_menu;
-
static void tools_hex_echo(struct test_list *, int *, int *);
static void tools_debug(struct test_list *, int *, int *);
static char hex_echo_menu_entry[80];
-struct test_list tools_test_list[] = {
+static struct test_list tools_test_list[] = {
{0, 0, 0, 0, "s) ANSI status reports", tools_status, 0},
{0, 0, 0, 0, "g) ANSI SGR modes (bold, underline, reverse)", tools_sgr, 0},
{0, 0, 0, 0, "c) ANSI character sets", tools_charset, 0},
{MENU_LAST, 0, 0, 0, 0, 0, 0}
};
-struct test_menu tools_menu = {
+static struct test_menu tools_menu = {
0, 'q', 0, "Tools Menu", "tools",
0, 0, tools_test_list, 0, 0, 0
};
tty_show_state, tty_test_list, 0, 0, 0
};
-extern struct test_list edit_test_list[];
-
struct test_menu edit_menu = {
0, 'q', 0, "Edit terminfo menu",
"edit", 0,
0, edit_test_list, 0, 0, 0
};
-extern struct test_list mode_test_list[];
-
-struct test_menu mode_menu = {
+static struct test_menu mode_menu = {
0, 'n', 0, "Test modes and glitches:",
"mode", "n) run standard tests",
0, mode_test_list, 0, 0, 0
};
-extern struct test_list acs_test_list[];
-
static struct test_menu acs_menu = {
0, 'n', 0,
"Test alternate character set and graphics rendition:",
0, acs_test_list, 0, 0, 0
};
-extern struct test_list color_test_list[];
-
-struct test_menu color_menu = {
+static struct test_menu color_menu = {
0, 'n', 0,
"Test color:",
"color", "n) run standard tests",
0, color_test_list, 0, 0, 0
};
-extern struct test_list crum_test_list[];
-
static struct test_menu crum_menu = {
0, 'n', 0,
"Test cursor movement:",
0, crum_test_list, 0, 0, 0
};
-extern struct test_list funkey_test_list[];
-
static struct test_menu funkey_menu = {
0, 'n', 0,
"Test function keys:",
sync_test, funkey_test_list, 0, 0, 0
};
-extern struct test_list printer_test_list[];
-
static struct test_menu printer_menu = {
0, 'n', 0,
"Test printer:",
};
static void pad_gen(struct test_list *, int *, int *);
-extern struct test_list pad_test_list[];
static struct test_menu pad_menu = {
0, 'n', 0,
};
-struct test_menu normal_menu = {
+static struct test_menu normal_menu = {
0, 'n', 0, "Main test menu",
"test", "n) run standard tests",
0, normal_test_list, 0, 0, 0
static char logging_menu_entry[80] = "l) start logging";
-struct test_list start_test_list[] = {
+static struct test_list start_test_list[] = {
{0, 0, 0, 0, "b) display basic information", start_basic, 0},
{0, 0, 0, 0, "m) change modes", start_modes, 0},
{0, 0, 0, 0, "t) tools", start_tools, 0},
};
-struct test_menu start_menu = {
+static struct test_menu start_menu = {
0, 'n', 0, "Main Menu", "tack", 0,
0, start_test_list, 0, 0, 0
};
{
put_crlf();
(void) sprintf(temp,
- "Accepting %d bits, UNIX delays %d, XON/XOFF %sabled, speed %ld, translate %s, scan-code mode %s.",
+ "Accepting %d bits, UNIX delays %d, XON/XOFF %sabled, speed %u, translate %s, scan-code mode %s.",
(char_mask == ALLOW_PARITY) ? 8 : 7,
select_delay_type,
select_xon_xoff ? "en" : "dis",
**
** You should have received a copy of the GNU General Public License
** along with TACK; see the file COPYING. If not, write to
-** the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-** Boston, MA 02111-1307, USA.
+** the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+** Boston, MA 02110-1301, USA
*/
-/* $Id: tack.h,v 1.10 2003/10/18 22:26:59 tom Exp $ */
+/* $Id: tack.h,v 1.14 2005/09/17 19:49:16 tom Exp $ */
#ifndef NCURSES_TACK_H_incl
#define NCURSES_TACK_H_incl 1
extern int tty_can_sync;
extern int total_pads_sent; /* count pad characters sent */
extern int total_caps_sent; /* count caps sent */
-extern int total_printing_characters; /* count printing characters sent */
+extern int total_printing_characters; /* count printing characters sent */
extern int no_alarm_event; /* TRUE if the alarm has not gone off yet */
-extern int usec_run_time; /* length of last test in microseconds */
+extern unsigned long usec_run_time; /* length of last test in microseconds */
extern int raw_characters_sent; /* Total output characters */
/* Stopwatch event timers */
extern int select_xon_xoff;
extern int tty_frame_size;
-extern unsigned long tty_baud_rate;
-extern int tty_cps; /* The number of characters per second */
+extern unsigned tty_baud_rate;
+extern unsigned long tty_cps; /* The number of characters per second */
extern int not_a_tty, nodelay_read;
extern int send_reset_init;
extern int tx_index[TT_MAX]; /* String index */
extern int txp; /* number of entries used */
extern int tx_characters; /* printing characters sent by test */
-extern int tx_cps; /* characters per second */
+extern unsigned long tx_cps; /* characters per second */
/*
Menu control for tack.
#define REQUEST_PROMPT 256
-extern char prompt_string[80]; /* menu prompt storage */
-extern struct test_menu edit_menu;
-extern struct test_list *augment_test;
-
/* tack.c */
+extern struct test_menu edit_menu;
extern void show_usage(char *);
extern void print_version(void);
/* output.c */
-extern void tt_tputs(const char *, int);
-extern void tt_putp(const char *);
-extern void tt_putparm(NCURSES_CONST char *, int, int, int);
-extern int tc_putp(const char *);
+extern char *expand(const char *);
+extern char *expand_command(const char *);
+extern char *expand_to(char *, int);
+extern char *hex_expand_to(char *, int);
+extern char *print_expand(char *);
+extern int getchp(int);
+extern int getnext(int);
extern int tc_putch(int);
-extern void putchp(int);
+extern int tc_putp(const char *);
+extern int wait_here(void);
+extern void go_home(void);
+extern void home_down(void);
+extern void maybe_wait(int);
+extern void ptext(const char *);
+extern void ptextln(const char *);
+extern void put_clear(void);
+extern void put_columns(const char *, int, int);
extern void put_cr(void);
extern void put_crlf(void);
-extern void put_clear(void);
extern void put_dec(char *, int);
-extern void put_str(const char *);
-extern void put_lf(void);
extern void put_ind(void);
+extern void put_lf(void);
extern void put_newlines(int);
-extern void put_columns(const char *, int, int);
+extern void put_str(const char *);
extern void put_this(int);
+extern void putchp(int);
extern void putln(const char *);
-extern void ptext(const char *);
-extern void ptextln(const char *);
-extern void home_down(void);
-extern void go_home(void);
-extern void three_digit(char *, int);
-extern int getchp(int);
-extern char *expand(const char *);
-extern char *expand_to(char *, int);
-extern char *expand_command(const char *);
-extern char *hex_expand_to(char *, int);
-extern char *print_expand(char *);
-extern void maybe_wait(int);
-extern int wait_here(void);
extern void read_string(char *, int);
-extern int getnext(int);
+extern void three_digit(char *, int);
+extern void tt_putp(const char *);
+extern void tt_putparm(NCURSES_CONST char *, int, int, int);
+extern void tt_tputs(const char *, int);
+
+#define put_that(n) put_this((int) (n))
/* control.c */
-extern void event_start(int);
-extern long event_time(int);
+extern struct test_list color_test_list[];
extern char *liberated(char *);
-extern void page_loop(void);
-extern void control_init(void);
+extern char txt_longer_augment[80];
+extern char txt_longer_test_time[80];
+extern char txt_shorter_augment[80];
+extern char txt_shorter_test_time[80];
extern int msec_cost(const char *const, int);
extern int skip_pad_test(struct test_list *, int *, int *, const char *);
-extern void pad_test_startup(int);
+extern int sliding_scale(int, int, unsigned long);
extern int still_testing(void);
-extern void pad_test_shutdown(struct test_list *, int);
+extern long event_time(int);
+extern void control_init(void);
extern void dump_test_stats(struct test_list *, int *, int *);
+extern void event_start(int);
+extern void longer_augment(struct test_list *, int *, int *);
extern void longer_test_time(struct test_list *, int *, int *);
-extern void shorter_test_time(struct test_list *, int *, int *);
-extern char txt_longer_test_time[80];
-extern char txt_shorter_test_time[80];
+extern void pad_test_shutdown(struct test_list *, int);
+extern void pad_test_startup(int);
+extern void page_loop(void);
extern void set_augment_txt(void);
-extern void longer_augment(struct test_list *, int *, int *);
extern void shorter_augment(struct test_list *, int *, int *);
-extern char txt_longer_augment[80];
-extern char txt_shorter_augment[80];
-extern int sliding_scale(int, int, int);
-
-/* sync.c */
-extern void verify_time(void);
-extern int tty_sync_error(void);
-extern void flush_input(void);
-extern void sync_test(struct test_menu *);
-extern void sync_handshake(struct test_list *, int *, int *);
+extern void shorter_test_time(struct test_list *, int *, int *);
/* charset.c */
+extern struct test_list acs_test_list[];
extern void set_attr(int);
extern void eat_cookie(void);
extern void put_mode(char *);
-/* init.c */
-extern void reset_init(void);
-extern void display_basic(void);
-extern void put_name(const char *, const char *);
-extern void charset_can_test(void);
-extern void curses_setup(char *);
-extern void bye_kids(int);
-
-/* scan.c */
-extern int scan_key(void);
-extern void scan_init(char *fn);
+/* crum.c */
+extern struct test_list crum_test_list[];
/* ansi.c */
extern void tools_status(struct test_list *, int *, int *);
extern void tools_charset(struct test_list *, int *, int *);
extern void tools_sgr(struct test_list *, int *, int *);
-/* pad.c */
+/* edit.c */
+extern struct test_menu change_pad_menu;
+extern struct test_list edit_test_list[];
+extern char *get_string_cap_byname(const char *, const char **);
+extern int cap_match(const char *names, const char *cap);
+extern int get_string_cap_byvalue(const char *);
+extern int user_modified(void);
+extern void can_test(const char *, int);
+extern void cap_index(const char *, int *);
+extern void edit_init(void);
+extern void save_info(struct test_list *, int *, int *);
+extern void show_report(struct test_list *, int *, int *);
/* fun.c */
+extern struct test_list funkey_test_list[];
+extern struct test_list printer_test_list[];
extern void enter_key(const char *, char *, char *);
extern int tty_meta_prep(void);
extern void tools_report(struct test_list *, int *, int *);
+/* init.c */
+extern void reset_init(void);
+extern void display_basic(void);
+extern void put_name(const char *, const char *);
+extern void charset_can_test(void);
+extern void curses_setup(char *);
+extern void bye_kids(int);
+
+/* scan.c */
+extern char **scan_up, **scan_down, **scan_name;
+extern int scan_key(void);
+extern unsigned scan_max; /* length of longest scan code */
+extern unsigned *scan_tested, *scan_length;
+extern void scan_init(char *fn);
+
/* sysdep.c */
-extern void tty_set(void);
-extern void tty_raw(int, int);
-extern void tty_init(void);
-extern void tty_reset(void);
-extern void spin_flush(void);
+extern int initial_stty_query(int);
+extern int stty_query(int);
+extern void ignoresig(void);
extern void read_key(char *, int);
extern void set_alarm_clock(int);
-extern void ignoresig(void);
-extern int stty_query(int);
-extern int initial_stty_query(int);
-
-/* edit.c */
-extern int user_modified(void);
-extern void save_info(struct test_list *, int *, int *);
-extern void can_test(const char *, int);
-extern void cap_index(const char *, int *);
-extern int cap_match(const char *names, const char *cap);
-extern void edit_init(void);
-extern char *get_string_cap_byname(const char *, const char **);
-extern int get_string_cap_byvalue(const char *);
-extern void show_report(struct test_list *, int *, int *);
+extern void spin_flush(void);
+extern void tty_init(void);
+extern void tty_raw(int, int);
+extern void tty_reset(void);
+extern void tty_set(void);
/* menu.c */
-extern void menu_prompt(void);
-extern void menu_can_scan(const struct test_menu *);
-extern void menu_display(struct test_menu *, int *);
+extern char prompt_string[80]; /* menu prompt storage */
+extern int subtest_menu(struct test_list *, int *, int *);
+extern struct test_list *augment_test;
extern void generic_done_message(struct test_list *, int *, int *);
-extern void pad_done_message(struct test_list *, int *, int *);
+extern void menu_can_scan(const struct test_menu *);
extern void menu_clear_screen(struct test_list *, int *, int *);
+extern void menu_display(struct test_menu *, int *);
+extern void menu_prompt(void);
extern void menu_reset_init(struct test_list *, int *, int *);
-extern int subtest_menu(struct test_list *, int *, int *);
+extern void pad_done_message(struct test_list *, int *, int *);
+
+/* modes.c */
+extern struct test_list mode_test_list[];
+
+/* pad.c */
+extern struct test_list pad_test_list[];
+
+/* sync.c */
+extern struct test_menu sync_menu;
+extern int tty_sync_error(void);
+extern void flush_input(void);
+extern void sync_handshake(struct test_list *, int *, int *);
+extern void sync_test(struct test_menu *);
+extern void verify_time(void);
#endif /* NCURSES_TACK_H_incl */
-# $Id: Makefile.in,v 1.77 2003/12/07 01:36:16 tom Exp $
+# $Id: Makefile.in,v 1.84 2005/09/24 23:05:14 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2005 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"), #
LD = @LD@
LINK = @LINK_TESTS@ $(LIBTOOL_LINK) $(CC) $(CFLAGS)
-LDFLAGS = @LD_MODEL@ @TEST_ARGS@ @LIBS@ @EXTRA_LIBS@ @LOCAL_LDFLAGS@ @LDFLAGS@
+LDFLAGS = @LD_MODEL@ @LOCAL_LDFLAGS@ @LDFLAGS@
LDFLAGS_LIBTOOL = $(LDFLAGS) $(CFLAGS_LIBTOOL)
LDFLAGS_NORMAL = $(LDFLAGS) $(CFLAGS_NORMAL)
LDFLAGS_PROFILE = $(LDFLAGS) $(CFLAGS_PROFILE)
LDFLAGS_SHARED = $(LDFLAGS) $(CFLAGS_SHARED) @LD_SHARED_OPTS@
-LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@)
+# use these for linking with all of the libraries
+LIBS_DEFAULT = @TEST_ARGS@ @LIBS@
+LDFLAGS_DEFAULT = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_DEFAULT)
+
+# use these for linking with the (n)curses library
+LIBS_CURSES = `echo "@TEST_ARGS@ @LIBS@" | sed -e 's/-lform.*-lpanel[^ ]*//'`
+LDFLAGS_CURSES = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_CURSES)
+
+# use these for linking with the tinfo library if we have it, or curses library if not
+LIBS_TINFO = @TINFO_ARGS@ @LIBS@
+LDFLAGS_TINFO = $(LDFLAGS_@DFT_UPR_MODEL@) $(LIBS_TINFO)
LINT = @LINT@
LINT_OPTS = @LINT_OPTS@
LINT_LIBS = -lform -lmenu -lpanel -lncurses @LIBS@
+HEADER_DEPS = \
+ ../include/curses.h \
+ ../include/term.h
+
TESTS = \
background$x \
blue$x \
demo_keyok$x \
demo_menus$x \
demo_panels$x \
+ demo_termcap$x \
ditto$x \
dots$x \
filter$x \
sources:
+tags:
+ ctags *.[ch]
+
background$x: $(MODEL)/background$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/background$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/background$o $(LDFLAGS_CURSES)
blue$x: $(MODEL)/blue$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/blue$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/blue$o $(LDFLAGS_CURSES)
bs$x: $(MODEL)/bs$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/bs$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/bs$o $(LDFLAGS_CURSES)
cardfile$x: $(MODEL)/cardfile$o $(LOCAL_LIBS)
@ECHO_LINK@ $(LINK) -o $@ $(MODEL)/cardfile$o $(LDFLAGS_DEFAULT)
color_set$x: $(MODEL)/color_set$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/color_set$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/color_set$o $(LDFLAGS_CURSES)
demo_defkey$x: $(MODEL)/demo_defkey$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_defkey$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_defkey$o $(LDFLAGS_CURSES)
demo_forms$x: $(MODEL)/demo_forms$o $(MODEL)/edit_field$o $(LOCAL_LIBS)
@ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_forms$o $(MODEL)/edit_field$o $(LDFLAGS_DEFAULT)
demo_keyok$x: $(MODEL)/demo_keyok$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_keyok$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_keyok$o $(LDFLAGS_CURSES)
demo_menus$x: $(MODEL)/demo_menus$o $(LOCAL_LIBS)
@ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_menus$o $(LDFLAGS_DEFAULT)
demo_panels$x: $(MODEL)/demo_panels$o $(LOCAL_LIBS)
@ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_panels$o $(LDFLAGS_DEFAULT)
+demo_termcap$x: $(MODEL)/demo_termcap$o $(LOCAL_LIBS)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/demo_termcap$o $(LDFLAGS_TINFO)
+
ditto$x: $(MODEL)/ditto$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ditto$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ditto$o $(LDFLAGS_CURSES)
dots$x: $(MODEL)/dots$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/dots$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/dots$o $(LDFLAGS_TINFO)
filter$x: $(MODEL)/filter$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/filter$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/filter$o $(LDFLAGS_CURSES)
firework$x: $(MODEL)/firework$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firework$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firework$o $(LDFLAGS_CURSES)
firstlast$x: $(MODEL)/firstlast$o $(LOCAL_LIBS)
@ECHO_LINK@ $(LINK) -o $@ $(MODEL)/firstlast$o $(LDFLAGS_DEFAULT)
gdc$x: $(MODEL)/gdc$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/gdc$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/gdc$o $(LDFLAGS_CURSES)
hanoi$x: $(MODEL)/hanoi$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hanoi$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hanoi$o $(LDFLAGS_CURSES)
hashtest$x: $(MODEL)/hashtest$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hashtest$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/hashtest$o $(LDFLAGS_CURSES)
inserts$x: $(MODEL)/inserts$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/inserts$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/inserts$o $(LDFLAGS_CURSES)
ins_wide$x: $(MODEL)/ins_wide$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ins_wide$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ins_wide$o $(LDFLAGS_CURSES)
keynames$x: $(MODEL)/keynames$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/keynames$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/keynames$o $(LDFLAGS_CURSES)
knight$x: $(MODEL)/knight$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/knight$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/knight$o $(LDFLAGS_CURSES)
lrtest$x: $(MODEL)/lrtest$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/lrtest$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/lrtest$o $(LDFLAGS_CURSES)
ncurses$x: $(MODEL)/ncurses$o $(LOCAL_LIBS)
@ECHO_LINK@ $(LINK) -o $@ $(MODEL)/ncurses$o $(LDFLAGS_DEFAULT)
newdemo$x: $(MODEL)/newdemo$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/newdemo$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/newdemo$o $(LDFLAGS_CURSES)
rain$x: $(MODEL)/rain$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/rain$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/rain$o $(LDFLAGS_CURSES)
railroad$x: $(MODEL)/railroad$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/railroad$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/railroad$o $(LDFLAGS_TINFO)
tclock$x: $(MODEL)/tclock$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/tclock$o $(LDFLAGS_DEFAULT) $(MATH_LIB)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/tclock$o $(LDFLAGS_CURSES) $(MATH_LIB)
testaddch$x: $(MODEL)/testaddch$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testaddch$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testaddch$o $(LDFLAGS_CURSES)
testcurs$x: $(MODEL)/testcurs$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testcurs$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testcurs$o $(LDFLAGS_CURSES)
testscanw$x: $(MODEL)/testscanw$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testscanw$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/testscanw$o $(LDFLAGS_CURSES)
view$x: $(MODEL)/view$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/view$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/view$o $(LDFLAGS_CURSES)
worm$x: $(MODEL)/worm$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/worm$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/worm$o $(LDFLAGS_CURSES)
xmas$x: $(MODEL)/xmas$o $(LOCAL_LIBS)
- @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/xmas$o $(LDFLAGS_DEFAULT)
+ @ECHO_LINK@ $(LINK) -o $@ $(MODEL)/xmas$o $(LDFLAGS_CURSES)
libs \
install \
--- $Id: README,v 1.15 2003/07/05 19:17:49 tom Exp $
+-- $Id: README,v 1.24 2005/10/01 22:01:07 tom Exp $
-------------------------------------------------------------------------------
The programs in this directory are designed to test your newest toy :-)
TYPE_ALPHA test: demo_forms ncurses
TYPE_ENUM test: demo_forms
TYPE_INTEGER test: demo_forms
-TYPE_IPV4 -
+TYPE_IPV4 test: demo_forms
TYPE_NUMERIC test: demo_forms
TYPE_REGEXP test: demo_forms
current_field test: demo_forms edit_field ncurses
-data_ahead -
-data_behind -
+data_ahead test: demo_forms
+data_behind test: demo_forms
dup_field -
-dynamic_field_info -
+dynamic_field_info test: demo_forms
field_arg -
field_back -
field_buffer test: cardfile demo_forms edit_field ncurses
field_init -
field_just -
field_opts test: demo_forms ncurses
-field_opts_off test: cardfile
-field_opts_on -
+field_opts_off test: cardfile demo_forms
+field_opts_on test: demo_forms
field_pad -
-field_status -
+field_status test: demo_forms
field_term -
field_type test: demo_forms
field_userptr test: ncurses
form_driver test: cardfile demo_forms edit_field ncurses
-form_fields test: cardfile
+form_fields test: cardfile demo_forms
form_init -
form_opts -
form_opts_off -
form_userptr -
form_win test: cardfile demo_forms edit_field ncurses
free_field test: cardfile demo_forms ncurses
-free_fieldtype -
+free_fieldtype test: ncurses
free_form test: cardfile demo_forms ncurses
link_field -
link_fieldtype -
pos_form_cursor -
post_form test: cardfile demo_forms ncurses
scale_form test: demo_forms ncurses
-set_current_field -
+set_current_field test: demo_forms
set_field_back test: cardfile demo_forms edit_field ncurses
set_field_buffer test: cardfile demo_forms edit_field ncurses
-set_field_fore -
+set_field_fore test: demo_forms
set_field_init -
-set_field_just test: cardfile
+set_field_just test: cardfile demo_forms
set_field_opts test: demo_forms ncurses
set_field_pad -
-set_field_status -
+set_field_status test: demo_forms
set_field_term -
set_field_type test: demo_forms ncurses
set_field_userptr test: demo_forms ncurses
set_form_term -
set_form_userptr -
set_form_win test: cardfile demo_forms ncurses
-set_max_field -
+set_max_field test: demo_forms
set_new_page test: demo_forms
unpost_form test: cardfile demo_forms ncurses
libmenu:
-------
-current_item test: ncurses
+current_item test: demo_menus ncurses
free_item test: ncurses
-free_menu test: ncurses
-item_count -
+free_menu test: demo_menus ncurses
+item_count test: demo_menus
item_description -
-item_index test: ncurses
+item_index test: demo_menus ncurses
item_init -
item_name test: ncurses
item_opts -
item_opts_on -
item_term -
item_userptr -
-item_value test: ncurses
+item_value test: demo_menus ncurses
item_visible -
menu_back -
-menu_driver test: ncurses
+menu_driver test: demo_menus ncurses
menu_fore -
menu_format -
menu_grey -
menu_init -
-menu_items test: ncurses
+menu_items test: demo_menus ncurses
menu_mark -
menu_opts -
-menu_opts_off test: ncurses
-menu_opts_on -
+menu_opts_off test: demo_menus ncurses
+menu_opts_on test: demo_menus
menu_pad -
menu_pattern -
menu_request_by_name -
menu_request_name -
-menu_spacing -
+menu_spacing test: demo_menus
menu_sub -
menu_term -
menu_userptr -
-menu_win test: ncurses
-new_item test: ncurses
-new_menu test: ncurses
+menu_win test: demo_menus ncurses
+new_item test: demo_menus ncurses
+new_menu test: demo_menus ncurses
pos_menu_cursor lib: menu
-post_menu test: ncurses
-scale_menu test: ncurses
+post_menu test: demo_menus ncurses
+scale_menu test: demo_menus ncurses
set_current_item -
set_item_init -
set_item_opts -
set_item_term -
set_item_userptr -
-set_item_value test: ncurses
-set_menu_back -
-set_menu_fore -
-set_menu_format test: ncurses
+set_item_value test: demo_menus ncurses
+set_menu_back test: demo_menus
+set_menu_fore test: demo_menus
+set_menu_format test: demo_menus ncurses
set_menu_grey -
set_menu_init -
set_menu_items -
-set_menu_mark -
+set_menu_mark test: demo_menus
set_menu_opts -
set_menu_pad -
set_menu_pattern -
set_menu_spacing -
-set_menu_sub test: ncurses
+set_menu_sub test: demo_menus ncurses
set_menu_term -
set_menu_userptr -
-set_menu_win test: ncurses
+set_menu_win test: demo_menus ncurses
set_top_row -
top_row -
unpost_menu test: ncurses
----------
BC -
COLORS test: ncurses xmas
-COLOR_PAIR test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+COLOR_PAIR test: background blue bs cardfile demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
COLOR_PAIRS test: ncurses newdemo
-COLS test: cardfile demo_defkey demo_forms demo_keyok edit_field firework hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm
+COLS test: cardfile demo_defkey demo_forms demo_keyok demo_menus edit_field firework hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm
ESCDELAY lib: ncurses
-LINES test: cardfile demo_defkey demo_keyok edit_field firework hanoi hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm xmas
-PAIR_NUMBER lib: ncurses
+LINES test: cardfile demo_defkey demo_keyok demo_menus edit_field firework hanoi hashtest ins_wide inserts lrtest ncurses newdemo rain tclock testcurs view worm xmas
+PAIR_NUMBER test: ncurses
PC lib: ncurses
SP lib: ncurses
TABSIZE lib: menu
UP -
acs_map test: gdc ins_wide inserts knight ncurses newdemo testcurs
-add_wch -
+add_wch test: ncurses
add_wchnstr test: ncurses
add_wchstr test: view
addch test: blue bs ditto hashtest ncurses testaddch view worm
addnstr -
addnwstr -
addstr test: blue bs cardfile gdc hanoi lrtest ncurses
-addwstr -
+addwstr test: ncurses
assume_default_colors test: ncurses
-attr_get -
+attr_get test: ncurses
attr_off test: ncurses
attr_on test: ncurses
-attr_set -
+attr_set test: ncurses
attroff test: filter gdc ncurses tclock
attron test: bs filter gdc ncurses
attrset test: bs firework gdc hanoi ncurses rain tclock testaddch testcurs
baudrate lib: ncurses
-beep test: blue bs cardfile demo_forms edit_field hanoi ins_wide inserts knight ncurses tclock testcurs view xmas
-bkgd test: demo_forms ncurses tclock view
-bkgdset test: ncurses testaddch
-bkgrnd -
-bkgrndset -
+beep test: blue bs cardfile demo_forms demo_menus edit_field hanoi ins_wide inserts knight ncurses tclock testcurs view xmas
+bkgd test: background cardfile demo_forms ncurses tclock view
+bkgdset test: background ncurses testaddch
+bkgrnd test: ncurses
+bkgrndset test: ncurses
boolcodes progs: dump_entry
boolfnames progs: dump_entry
boolnames progs: dump_entry infocmp
border -
border_set -
-box test: cardfile demo_forms edit_field ins_wide inserts lrtest ncurses newdemo testcurs
+box test: cardfile demo_forms demo_menus edit_field ins_wide inserts lrtest ncurses newdemo testcurs
box_set test: ncurses
can_change_color test: ncurses
-cbreak test: blue bs cardfile demo_defkey demo_forms demo_keyok ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo tclock testcurs view worm xmas
+cbreak test: background blue bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo tclock testcurs view worm xmas
chgat -
clear test: blue bs gdc ncurses testcurs xmas
clearok test: bs knight
-clrtobot test: ncurses
+clrtobot test: demo_menus ncurses
clrtoeol test: blue bs hanoi hashtest ncurses view
color_content test: ncurses
-color_set -
+color_set test: color_set ncurses
copywin test: testcurs
cur_term test: dots lrtest progs: clear tic tput tset
curs_set test: firework gdc hanoi lrtest newdemo rain tclock testcurs worm xmas
delch -
deleteln -
delscreen -
-delwin test: cardfile demo_forms edit_field ncurses newdemo testcurs
-derwin test: cardfile demo_forms ncurses
+delwin test: cardfile demo_forms demo_menus edit_field ins_wide inserts ncurses newdemo testcurs
+derwin test: cardfile demo_forms demo_menus ins_wide inserts ncurses
doupdate test: cardfile edit_field ins_wide inserts knight ncurses
dupwin test: edit_field
echo test: bs hanoi ncurses testcurs testscanw
echo_wchar test: ncurses
echochar test: ncurses
-endwin test: blue bs cardfile demo_defkey demo_forms demo_keyok ditto filter firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
+endwin test: background blue bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus ditto filter firework firstlast gdc hanoi hashtest ins_wide inserts keynames knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
erase test: cardfile filter firework firstlast hanoi lrtest ncurses tclock testcurs
erasechar lib: ncurses
erasewchar -
get_wch -
get_wstr -
getbkgd test: ncurses
-getbkgrnd -
-getcchar test: view
-getch test: blue bs ditto firework firstlast hanoi hashtest lrtest rain tclock testaddch testcurs view worm xmas
+getbkgrnd test: ncurses
+getcchar test: ncurses view
+getch test: background blue bs color_set ditto firework firstlast hanoi hashtest lrtest rain tclock testaddch testcurs view worm xmas
getmouse test: bs knight ncurses
getn_wstr -
getnstr test: filter ncurses
getstr -
getwin test: ncurses
halfdelay test: view
-has_colors test: bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testcurs view worm xmas
+has_colors test: background bs cardfile color_set demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testcurs view worm xmas
has_ic test: lrtest
has_il lib: ncurses
has_key lib: ncurses
inchnstr -
inchstr -
init_color test: ncurses
-init_pair test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
-initscr test: blue bs cardfile demo_defkey demo_forms demo_keyok firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
+init_pair test: background blue bs cardfile color_set demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+initscr test: background blue bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses newdemo rain tclock testaddch testcurs testscanw view worm xmas
innstr -
innwstr -
-ins_nwstr -
-ins_wch -
-ins_wstr -
-insch -
+ins_nwstr test: ins_wide
+ins_wch test: ins_wide
+ins_wstr test: ins_wide
+insch test: ins_wide inserts
insdelln -
insertln -
-insnstr -
-insstr -
+insnstr test: inserts
+insstr test: inserts
instr -
intrflush test: demo_forms
inwstr -
keybound test: demo_defkey
keyname test: demo_defkey demo_keyok edit_field keynames ncurses testcurs view progs: tic
keyok test: demo_keyok
-keypad test: bs cardfile demo_defkey demo_forms demo_keyok edit_field filter firework hashtest ins_wide inserts knight lrtest ncurses tclock testcurs testscanw view
+keypad test: bs cardfile demo_defkey demo_forms demo_keyok demo_menus edit_field filter firework hashtest ins_wide inserts keynames knight lrtest ncurses tclock testcurs testscanw view
killchar lib: ncurses
killwchar -
leaveok test: hanoi
longname test: testcurs progs: tput
mcprint -
meta test: ncurses
-mouse_trafo -
+mouse_trafo lib: menu
mouseinterval -
-mousemask test: bs knight ncurses
-move test: blue bs cardfile gdc hanoi hashtest knight lrtest ncurses testscanw view worm xmas
+mousemask test: bs demo_menus knight ncurses
+move test: blue bs cardfile demo_menus gdc hanoi hashtest ins_wide inserts knight lrtest ncurses testscanw view worm xmas
mvadd_wch test: ncurses
mvadd_wchnstr -
mvadd_wchstr -
mvinchstr -
mvinnstr -
mvinnwstr -
-mvins_nwstr -
-mvins_wch -
-mvins_wstr -
-mvinsch -
-mvinsnstr -
-mvinsstr -
+mvins_nwstr test: ins_wide
+mvins_wch test: ins_wide
+mvins_wstr test: ins_wide
+mvinsch test: ins_wide inserts
+mvinsnstr test: inserts
+mvinsstr test: inserts
mvinstr -
mvinwstr -
-mvprintw test: bs firework hanoi ncurses tclock view
+mvprintw test: bs demo_menus firework hanoi ncurses tclock view
mvscanw -
mvvline test: ncurses
mvvline_set test: ncurses
mvwadd_wch -
-mvwadd_wchnstr -
+mvwadd_wchnstr lib: form
mvwadd_wchstr -
mvwaddch test: newdemo testcurs xmas
mvwaddchnstr -
mvwhline_set -
mvwin test: cardfile testcurs xmas
mvwin_wch -
-mvwin_wchnstr -
+mvwin_wchnstr lib: form
mvwin_wchstr -
mvwinch test: newdemo testcurs
mvwinchnstr -
mvwinchstr -
mvwinnstr test: testcurs
mvwinnwstr -
-mvwins_nwstr -
+mvwins_nwstr test: ins_wide
mvwins_wch test: ins_wide
mvwins_wstr test: ins_wide
mvwinsch test: ins_wide inserts
-mvwinsnstr -
+mvwinsnstr test: inserts
mvwinsstr test: inserts testcurs
mvwinstr -
mvwinwstr -
mvwscanw test: testcurs
mvwvline test: ins_wide inserts
mvwvline_set -
-napms test: firework gdc hanoi lrtest ncurses newdemo railroad rain tclock testcurs view worm xmas progs: tset
+napms test: dots firework gdc hanoi lrtest ncurses newdemo railroad rain tclock testcurs view worm xmas progs: tset
newpad test: edit_field ncurses testcurs
newscr lib: ncurses
-newterm test: ditto filter gdc
-newwin test: cardfile demo_defkey demo_forms demo_keyok edit_field firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
+newterm test: ditto filter gdc keynames
+newwin test: cardfile demo_defkey demo_forms demo_keyok demo_menus edit_field firstlast ins_wide inserts knight ncurses newdemo testcurs xmas
nl test: demo_forms ncurses rain testcurs
nocbreak test: testcurs
nodelay test: firework gdc lrtest ncurses newdemo rain tclock view xmas
-noecho test: bs cardfile demo_defkey demo_forms demo_keyok ditto firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs view worm xmas
+noecho test: background bs cardfile color_set demo_defkey demo_forms demo_keyok demo_menus ditto firework firstlast gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs view worm xmas
nonl test: bs demo_forms hashtest ncurses view worm xmas
noqiflush -
-noraw test: demo_forms ncurses testcurs
+noraw test: demo_forms demo_menus ncurses testcurs
notimeout -
numcodes progs: dump_entry
numfnames progs: dump_entry
ospeed progs: tset
overlay test: testcurs xmas
overwrite test: ncurses
-pair_content lib: ncurses
+pair_content test: background color_set
+pecho_wchar -
pechochar -
pnoutrefresh test: edit_field ncurses
prefresh test: testcurs
-printw test: blue bs demo_defkey demo_keyok filter ncurses testcurs testscanw view
+printw test: background blue bs color_set demo_defkey demo_keyok filter ncurses testcurs testscanw view
putp progs: tput
putwin test: ncurses
qiflush -
raw test: demo_forms ncurses testcurs
redrawwin -
-refresh test: blue bs demo_defkey demo_forms demo_keyok ditto filter firstlast gdc hanoi hashtest lrtest ncurses tclock testcurs view worm xmas
+refresh test: blue bs demo_defkey demo_forms demo_keyok demo_menus ditto filter firstlast gdc hanoi hashtest lrtest ncurses tclock testcurs view worm xmas
reset_prog_mode test: filter ncurses
reset_shell_mode test: bs filter
resetty -
slk_wset test: ncurses
standend test: blue gdc ncurses worm
standout test: blue ncurses
-start_color test: blue bs demo_forms filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
-stdscr test: bs demo_forms ditto filter firework gdc hanoi hashtest ins_wide inserts knight lrtest ncurses rain tclock testcurs testscanw view xmas
+start_color test: background blue bs cardfile color_set demo_forms demo_menus filter firework gdc hanoi ins_wide inserts knight ncurses newdemo rain tclock testaddch testcurs view worm xmas
+stdscr test: bs demo_forms ditto filter firework gdc hanoi hashtest ins_wide inserts keynames knight lrtest ncurses rain tclock testcurs testscanw view xmas
strcodes progs: dump_entry
strfnames progs: dump_entry
strnames progs: dump_entry infocmp tic
subpad test: testcurs
subwin test: ncurses newdemo testcurs
syncok -
-term_attrs -
+term_attrs test: ncurses
termattrs test: ncurses testcurs
termname test: testcurs
-tgetent test: railroad
-tgetflag -
-tgetnum test: railroad
-tgetstr test: railroad
+tgetent test: demo_termcap railroad
+tgetflag test: demo_termcap
+tgetnum test: demo_termcap railroad
+tgetstr test: demo_termcap railroad
tgoto test: railroad
tigetflag progs: tput
tigetnum test: ncurses progs: tput
tigetstr test: blue demo_defkey testcurs progs: tput
timeout test: rain
touchline lib: ncurses
-touchwin test: edit_field filter firstlast ncurses xmas
+touchwin test: demo_menus edit_field filter firstlast ins_wide inserts ncurses xmas
tparm test: dots progs: tic tput
tputs test: dots railroad progs: clear tset
-trace test: hanoi hashtest lrtest ncurses testcurs view worm
+trace test: demo_menus hanoi hashtest lrtest ncurses testcurs view worm
ttytype lib: ncurses
typeahead test: testcurs
unctrl test: ncurses testcurs
unget_wch -
ungetch test: bs knight
ungetmouse -
-untouchwin -
+untouchwin lib: form
use_default_colors test: filter firework gdc hanoi knight ncurses rain tclock worm xmas
use_env progs: tput
use_extended_names progs: infocmp tic
vwprintw lib: ncurses
vwscanw lib: ncurses
wadd_wch lib: ncurses
-wadd_wchnstr lib: ncurses
+wadd_wchnstr lib: form
wadd_wchstr -
-waddch test: firstlast knight ncurses
+waddch test: demo_forms firstlast knight ncurses
waddchnstr lib: ncurses
waddchstr -
-waddnstr lib: form
+waddnstr lib: menu
waddnwstr test: ncurses
waddstr test: demo_forms edit_field firstlast ins_wide knight ncurses testcurs
waddwstr test: ins_wide
wattr_get -
-wattr_off lib: menu
-wattr_on lib: menu
+wattr_off lib: ncurses
+wattr_on lib: ncurses
wattr_set -
wattroff test: demo_forms ncurses testcurs xmas
wattron test: testcurs xmas
wattrset test: demo_forms ncurses newdemo testcurs xmas
-wbkgd test: demo_forms ncurses newdemo testcurs
+wbkgd test: cardfile demo_forms ncurses newdemo testcurs
wbkgdset test: ins_wide inserts ncurses
wbkgrnd lib: ncurses
wbkgrndset lib: ncurses
werase test: cardfile demo_forms edit_field firstlast knight ncurses newdemo testcurs xmas
wget_wch test: ins_wide ncurses
wget_wstr -
-wgetch test: cardfile demo_defkey demo_keyok edit_field gdc inserts knight ncurses newdemo testcurs
+wgetch test: cardfile demo_defkey demo_keyok demo_menus edit_field gdc inserts knight ncurses newdemo testcurs
wgetn_wstr test: ncurses
wgetnstr test: ncurses
wgetstr -
whline test: testcurs
whline_set lib: ncurses
-win_wch lib: ncurses
-win_wchnstr lib: ncurses
+win_wch lib: form
+win_wchnstr lib: form
win_wchstr -
winch test: knight testcurs
winchnstr lib: ncurses
winchstr -
winnstr test: demo_defkey
winnwstr lib: ncurses
-wins_nwstr lib: ncurses
-wins_wch lib: ncurses
-wins_wstr -
-winsch test: testcurs
-winsdelln lib: form
+wins_nwstr test: ins_wide
+wins_wch test: ins_wide
+wins_wstr test: ins_wide
+winsch test: ins_wide inserts testcurs
+winsdelln lib: ncurses
winsertln test: testcurs
-winsnstr lib: form
-winsstr -
+winsnstr test: inserts
+winsstr test: inserts
winstr -
winwstr lib: ncurses
wmouse_trafo lib: menu
wnoutrefresh test: edit_field ins_wide inserts knight ncurses
wprintw test: demo_defkey demo_forms demo_keyok edit_field ins_wide inserts knight ncurses testcurs
wredrawln lib: ncurses
-wrefresh test: demo_forms demo_keyok edit_field firstlast knight lrtest ncurses newdemo tclock testcurs view xmas
+wrefresh test: demo_forms demo_keyok demo_menus edit_field firstlast knight lrtest ncurses newdemo tclock testcurs view xmas
wresize test: cardfile ncurses
wscanw test: testcurs
wscrl test: ncurses testcurs view
wsyncdown lib: ncurses
wsyncup lib: form
wtimeout test: ncurses
-wtouchln lib: form
+wtouchln lib: ncurses
wunctrl -
wvline test: testcurs
wvline_set lib: ncurses
-dnl $Id: aclocal.m4,v 1.6 2003/10/19 00:09:23 tom Exp $
+dnl $Id: aclocal.m4,v 1.8 2005/02/27 00:02:01 tom Exp $
dnl ---------------------------------------------------------------------------
dnl ---------------------------------------------------------------------------
+dnl CF_ADD_CFLAGS version: 7 updated: 2004/04/25 17:48:30
+dnl -------------
+dnl Copy non-preprocessor flags to $CFLAGS, preprocessor flags to $CPPFLAGS
+dnl The second parameter if given makes this macro verbose.
+dnl
+dnl Put any preprocessor definitions that use quoted strings in $EXTRA_CPPFLAGS,
+dnl to simplify use of $CPPFLAGS in compiler checks, etc., that are easily
+dnl confused by the quotes (which require backslashes to keep them usable).
+AC_DEFUN([CF_ADD_CFLAGS],
+[
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $1
+do
+case $cf_fix_cppflags in
+no)
+ case $cf_add_cflags in #(vi
+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[[^=]]*='\''\"[[^"]]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
+ case "$CPPFLAGS" in
+ *$cf_add_cflags) #(vi
+ ;;
+ *) #(vi
+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+ ;;
+ esac
+ ;;
+ *)
+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+ ;;
+ esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[[^"]]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
+done
+
+if test -n "$cf_new_cflags" ; then
+ ifelse($2,,,[CF_VERBOSE(add to \$CFLAGS $cf_new_cflags)])
+ CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+ ifelse($2,,,[CF_VERBOSE(add to \$CPPFLAGS $cf_new_cppflags)])
+ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+ ifelse($2,,,[CF_VERBOSE(add to \$EXTRA_CPPFLAGS $cf_new_extra_cppflags)])
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+AC_SUBST(EXTRA_CPPFLAGS)
+
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_ADD_INCDIR version: 4 updated: 2002/12/21 14:25:52
dnl -------------
dnl Add an include-directory to $CPPFLAGS. Don't add /usr/include, since it's
done
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CHECK_CACHE version: 7 updated: 2001/12/19 00:50:10
+dnl CF_ANSI_CC_CHECK version: 9 updated: 2001/12/30 17:53:34
+dnl ----------------
+dnl This is adapted from the macros 'fp_PROG_CC_STDC' and 'fp_C_PROTOTYPES'
+dnl in the sharutils 4.2 distribution.
+AC_DEFUN([CF_ANSI_CC_CHECK],
+[
+AC_CACHE_CHECK(for ${CC-cc} option to accept ANSI C, cf_cv_ansi_cc,[
+cf_cv_ansi_cc=no
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX -Aa -D_HPUX_SOURCE
+# SVR4 -Xc
+# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+for cf_arg in "-DCC_HAS_PROTOS" \
+ "" \
+ -qlanglvl=ansi \
+ -std1 \
+ -Ae \
+ "-Aa -D_HPUX_SOURCE" \
+ -Xc
+do
+ CF_ADD_CFLAGS($cf_arg)
+ AC_TRY_COMPILE(
+[
+#ifndef CC_HAS_PROTOS
+#if !defined(__STDC__) || (__STDC__ != 1)
+choke me
+#endif
+#endif
+],[
+ int test (int i, double x);
+ struct s1 {int (*f) (int a);};
+ struct s2 {int (*f) (double a);};],
+ [cf_cv_ansi_cc="$cf_arg"; break])
+done
+CFLAGS="$cf_save_CFLAGS"
+CPPFLAGS="$cf_save_CPPFLAGS"
+])
+
+if test "$cf_cv_ansi_cc" != "no"; then
+if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+ CF_ADD_CFLAGS($cf_cv_ansi_cc)
+else
+ AC_DEFINE(CC_HAS_PROTOS)
+fi
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_ANSI_CC_REQD version: 3 updated: 1997/09/06 13:40:44
+dnl ---------------
+dnl For programs that must use an ANSI compiler, obtain compiler options that
+dnl will make it recognize prototypes. We'll do preprocessor checks in other
+dnl macros, since tools such as unproto can fake prototypes, but only part of
+dnl the preprocessor.
+AC_DEFUN([CF_ANSI_CC_REQD],
+[AC_REQUIRE([CF_ANSI_CC_CHECK])
+if test "$cf_cv_ansi_cc" = "no"; then
+ AC_ERROR(
+[Your compiler does not appear to recognize prototypes.
+You have the following choices:
+ a. adjust your compiler options
+ b. get an up-to-date compiler
+ c. use a wrapper such as unproto])
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_CHECK_CACHE version: 10 updated: 2004/05/23 13:03:31
dnl --------------
dnl Check if we're accidentally using a cache from a different machine.
dnl Derive the system name, as a check for reusing the autoconf cache.
dnl better job than uname). Normally we'll use AC_CANONICAL_HOST, but allow
dnl an extra parameter that we may override, e.g., for AC_CANONICAL_SYSTEM
dnl which is useful in cross-compiles.
+dnl
+dnl Note: we would use $ac_config_sub, but that is one of the places where
+dnl autoconf 2.5x broke compatibility with autoconf 2.13
AC_DEFUN([CF_CHECK_CACHE],
[
-if test -f $srcdir/config.guess ; then
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
ifelse([$1],,[AC_CANONICAL_HOST],[$1])
system_name="$host_os"
else
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_CURSES_LIBS version: 22 updated: 2002/10/27 18:21:42
+dnl CF_CURSES_LIBS version: 23 updated: 2003/11/06 19:59:57
dnl --------------
dnl Look for the curses libraries. Older curses implementations may require
dnl termcap/termlib to be linked as well. Call CF_CURSES_CPPFLAGS first.
AC_DEFUN([CF_CURSES_LIBS],[
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
AC_MSG_CHECKING(if we have identified curses libraries)
AC_TRY_LINK([#include <${cf_cv_ncurses_header-curses.h}>],
[initscr(); tgoto("?", 0,0)],
dnl "dirname" is not portable, so we fake it with a shell script.
AC_DEFUN([CF_DIRNAME],[$1=`echo $2 | sed -e 's%/[[^/]]*$%%'`])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_FIND_LIBRARY version: 7 updated: 2000/04/13 21:38:04
+dnl CF_FIND_LIBRARY version: 8 updated: 2004/11/23 20:14:58
dnl ---------------
dnl Look for a non-standard library, given parameters for AC_TRY_LINK. We
dnl prefer a standard location, and use -L options only if we do not find the
dnl $3 = includes
dnl $4 = code fragment to compile/link
dnl $5 = corresponding function-name
-dnl $6 = flag, nonnull if failure causes an error-exit
+dnl $6 = flag, nonnull if failure should not cause an error-exit
dnl
dnl Sets the variable "$cf_libdir" as a side-effect, so we can see if we had
dnl to use a -L option.
test "$cf_cv_func_curses_version" = yes && AC_DEFINE(HAVE_CURSES_VERSION)
])
dnl ---------------------------------------------------------------------------
-dnl CF_GNU_SOURCE version: 3 updated: 2000/10/29 23:30:53
+dnl CF_GNU_SOURCE version: 4 updated: 2004/12/03 20:43:00
dnl -------------
dnl Check if we must define _GNU_SOURCE to get a reasonable value for
dnl _XOPEN_SOURCE, upon which many POSIX definitions depend. This is a defect
dnl Well, yes we could work around it...
AC_DEFUN([CF_GNU_SOURCE],
[
+AC_REQUIRE([CF_INTEL_COMPILER])
+
+if test "$INTEL_COMPILER" = no ; then
AC_CACHE_CHECK(if we must define _GNU_SOURCE,cf_cv_gnu_source,[
AC_TRY_COMPILE([#include <sys/types.h>],[
#ifndef _XOPEN_SOURCE
])
])
test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+fi
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_HEADER_PATH version: 8 updated: 2002/11/10 14:46:59
test -f $1 || ( test -f ../$1 && cp ../$1 ./ )
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_INTEL_COMPILER version: 1 updated: 2004/12/03 20:27:48
+dnl -----------------
+dnl Check if the given compiler is really the Intel compiler for Linux.
+dnl It tries to imitate gcc, but does not return an error when it finds a
+dnl mismatch between prototypes, e.g., as exercised by CF_MISSING_CHECK.
+dnl
+dnl This macro should be run "soon" after AC_PROG_CC, to ensure that it is
+dnl not mistaken for gcc.
+AC_DEFUN([CF_INTEL_COMPILER],[
+AC_REQUIRE([AC_PROG_CC])
+
+INTEL_COMPILER=no
+
+if test "$GCC" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+ AC_MSG_CHECKING(if this is really Intel compiler)
+ cf_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -no-gcc"
+ AC_TRY_COMPILE([],[
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+],[INTEL_COMPILER=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+],[])
+ CFLAGS="$cf_save_CFLAGS"
+ AC_MSG_RESULT($INTEL_COMPILER)
+ ;;
+ esac
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_LIBRARY_PATH version: 7 updated: 2002/11/10 14:46:59
dnl ---------------
dnl Construct a search-list for a nonstandard library-file
AC_DEFUN([CF_LIBRARY_PATH],
[CF_SUBDIR_PATH($1,$2,lib)])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_MSG_LOG version: 3 updated: 1997/09/07 14:05:52
+dnl ----------
+dnl Write a debug message to config.log, along with the line number in the
+dnl configure script.
+AC_DEFUN([CF_MSG_LOG],[
+echo "(line __oline__) testing $* ..." 1>&AC_FD_CC
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_NCURSES_CC_CHECK version: 3 updated: 2003/01/12 18:59:28
dnl -------------------
dnl Check if we can compile with ncurses' header file
,[$1=no])
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_CPPFLAGS version: 16 updated: 2002/12/29 18:30:46
+dnl CF_NCURSES_CPPFLAGS version: 17 updated: 2003/11/06 19:59:57
dnl -------------------
dnl Look for the SVr4 curses clone 'ncurses' in the standard places, adjusting
dnl the CPPFLAGS variable so we can include its header.
AC_DEFUN([CF_NCURSES_CPPFLAGS],
[AC_REQUIRE([CF_WITH_CURSES_DIR])
+AC_PROVIDE([CF_CURSES_CPPFLAGS])dnl
cf_ncuhdr_root=ifelse($1,,ncurses,$1)
test -n "$cf_cv_curses_dir" && \
CF_NCURSES_VERSION
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_LIBS version: 11 updated: 2002/12/22 14:22:25
+dnl CF_NCURSES_LIBS version: 12 updated: 2004/04/27 16:26:05
dnl ---------------
dnl Look for the ncurses library. This is a little complicated on Linux,
dnl because it may be linked with the gpm (general purpose mouse) library.
freebsd*)
# This is only necessary if you are linking against an obsolete
# version of ncurses (but it should do no harm, since it's static).
- AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
+ if test "$cf_nculib_root" = ncurses ; then
+ AC_CHECK_LIB(mytinfo,tgoto,[cf_ncurses_LIBS="-lmytinfo $cf_ncurses_LIBS"])
+ fi
;;
esac
AC_DEFINE_UNQUOTED($cf_nculib_ROOT)
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_NCURSES_VERSION version: 10 updated: 2002/10/27 18:21:42
+dnl CF_NCURSES_VERSION version: 11 updated: 2003/11/06 19:59:57
dnl ------------------
dnl Check for the version of ncurses, to aid in reporting bugs, etc.
dnl Call CF_CURSES_CPPFLAGS first, or CF_NCURSES_CPPFLAGS. We don't use
dnl AC_REQUIRE since that does not work with the shell's if/then/else/fi.
AC_DEFUN([CF_NCURSES_VERSION],
[
+AC_REQUIRE([CF_CURSES_CPPFLAGS])dnl
AC_CACHE_CHECK(for ncurses version, cf_cv_ncurses_version,[
cf_cv_ncurses_version=no
cf_tempfile=out$$
esac
])dnl
dnl ---------------------------------------------------------------------------
-dnl CF_PREDEFINE version: 1 updated: 2003/07/26 17:53:56
-dnl ------------
-dnl Add definitions to CPPFLAGS to ensure they're predefined for all compiles.
+dnl CF_POSIX_C_SOURCE version: 3 updated: 2005/02/04 06:56:22
+dnl -----------------
+dnl Define _POSIX_C_SOURCE to the given level, and _POSIX_SOURCE if needed.
dnl
-dnl $1 = symbol to test
-dnl $2 = value (if any) to use for a predefinition
-AC_DEFUN([CF_PREDEFINE],
+dnl POSIX.1-1990 _POSIX_SOURCE
+dnl POSIX.1-1990 and _POSIX_SOURCE and
+dnl POSIX.2-1992 C-Language _POSIX_C_SOURCE=2
+dnl Bindings Option
+dnl POSIX.1b-1993 _POSIX_C_SOURCE=199309L
+dnl POSIX.1c-1996 _POSIX_C_SOURCE=199506L
+dnl X/Open 2000 _POSIX_C_SOURCE=200112L
+dnl
+dnl Parameters:
+dnl $1 is the nominal value for _POSIX_C_SOURCE
+AC_DEFUN([CF_POSIX_C_SOURCE],
[
-AC_MSG_CHECKING(if we must define $1)
-AC_TRY_COMPILE([#include <sys/types.h>
-],[
-#ifndef $1
+cf_POSIX_C_SOURCE=ifelse($1,,199506L,$1)
+AC_CACHE_CHECK(if we should define _POSIX_C_SOURCE,cf_cv_posix_c_source,[
+ CF_MSG_LOG(if the symbol is already defined go no further)
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
make an error
-#endif],[cf_result=no],[cf_result=yes])
-AC_MSG_RESULT($cf_result)
-
-if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS ifelse($2,,-D$1,[-D$1=$2])"
-elif test "x$2" != "x" ; then
- AC_MSG_CHECKING(checking for compatible value versus $2)
- AC_TRY_COMPILE([#include <sys/types.h>
-],[
-#if $1-$2 < 0
+#endif],
+ [cf_cv_posix_c_source=no],
+ [cf_want_posix_source=no
+ case .$cf_POSIX_C_SOURCE in
+ .[[12]]??*)
+ cf_cv_posix_c_source="-U_POSIX_C_SOURCE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ ;;
+ .2)
+ cf_cv_posix_c_source="-U_POSIX_C_SOURCE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ cf_want_posix_source=yes
+ ;;
+ .*)
+ cf_want_posix_source=yes
+ ;;
+ esac
+ if test "$cf_want_posix_source" = yes ; then
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifdef _POSIX_SOURCE
make an error
-#endif],[cf_result=yes],[cf_result=no])
- AC_MSG_RESULT($cf_result)
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
- CPPFLAGS="$CPPFLAGS -D$1=$2"
- fi
-fi
+#endif],[],
+ cf_cv_posix_c_source="$cf_cv_posix_c_source -U_POSIX_SOURCE -D_POSIX_SOURCE")
+ fi
+ CF_MSG_LOG(ifdef from value $cf_POSIX_C_SOURCE)
+ cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+ CF_MSG_LOG(if the second compile does not leave our definition intact error)
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif],,
+ [cf_cv_posix_c_source=no])
+ CPPFLAGS="$cf_save"
+ ])
+])
+test "$cf_cv_posix_c_source" != no && CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
])dnl
dnl ---------------------------------------------------------------------------
dnl CF_SUBDIR_PATH version: 3 updated: 2002/12/29 18:30:46
fi
])dnl
dnl ---------------------------------------------------------------------------
+dnl CF_VERBOSE version: 2 updated: 1997/09/05 10:45:14
+dnl ----------
+dnl Use AC_VERBOSE w/o the warnings
+AC_DEFUN([CF_VERBOSE],
+[test -n "$verbose" && echo " $1" 1>&AC_FD_MSG
+])dnl
+dnl ---------------------------------------------------------------------------
dnl CF_WITH_CURSES_DIR version: 2 updated: 2002/11/10 14:46:59
dnl ------------------
dnl Wrapper for AC_ARG_WITH to specify directory under which to look for curses
cf_cv_curses_dir=$withval],
[cf_cv_curses_dir=no])
])dnl
+dnl ---------------------------------------------------------------------------
+dnl CF_XOPEN_SOURCE version: 17 updated: 2005/02/06 12:07:45
+dnl ---------------
+dnl Try to get _XOPEN_SOURCE defined properly that we can use POSIX functions,
+dnl or adapt to the vendor's definitions to get equivalent functionality.
+dnl
+dnl Parameters:
+dnl $1 is the nominal value for _XOPEN_SOURCE
+dnl $2 is the nominal value for _POSIX_C_SOURCE
+AC_DEFUN([CF_XOPEN_SOURCE],[
+
+cf_XOPEN_SOURCE=ifelse($1,,500,$1)
+cf_POSIX_C_SOURCE=ifelse($2,,199506L,$2)
+
+case $host_os in #(vi
+aix[[45]]*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+ ;;
+freebsd*) #(vi
+ # 5.x headers associate
+ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
+ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
+ cf_POSIX_C_SOURCE=200112L
+ cf_XOPEN_SOURCE=600
+ CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ ;;
+hpux*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+ ;;
+irix[[56]].*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+ ;;
+linux*|gnu*) #(vi
+ CF_GNU_SOURCE
+ ;;
+mirbsd*) #(vi
+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+ ;;
+netbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+ ;;
+openbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+ ;;
+osf[[45]]*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+ ;;
+sco*) #(vi
+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+ ;;
+solaris*) #(vi
+ CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+ ;;
+*)
+ AC_CACHE_CHECK(if we should define _XOPEN_SOURCE,cf_cv_xopen_source,[
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifndef _XOPEN_SOURCE
+make an error
+#endif],
+ [cf_cv_xopen_source=no],
+ [cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ AC_TRY_COMPILE([#include <sys/types.h>],[
+#ifdef _XOPEN_SOURCE
+make an error
+#endif],
+ [cf_cv_xopen_source=no],
+ [cf_cv_xopen_source=$cf_XOPEN_SOURCE])
+ CPPFLAGS="$cf_save"
+ ])
+])
+test "$cf_cv_xopen_source" != no && CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+ CF_POSIX_C_SOURCE($cf_POSIX_C_SOURCE)
+ ;;
+esac
+])
* results, use the ncurses(3) library. On non-Intel machines, SVr4 curses is
* just as good.
*
- * $Id: blue.c,v 1.24 2002/06/29 23:32:18 tom Exp $
+ * $Id: blue.c,v 1.25 2005/05/28 21:38:03 tom Exp $
*/
-#include <time.h>
-
#include <test.priv.h>
+#include <time.h>
+
#define NOCARD (-1)
#define ACE 0
* v2.0 featuring strict ANSI/POSIX conformance, November 1993.
* v2.1 with ncurses mouse support, September 1995
*
- * $Id: bs.c,v 1.39 2003/12/06 18:10:13 tom Exp $
+ * $Id: bs.c,v 1.41 2005/05/28 21:38:24 tom Exp $
*/
-#include <time.h>
-
#include <test.priv.h>
+#include <time.h>
+
#ifndef SIGIOT
#define SIGIOT SIGABRT
#endif
/* VARARGS1 */
static void
-prompt(int n, const char *f, const char *s)
+prompt(int n, NCURSES_CONST char *f, const char *s)
/* print a message at the prompt line */
{
(void) move(PROMPTLINE + n, 0);
/****************************************************************************
- * Copyright (c) 1999-2002,2003 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2003,2004 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 *
****************************************************************************/
/*
- * Author: Thomas E. Dickey <dickey@clark.net> 1999
+ * Author: Thomas E. Dickey
*
- * $Id: cardfile.c,v 1.23 2003/04/26 16:43:56 tom Exp $
+ * $Id: cardfile.c,v 1.27 2004/11/06 19:33:39 tom Exp $
*
* File format: text beginning in column 1 is a title; other text is content.
*/
#define VISIBLE_CARDS 10
#define OFFSET_CARD 2
+#define pair_1 1
+#define pair_2 2
+
+#define isVisible(cardp) ((cardp)->panel != 0)
enum {
MY_CTRL_x = MAX_FORM_COMMAND
} CARD;
static CARD *all_cards;
+static bool try_color = FALSE;
static char default_name[] = "cardfile.dat";
#if !HAVE_STRDUP
if (first) {
if (depth && first->link)
order_cards(first->link, depth - 1);
- top_panel(first->panel);
+ if (isVisible(first))
+ top_panel(first->panel);
}
}
static CARD *
next_card(CARD * now)
{
- if (now->link)
- now = now->link;
+ if (now->link != 0) {
+ CARD *tst = now->link;
+ if (isVisible(tst))
+ now = tst;
+ else
+ tst = next_card(tst);
+ }
return now;
}
prev_card(CARD * now)
{
CARD *p;
- for (p = all_cards; p != 0; p = p->link)
- if (p->link == now)
+ for (p = all_cards; p != 0; p = p->link) {
+ if (p->link == now) {
+ if (!isVisible(p))
+ p = prev_card(p);
return p;
+ }
+ }
+ return now;
+}
+
+/*
+ * Returns the first card in the list that we will display.
+ */
+static CARD *
+first_card(CARD * now)
+{
+ if (!isVisible(now))
+ now = next_card(now);
return now;
}
WINDOW *win;
CARD *p;
CARD *top_card;
- int visible_cards = count_cards();
- int panel_wide = COLS - (visible_cards * OFFSET_CARD);
- int panel_high = LINES - (visible_cards * OFFSET_CARD) - 5;
- int form_wide = panel_wide - 2;
- int form_high = panel_high - 2;
- int y = (visible_cards - 1) * OFFSET_CARD;
- int x = 0;
+ int visible_cards;
+ int panel_wide;
+ int panel_high;
+ int form_wide;
+ int form_high;
+ int y;
+ int x;
int ch = ERR;
int last_ch;
int finished = FALSE;
show_legend();
+ /* decide how many cards we can display */
+ visible_cards = count_cards();
+ while (
+ (panel_wide = COLS - (visible_cards * OFFSET_CARD)) < 10 ||
+ (panel_high = LINES - (visible_cards * OFFSET_CARD) - 5) < 5) {
+ --visible_cards;
+ }
+ form_wide = panel_wide - 2;
+ form_high = panel_high - 2;
+ y = (visible_cards - 1) * OFFSET_CARD;
+ x = 0;
+
/* make a panel for each CARD */
for (p = all_cards; p != 0; p = p->link) {
- win = newwin(panel_high, panel_wide, y, x);
+ if ((win = newwin(panel_high, panel_wide, y, x)) == 0)
+ break;
+
+ wbkgd(win, COLOR_PAIR(pair_2));
keypad(win, TRUE);
p->panel = new_panel(win);
box(win, 0, 0);
x += OFFSET_CARD;
}
- order_cards(top_card = all_cards, visible_cards);
+ top_card = first_card(all_cards);
+ order_cards(top_card, visible_cards);
while (!finished) {
update_panels();
FIELD **oldf = form_fields(p->form);
WINDOW *olds = form_sub(p->form);
+ if (!isVisible(p))
+ continue;
win = form_win(p->form);
/* move and resize the card as needed
p = all_cards;
all_cards = all_cards->link;
- f = form_fields(p->form);
- count = field_count(p->form);
+ if (isVisible(p)) {
+ f = form_fields(p->form);
+ count = field_count(p->form);
- unpost_form(p->form); /* ...so we can free it */
- free_form(p->form); /* this also disconnects the fields */
+ unpost_form(p->form); /* ...so we can free it */
+ free_form(p->form); /* this also disconnects the fields */
- free_form_fields(f);
+ free_form_fields(f);
- del_panel(p->panel);
+ del_panel(p->panel);
+ }
free(p->title);
free(p->content);
free(p);
#endif
}
+static void
+usage(void)
+{
+ static const char *msg[] =
+ {
+ "Usage: view [options] file"
+ ,""
+ ,"Options:"
+ ," -c use color if terminal supports it"
+ };
+ size_t n;
+ for (n = 0; n < SIZEOF(msg); n++)
+ fprintf(stderr, "%s\n", msg[n]);
+ ExitProgram(EXIT_FAILURE);
+}
+
/*******************************************************************************/
int
setlocale(LC_ALL, "");
+ while ((n = getopt(argc, argv, "c")) != EOF) {
+ switch (n) {
+ case 'c':
+ try_color = TRUE;
+ break;
+ default:
+ usage();
+ }
+ }
+
initscr();
cbreak();
noecho();
- if (argc > 1) {
+ if (try_color) {
+ if (has_colors()) {
+ start_color();
+ init_pair(pair_1, COLOR_WHITE, COLOR_BLUE);
+ init_pair(pair_2, COLOR_WHITE, COLOR_CYAN);
+ bkgd(COLOR_PAIR(pair_1));
+ } else {
+ try_color = FALSE;
+ }
+ }
+
+ if (optind + 1 == argc) {
for (n = 1; n < argc; n++)
read_data(argv[n]);
if (count_cards() == 0)
/*
- * $Id: color_set.c,v 1.2 2003/12/07 00:08:47 tom Exp $
+ * $Id: color_set.c,v 1.3 2004/04/10 20:10:28 tom Exp $
*/
#include <test.priv.h>
+#ifdef HAVE_COLOR_SET
+
#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
int
ExitProgram(EXIT_SUCCESS);
}
+#else
+int
+main(void)
+{
+ printf("This program requires the curses color_set function\n");
+ ExitProgram(EXIT_FAILURE);
+}
+#endif
ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-if test -f $srcdir/config.guess ; then
+if test -f $srcdir/config.guess || test -f $ac_aux_dir/config.guess ; then
# Make sure we can run config.sub.
if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'`
DFT_UPR_MODEL="NORMAL"
ECHO_LINK='@ echo linking $@ ... ;'
-EXTRA_LIBS=""
LD="ld"
LDFLAGS_SHARED=""
LD_MODEL=""
MATH_LIB="-lm"
TEST_ARGS=""
TEST_DEPS=""
+TINFO_ARGS='$(LIBS_CURSES)'
cf_cv_abi_version=""
cf_cv_rel_version=""
ac_objext=$ac_cv_objext
+
+echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6
+echo "configure:1095: checking for ${CC-cc} option to accept ANSI C" >&5
+if eval "test \"`echo '$''{'cf_cv_ansi_cc'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+cf_cv_ansi_cc=no
+cf_save_CFLAGS="$CFLAGS"
+cf_save_CPPFLAGS="$CPPFLAGS"
+# Don't try gcc -ansi; that turns off useful extensions and
+# breaks some systems' header files.
+# AIX -qlanglvl=ansi
+# Ultrix and OSF/1 -std1
+# HP-UX -Aa -D_HPUX_SOURCE
+# SVR4 -Xc
+# UnixWare 1.2 (cannot use -Xc, since ANSI/POSIX clashes)
+for cf_arg in "-DCC_HAS_PROTOS" \
+ "" \
+ -qlanglvl=ansi \
+ -std1 \
+ -Ae \
+ "-Aa -D_HPUX_SOURCE" \
+ -Xc
+do
+
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_arg
+do
+case $cf_fix_cppflags in
+no)
+ case $cf_add_cflags in #(vi
+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
+ case "$CPPFLAGS" in
+ *$cf_add_cflags) #(vi
+ ;;
+ *) #(vi
+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+ ;;
+ esac
+ ;;
+ *)
+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+ ;;
+ esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
+done
+
+if test -n "$cf_new_cflags" ; then
+
+ CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+
+ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+
+
+
+ cat > conftest.$ac_ext <<EOF
+#line 1191 "configure"
+#include "confdefs.h"
+
+#ifndef CC_HAS_PROTOS
+#if !defined(__STDC__) || (__STDC__ != 1)
+choke me
+#endif
+#endif
+
+int main() {
+
+ int test (int i, double x);
+ struct s1 {int (*f) (int a);};
+ struct s2 {int (*f) (double a);};
+; return 0; }
+EOF
+if { (eval echo configure:1207: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_cv_ansi_cc="$cf_arg"; break
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+CFLAGS="$cf_save_CFLAGS"
+CPPFLAGS="$cf_save_CPPFLAGS"
+
+fi
+
+echo "$ac_t""$cf_cv_ansi_cc" 1>&6
+
+if test "$cf_cv_ansi_cc" != "no"; then
+if test ".$cf_cv_ansi_cc" != ".-DCC_HAS_PROTOS"; then
+
+cf_fix_cppflags=no
+cf_new_cflags=
+cf_new_cppflags=
+cf_new_extra_cppflags=
+
+for cf_add_cflags in $cf_cv_ansi_cc
+do
+case $cf_fix_cppflags in
+no)
+ case $cf_add_cflags in #(vi
+ -undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C) #(vi
+ case $cf_add_cflags in
+ -D*)
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=yes
+
+ if test $cf_fix_cppflags = yes ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ elif test "${cf_tst_cflags}" = "\"'" ; then
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+ continue
+ fi
+ ;;
+ esac
+ case "$CPPFLAGS" in
+ *$cf_add_cflags) #(vi
+ ;;
+ *) #(vi
+ cf_new_cppflags="$cf_new_cppflags $cf_add_cflags"
+ ;;
+ esac
+ ;;
+ *)
+ cf_new_cflags="$cf_new_cflags $cf_add_cflags"
+ ;;
+ esac
+ ;;
+yes)
+ cf_new_extra_cppflags="$cf_new_extra_cppflags $cf_add_cflags"
+
+ cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+
+ test "${cf_add_cflags}" != "${cf_tst_cflags}" \
+ && test -z "${cf_tst_cflags}" \
+ && cf_fix_cppflags=no
+ ;;
+esac
+done
+
+if test -n "$cf_new_cflags" ; then
+
+ CFLAGS="$CFLAGS $cf_new_cflags"
+fi
+
+if test -n "$cf_new_cppflags" ; then
+
+ CPPFLAGS="$cf_new_cppflags $CPPFLAGS"
+fi
+
+if test -n "$cf_new_extra_cppflags" ; then
+
+ EXTRA_CPPFLAGS="$cf_new_extra_cppflags $EXTRA_CPPFLAGS"
+fi
+
+
+
+
+else
+ cat >> confdefs.h <<\EOF
+#define CC_HAS_PROTOS 1
+EOF
+
+fi
+fi
+
+
+if test "$cf_cv_ansi_cc" = "no"; then
+ { echo "configure: error: Your compiler does not appear to recognize prototypes.
+You have the following choices:
+ a. adjust your compiler options
+ b. get an up-to-date compiler
+ c. use a wrapper such as unproto" 1>&2; exit 1; }
+fi
+
+
+
+
+INTEL_COMPILER=no
+
+if test "$GCC" = yes ; then
+ case $host_os in
+ linux*|gnu*)
+ echo $ac_n "checking if this is really Intel compiler""... $ac_c" 1>&6
+echo "configure:1323: checking if this is really Intel compiler" >&5
+ cf_save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS -no-gcc"
+ cat > conftest.$ac_ext <<EOF
+#line 1327 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifdef __INTEL_COMPILER
+#else
+make an error
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:1339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ INTEL_COMPILER=yes
+cf_save_CFLAGS="$cf_save_CFLAGS -we147 -no-gcc"
+
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+ CFLAGS="$cf_save_CFLAGS"
+ echo "$ac_t""$INTEL_COMPILER" 1>&6
+ ;;
+ esac
+fi
+
+
+
+cf_XOPEN_SOURCE=500
+cf_POSIX_C_SOURCE=199506L
+
+case $host_os in #(vi
+aix[45]*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_ALL_SOURCE"
+ ;;
+freebsd*) #(vi
+ # 5.x headers associate
+ # _XOPEN_SOURCE=600 with _POSIX_C_SOURCE=200112L
+ # _XOPEN_SOURCE=500 with _POSIX_C_SOURCE=199506L
+ cf_POSIX_C_SOURCE=200112L
+ cf_XOPEN_SOURCE=600
+ CPPFLAGS="$CPPFLAGS -D_BSD_TYPES -D__BSD_VISIBLE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ ;;
+hpux*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE"
+ ;;
+irix[56].*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_SGI_SOURCE"
+ ;;
+linux*|gnu*) #(vi
+
+
+
+if test "$INTEL_COMPILER" = no ; then
echo $ac_n "checking if we must define _GNU_SOURCE""... $ac_c" 1>&6
-echo "configure:1094: checking if we must define _GNU_SOURCE" >&5
+echo "configure:1384: checking if we must define _GNU_SOURCE" >&5
if eval "test \"`echo '$''{'cf_cv_gnu_source'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1100 "configure"
+#line 1390 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:1110: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1400: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_gnu_source=no
else
cf_save="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
cat > conftest.$ac_ext <<EOF
-#line 1120 "configure"
+#line 1410 "configure"
#include "confdefs.h"
#include <sys/types.h>
int main() {
#endif
; return 0; }
EOF
-if { (eval echo configure:1130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_gnu_source=no
else
echo "$ac_t""$cf_cv_gnu_source" 1>&6
test "$cf_cv_gnu_source" = yes && CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
+fi
+
+ ;;
+mirbsd*) #(vi
+ # setting _XOPEN_SOURCE or _POSIX_SOURCE breaks <arpa/inet.h>
+ ;;
+netbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks IPv6 for lynx on NetBSD 1.6, breaks xterm, is not needed for ncursesw
+ ;;
+openbsd*) #(vi
+ # setting _XOPEN_SOURCE breaks xterm on OpenBSD 2.8, is not needed for ncursesw
+ ;;
+osf[45]*) #(vi
+ CPPFLAGS="$CPPFLAGS -D_OSF_SOURCE"
+ ;;
+sco*) #(vi
+ # setting _XOPEN_SOURCE breaks Lynx on SCO Unix / OpenServer
+ ;;
+solaris*) #(vi
+ CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
+ ;;
+*)
+ echo $ac_n "checking if we should define _XOPEN_SOURCE""... $ac_c" 1>&6
+echo "configure:1462: checking if we should define _XOPEN_SOURCE" >&5
+if eval "test \"`echo '$''{'cf_cv_xopen_source'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ cat > conftest.$ac_ext <<EOF
+#line 1468 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifndef _XOPEN_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1478: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_cv_xopen_source=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=$cf_XOPEN_SOURCE"
+ cat > conftest.$ac_ext <<EOF
+#line 1488 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifdef _XOPEN_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1498: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_cv_xopen_source=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cf_cv_xopen_source=$cf_XOPEN_SOURCE
+fi
+rm -f conftest*
+ CPPFLAGS="$cf_save"
+
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$cf_cv_xopen_source" 1>&6
+test "$cf_cv_xopen_source" != no && CPPFLAGS="$CPPFLAGS -U_XOPEN_SOURCE -D_XOPEN_SOURCE=$cf_cv_xopen_source"
+
+cf_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE
+echo $ac_n "checking if we should define _POSIX_C_SOURCE""... $ac_c" 1>&6
+echo "configure:1520: checking if we should define _POSIX_C_SOURCE" >&5
+if eval "test \"`echo '$''{'cf_cv_posix_c_source'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+
+echo "(line 1526) testing if the symbol is already defined go no further ..." 1>&5
+
+ cat > conftest.$ac_ext <<EOF
+#line 1529 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ rm -rf conftest*
+ cf_cv_posix_c_source=no
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cf_want_posix_source=no
+ case .$cf_POSIX_C_SOURCE in
+ .[12]??*)
+ cf_cv_posix_c_source="-U_POSIX_C_SOURCE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ ;;
+ .2)
+ cf_cv_posix_c_source="-U_POSIX_C_SOURCE -D_POSIX_C_SOURCE=$cf_POSIX_C_SOURCE"
+ cf_want_posix_source=yes
+ ;;
+ .*)
+ cf_want_posix_source=yes
+ ;;
+ esac
+ if test "$cf_want_posix_source" = yes ; then
+ cat > conftest.$ac_ext <<EOF
+#line 1561 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifdef _POSIX_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1571: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cf_cv_posix_c_source="$cf_cv_posix_c_source -U_POSIX_SOURCE -D_POSIX_SOURCE"
+fi
+rm -f conftest*
+ fi
+
+echo "(line 1582) testing ifdef from value $cf_POSIX_C_SOURCE ..." 1>&5
+
+ cf_save="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+
+echo "(line 1587) testing if the second compile does not leave our definition intact error ..." 1>&5
+
+ cat > conftest.$ac_ext <<EOF
+#line 1590 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+int main() {
+
+#ifndef _POSIX_C_SOURCE
+make an error
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:1600: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ :
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ cf_cv_posix_c_source=no
+fi
+rm -f conftest*
+ CPPFLAGS="$cf_save"
+
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$cf_cv_posix_c_source" 1>&6
+test "$cf_cv_posix_c_source" != no && CPPFLAGS="$CPPFLAGS $cf_cv_posix_c_source"
+
+ ;;
+esac
+
echo $ac_n "checking for extra include directories""... $ac_c" 1>&6
-echo "configure:1216: checking for extra include directories" >&5
+echo "configure:1689: checking for extra include directories" >&5
if eval "test \"`echo '$''{'cf_cv_curses_incdir'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
test "$cf_cv_curses_incdir" != no && CPPFLAGS="$cf_cv_curses_incdir $CPPFLAGS"
echo $ac_n "checking if we have identified curses headers""... $ac_c" 1>&6
-echo "configure:1240: checking if we have identified curses headers" >&5
+echo "configure:1713: checking if we have identified curses headers" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_header'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ncurses/ncurses.h
do
cat > conftest.$ac_ext <<EOF
-#line 1253 "configure"
+#line 1726 "configure"
#include "confdefs.h"
#include <${cf_header}>
int main() {
initscr(); tgoto("?", 0,0)
; return 0; }
EOF
-if { (eval echo configure:1260: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:1733: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_ncurses_header=$cf_header; break
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1283: checking for $ac_hdr" >&5
+echo "configure:1756: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1288 "configure"
+#line 1761 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1293: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1766: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:1323: checking for ncurses version" >&5
+echo "configure:1796: checking for ncurses version" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo configure:1349: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+ { (eval echo configure:1822: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
if test -f conftest.out ; then
cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
else
cat > conftest.$ac_ext <<EOF
-#line 1358 "configure"
+#line 1831 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
exit(0);
}
EOF
-if { (eval echo configure:1382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:1855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
cf_cv_ncurses_version=`cat $cf_tempfile`
echo $ac_n "checking if we have identified curses libraries""... $ac_c" 1>&6
-echo "configure:1406: checking if we have identified curses libraries" >&5
+echo "configure:1879: checking if we have identified curses libraries" >&5
cat > conftest.$ac_ext <<EOF
-#line 1408 "configure"
+#line 1881 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr(); tgoto("?", 0,0)
; return 0; }
EOF
-if { (eval echo configure:1415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_result=yes
else
case $host_os in #(vi
freebsd*) #(vi
echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:1431: checking for tgoto in -lmytinfo" >&5
+echo "configure:1904: checking for tgoto in -lmytinfo" >&5
ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lmytinfo $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1439 "configure"
+#line 1912 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgoto()
; return 0; }
EOF
-if { (eval echo configure:1450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
;;
hpux10.*|hpux11.*) #(vi
echo $ac_n "checking for initscr in -lcur_colr""... $ac_c" 1>&6
-echo "configure:1473: checking for initscr in -lcur_colr" >&5
+echo "configure:1946: checking for initscr in -lcur_colr" >&5
ac_lib_var=`echo cur_colr'_'initscr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lcur_colr $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1481 "configure"
+#line 1954 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
initscr()
; return 0; }
EOF
-if { (eval echo configure:1492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for initscr in -lHcurses""... $ac_c" 1>&6
-echo "configure:1515: checking for initscr in -lHcurses" >&5
+echo "configure:1988: checking for initscr in -lHcurses" >&5
ac_lib_var=`echo Hcurses'_'initscr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lHcurses $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1523 "configure"
+#line 1996 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
initscr()
; return 0; }
EOF
-if { (eval echo configure:1534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
# Check for library containing tgoto. Do this before curses library
# because it may be needed to link the test-case for initscr.
echo $ac_n "checking for tgoto""... $ac_c" 1>&6
-echo "configure:1587: checking for tgoto" >&5
+echo "configure:2060: checking for tgoto" >&5
if eval "test \"`echo '$''{'ac_cv_func_tgoto'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 1592 "configure"
+#line 2065 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char tgoto(); below. */
; return 0; }
EOF
-if { (eval echo configure:1615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_tgoto=yes"
else
for cf_term_lib in $cf_check_list termcap termlib unknown
do
echo $ac_n "checking for tgoto in -l$cf_term_lib""... $ac_c" 1>&6
-echo "configure:1636: checking for tgoto in -l$cf_term_lib" >&5
+echo "configure:2109: checking for tgoto in -l$cf_term_lib" >&5
ac_lib_var=`echo $cf_term_lib'_'tgoto | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-l$cf_term_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1644 "configure"
+#line 2117 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgoto()
; return 0; }
EOF
-if { (eval echo configure:1655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
for cf_curs_lib in $cf_check_list xcurses jcurses unknown
do
echo $ac_n "checking for initscr in -l$cf_curs_lib""... $ac_c" 1>&6
-echo "configure:1685: checking for initscr in -l$cf_curs_lib" >&5
+echo "configure:2158: checking for initscr in -l$cf_curs_lib" >&5
ac_lib_var=`echo $cf_curs_lib'_'initscr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-l$cf_curs_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1693 "configure"
+#line 2166 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
initscr()
; return 0; }
EOF
-if { (eval echo configure:1704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2177: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
LIBS="-l$cf_curs_lib $cf_save_LIBS"
if test "$cf_term_lib" = unknown ; then
echo $ac_n "checking if we can link with $cf_curs_lib library""... $ac_c" 1>&6
-echo "configure:1730: checking if we can link with $cf_curs_lib library" >&5
+echo "configure:2203: checking if we can link with $cf_curs_lib library" >&5
cat > conftest.$ac_ext <<EOF
-#line 1732 "configure"
+#line 2205 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr()
; return 0; }
EOF
-if { (eval echo configure:1739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_result=yes
else
:
elif test "$cf_term_lib" != predefined ; then
echo $ac_n "checking if we need both $cf_curs_lib and $cf_term_lib libraries""... $ac_c" 1>&6
-echo "configure:1755: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
+echo "configure:2228: checking if we need both $cf_curs_lib and $cf_term_lib libraries" >&5
cat > conftest.$ac_ext <<EOF
-#line 1757 "configure"
+#line 2230 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr(); tgoto((char *)0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:1764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_result=no
else
LIBS="-l$cf_curs_lib -l$cf_term_lib $cf_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 1774 "configure"
+#line 2247 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr()
; return 0; }
EOF
-if { (eval echo configure:1781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_result=yes
else
CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:1811: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:2284: checking for $cf_ncuhdr_root header in include-path" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
do
cat > conftest.$ac_ext <<EOF
-#line 1822 "configure"
+#line 2295 "configure"
#include "confdefs.h"
; return 0; }
EOF
-if { (eval echo configure:1843: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2316: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_ncurses_h=$cf_header
cf_cv_ncurses_header=$cf_cv_ncurses_h
else
echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:1866: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:2339: checking for $cf_ncuhdr_root include-path" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cf_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
cat > conftest.$ac_ext <<EOF
-#line 1961 "configure"
+#line 2434 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
printf("Hello")
; return 0; }
EOF
-if { (eval echo configure:1968: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2441: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
do
cat > conftest.$ac_ext <<EOF
-#line 1995 "configure"
+#line 2468 "configure"
#include "confdefs.h"
; return 0; }
EOF
-if { (eval echo configure:2016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2489: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_ncurses_h2=$cf_header
cf_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
cat > conftest.$ac_ext <<EOF
-#line 2063 "configure"
+#line 2536 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
printf("Hello")
; return 0; }
EOF
-if { (eval echo configure:2070: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2543: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:2125: checking for ncurses version" >&5
+echo "configure:2598: checking for ncurses version" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo configure:2151: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+ { (eval echo configure:2624: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
if test -f conftest.out ; then
cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
else
cat > conftest.$ac_ext <<EOF
-#line 2160 "configure"
+#line 2633 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
exit(0);
}
EOF
-if { (eval echo configure:2184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
cf_cv_ncurses_version=`cat $cf_tempfile`
cf_ncurses_LIBS=""
cf_ncurses_SAVE="$LIBS"
echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:2215: checking for Gpm_Open in -lgpm" >&5
+echo "configure:2688: checking for Gpm_Open in -lgpm" >&5
ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lgpm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2223 "configure"
+#line 2696 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
Gpm_Open()
; return 0; }
EOF
-if { (eval echo configure:2234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2707: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:2250: checking for initscr in -lgpm" >&5
+echo "configure:2723: checking for initscr in -lgpm" >&5
ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lgpm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2258 "configure"
+#line 2731 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
initscr()
; return 0; }
EOF
-if { (eval echo configure:2269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
freebsd*)
# This is only necessary if you are linking against an obsolete
# version of ncurses (but it should do no harm, since it's static).
- echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:2300: checking for tgoto in -lmytinfo" >&5
+ if test "$cf_nculib_root" = ncurses ; then
+ echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+echo "configure:2774: checking for tgoto in -lmytinfo" >&5
ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lmytinfo $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2308 "configure"
+#line 2782 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgoto()
; return 0; }
EOF
-if { (eval echo configure:2319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
fi
+ fi
;;
esac
eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
cf_libdir=""
echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:2352: checking for initscr" >&5
+echo "configure:2827: checking for initscr" >&5
if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 2357 "configure"
+#line 2832 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char initscr(); below. */
; return 0; }
EOF
-if { (eval echo configure:2380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_initscr=yes"
else
cf_save_LIBS="$LIBS"
echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:2400: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:2875: checking for initscr in -l$cf_nculib_root" >&5
LIBS="-l$cf_nculib_root $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2403 "configure"
+#line 2878 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr()
; return 0; }
EOF
-if { (eval echo configure:2410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
for cf_libdir in $cf_search
do
echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:2479: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:2954: checking for -l$cf_nculib_root in $cf_libdir" >&5
LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2482 "configure"
+#line 2957 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr()
; return 0; }
EOF
-if { (eval echo configure:2489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
if test -n "$cf_ncurses_LIBS" ; then
echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:2520: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:2995: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
cf_ncurses_SAVE="$LIBS"
for p in $cf_ncurses_LIBS ; do
q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
fi
done
cat > conftest.$ac_ext <<EOF
-#line 2529 "configure"
+#line 3004 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:2536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
cf_cv_libtype=w
echo $ac_n "checking for multibyte character support""... $ac_c" 1>&6
-echo "configure:2563: checking for multibyte character support" >&5
+echo "configure:3038: checking for multibyte character support" >&5
if eval "test \"`echo '$''{'cf_cv_utf8_lib'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cf_save_LIBS="$LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2570 "configure"
+#line 3045 "configure"
#include "confdefs.h"
#include <stdlib.h>
putwc(0,0);
; return 0; }
EOF
-if { (eval echo configure:2578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_cv_utf8_lib=yes
else
rm -rf conftest*
LIBS="-lutf8 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 2587 "configure"
+#line 3062 "configure"
#include "confdefs.h"
#include <libutf8.h>
putwc(0,0);
; return 0; }
EOF
-if { (eval echo configure:2595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_cv_utf8_lib=add-on
else
fi
-echo $ac_n "checking if we must define _XOPEN_SOURCE""... $ac_c" 1>&6
-echo "configure:2625: checking if we must define _XOPEN_SOURCE" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2627 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#ifndef _XOPEN_SOURCE
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2638: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_result=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=yes
-fi
-rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
-
-if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
-elif test "x500" != "x" ; then
- echo $ac_n "checking checking for compatible value versus 500""... $ac_c" 1>&6
-echo "configure:2654: checking checking for compatible value versus 500" >&5
- cat > conftest.$ac_ext <<EOF
-#line 2656 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#if _XOPEN_SOURCE-500 < 0
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
- echo "$ac_t""$cf_result" 1>&6
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
- fi
-fi
-
-
-echo $ac_n "checking if we must define _XOPEN_SOURCE_EXTENDED""... $ac_c" 1>&6
-echo "configure:2686: checking if we must define _XOPEN_SOURCE_EXTENDED" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2688 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#ifndef _XOPEN_SOURCE_EXTENDED
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2699: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_result=no
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=yes
-fi
-rm -f conftest*
-echo "$ac_t""$cf_result" 1>&6
-
-if test "$cf_result" = yes ; then
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED"
-elif test "x" != "x" ; then
- echo $ac_n "checking checking for compatible value versus ""... $ac_c" 1>&6
-echo "configure:2715: checking checking for compatible value versus " >&5
- cat > conftest.$ac_ext <<EOF
-#line 2717 "configure"
-#include "confdefs.h"
-#include <sys/types.h>
-
-int main() {
-
-#if _XOPEN_SOURCE_EXTENDED- < 0
-make an error
-#endif
-; return 0; }
-EOF
-if { (eval echo configure:2728: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- cf_result=yes
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- cf_result=no
-fi
-rm -f conftest*
- echo "$ac_t""$cf_result" 1>&6
- if test "$cf_result" = no ; then
- # perhaps we can override it - try...
- CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED="
- fi
-fi
-
-
cf_ncuhdr_root=ncursesw
CPPFLAGS="-I$cf_cv_curses_dir/include -I$cf_cv_curses_dir/include/$cf_ncuhdr_root $CPPFLAGS"
echo $ac_n "checking for $cf_ncuhdr_root header in include-path""... $ac_c" 1>&6
-echo "configure:2754: checking for $cf_ncuhdr_root header in include-path" >&5
+echo "configure:3107: checking for $cf_ncuhdr_root header in include-path" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
do
cat > conftest.$ac_ext <<EOF
-#line 2765 "configure"
+#line 3118 "configure"
#include "confdefs.h"
; return 0; }
EOF
-if { (eval echo configure:2794: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_ncurses_h=$cf_header
cf_cv_ncurses_header=$cf_cv_ncurses_h
else
echo $ac_n "checking for $cf_ncuhdr_root include-path""... $ac_c" 1>&6
-echo "configure:2817: checking for $cf_ncuhdr_root include-path" >&5
+echo "configure:3170: checking for $cf_ncuhdr_root include-path" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_h2'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cf_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
cat > conftest.$ac_ext <<EOF
-#line 2912 "configure"
+#line 3265 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
printf("Hello")
; return 0; }
EOF
-if { (eval echo configure:2919: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3272: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
do
cat > conftest.$ac_ext <<EOF
-#line 2946 "configure"
+#line 3299 "configure"
#include "confdefs.h"
; return 0; }
EOF
-if { (eval echo configure:2975: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3328: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_ncurses_h2=$cf_header
cf_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS -I$cf_add_incdir"
cat > conftest.$ac_ext <<EOF
-#line 3022 "configure"
+#line 3375 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
printf("Hello")
; return 0; }
EOF
-if { (eval echo configure:3029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3382: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
echo $ac_n "checking for ncurses version""... $ac_c" 1>&6
-echo "configure:3084: checking for ncurses version" >&5
+echo "configure:3437: checking for ncurses version" >&5
if eval "test \"`echo '$''{'cf_cv_ncurses_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
#endif
EOF
cf_try="$ac_cpp conftest.$ac_ext 2>&5 | grep '^Autoconf ' >conftest.out"
- { (eval echo configure:3110: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
+ { (eval echo configure:3463: \"$cf_try\") 1>&5; (eval $cf_try) 2>&5; }
if test -f conftest.out ; then
cf_out=`cat conftest.out | sed -e 's%^Autoconf %%' -e 's%^[^"]*"%%' -e 's%".*%%'`
test -n "$cf_out" && cf_cv_ncurses_version="$cf_out"
else
cat > conftest.$ac_ext <<EOF
-#line 3119 "configure"
+#line 3472 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
exit(0);
}
EOF
-if { (eval echo configure:3143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3496: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
cf_cv_ncurses_version=`cat $cf_tempfile`
cf_ncurses_LIBS=""
cf_ncurses_SAVE="$LIBS"
echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:3174: checking for Gpm_Open in -lgpm" >&5
+echo "configure:3527: checking for Gpm_Open in -lgpm" >&5
ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lgpm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3182 "configure"
+#line 3535 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
Gpm_Open()
; return 0; }
EOF
-if { (eval echo configure:3193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
echo $ac_n "checking for initscr in -lgpm""... $ac_c" 1>&6
-echo "configure:3209: checking for initscr in -lgpm" >&5
+echo "configure:3562: checking for initscr in -lgpm" >&5
ac_lib_var=`echo gpm'_'initscr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lgpm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3217 "configure"
+#line 3570 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
initscr()
; return 0; }
EOF
-if { (eval echo configure:3228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
freebsd*)
# This is only necessary if you are linking against an obsolete
# version of ncurses (but it should do no harm, since it's static).
- echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
-echo "configure:3259: checking for tgoto in -lmytinfo" >&5
+ if test "$cf_nculib_root" = ncurses ; then
+ echo $ac_n "checking for tgoto in -lmytinfo""... $ac_c" 1>&6
+echo "configure:3613: checking for tgoto in -lmytinfo" >&5
ac_lib_var=`echo mytinfo'_'tgoto | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lmytinfo $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3267 "configure"
+#line 3621 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
tgoto()
; return 0; }
EOF
-if { (eval echo configure:3278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
fi
+ fi
;;
esac
eval 'cf_cv_have_lib_'$cf_nculib_root'=no'
cf_libdir=""
echo $ac_n "checking for initscr""... $ac_c" 1>&6
-echo "configure:3311: checking for initscr" >&5
+echo "configure:3666: checking for initscr" >&5
if eval "test \"`echo '$''{'ac_cv_func_initscr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3316 "configure"
+#line 3671 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char initscr(); below. */
; return 0; }
EOF
-if { (eval echo configure:3339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_initscr=yes"
else
cf_save_LIBS="$LIBS"
echo $ac_n "checking for initscr in -l$cf_nculib_root""... $ac_c" 1>&6
-echo "configure:3359: checking for initscr in -l$cf_nculib_root" >&5
+echo "configure:3714: checking for initscr in -l$cf_nculib_root" >&5
LIBS="-l$cf_nculib_root $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3362 "configure"
+#line 3717 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr()
; return 0; }
EOF
-if { (eval echo configure:3369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
for cf_libdir in $cf_search
do
echo $ac_n "checking for -l$cf_nculib_root in $cf_libdir""... $ac_c" 1>&6
-echo "configure:3438: checking for -l$cf_nculib_root in $cf_libdir" >&5
+echo "configure:3793: checking for -l$cf_nculib_root in $cf_libdir" >&5
LIBS="-L$cf_libdir -l$cf_nculib_root $cf_save_LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3441 "configure"
+#line 3796 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr()
; return 0; }
EOF
-if { (eval echo configure:3448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
eval 'cf_cv_have_lib_'$cf_nculib_root'=yes'
if test -n "$cf_ncurses_LIBS" ; then
echo $ac_n "checking if we can link $cf_nculib_root without $cf_ncurses_LIBS""... $ac_c" 1>&6
-echo "configure:3479: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
+echo "configure:3834: checking if we can link $cf_nculib_root without $cf_ncurses_LIBS" >&5
cf_ncurses_SAVE="$LIBS"
for p in $cf_ncurses_LIBS ; do
q=`echo $LIBS | sed -e "s%$p %%" -e "s%$p$%%"`
fi
done
cat > conftest.$ac_ext <<EOF
-#line 3488 "configure"
+#line 3843 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
int main() {
initscr(); mousemask(0,0); tgoto((char *)0, 0, 0);
; return 0; }
EOF
-if { (eval echo configure:3495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
else
-echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:3523: checking for form_driver in -lform$cf_cv_libtype" >&5
-ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
+echo "configure:3878: checking for new_panel in -lpanel$cf_cv_libtype" >&5
+ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
-LIBS="-lform$cf_cv_libtype $LIBS"
+LIBS="-lpanel$cf_cv_libtype $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3531 "configure"
+#line 3886 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char form_driver();
+char new_panel();
int main() {
-form_driver()
+new_panel()
; return 0; }
EOF
-if { (eval echo configure:3542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF
- LIBS="-lform$cf_cv_libtype $LIBS"
+ LIBS="-lpanel$cf_cv_libtype $LIBS"
else
echo "$ac_t""no" 1>&6
fi
echo $ac_n "checking for menu_driver in -lmenu$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:3570: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
+echo "configure:3925: checking for menu_driver in -lmenu$cf_cv_libtype" >&5
ac_lib_var=`echo menu$cf_cv_libtype'_'menu_driver | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
ac_save_LIBS="$LIBS"
LIBS="-lmenu$cf_cv_libtype $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3578 "configure"
+#line 3933 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
menu_driver()
; return 0; }
EOF
-if { (eval echo configure:3589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
echo "$ac_t""no" 1>&6
fi
-echo $ac_n "checking for new_panel in -lpanel$cf_cv_libtype""... $ac_c" 1>&6
-echo "configure:3617: checking for new_panel in -lpanel$cf_cv_libtype" >&5
-ac_lib_var=`echo panel$cf_cv_libtype'_'new_panel | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for form_driver in -lform$cf_cv_libtype""... $ac_c" 1>&6
+echo "configure:3972: checking for form_driver in -lform$cf_cv_libtype" >&5
+ac_lib_var=`echo form$cf_cv_libtype'_'form_driver | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_save_LIBS="$LIBS"
-LIBS="-lpanel$cf_cv_libtype $LIBS"
+LIBS="-lform$cf_cv_libtype $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 3625 "configure"
+#line 3980 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
-char new_panel();
+char form_driver();
int main() {
-new_panel()
+form_driver()
; return 0; }
EOF
-if { (eval echo configure:3636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
fi
if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
echo "$ac_t""yes" 1>&6
- ac_tr_lib=HAVE_LIB`echo panel$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+ ac_tr_lib=HAVE_LIB`echo form$cf_cv_libtype | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
cat >> confdefs.h <<EOF
#define $ac_tr_lib 1
EOF
- LIBS="-lpanel$cf_cv_libtype $LIBS"
+ LIBS="-lform$cf_cv_libtype $LIBS"
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3665: checking return type of signal handlers" >&5
+echo "configure:4020: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3670 "configure"
+#line 4025 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
int i;
; return 0; }
EOF
-if { (eval echo configure:3687: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4042: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3707: checking for ANSI C header files" >&5
+echo "configure:4062: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3712 "configure"
+#line 4067 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3720: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4075: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3737 "configure"
+#line 4092 "configure"
#include "confdefs.h"
#include <string.h>
EOF
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 3755 "configure"
+#line 4110 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
:
else
cat > conftest.$ac_ext <<EOF
-#line 3776 "configure"
+#line 4131 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
exit (0); }
EOF
-if { (eval echo configure:3787: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3811: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:4166: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3816 "configure"
+#line 4171 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:3825: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3862: checking for $ac_hdr" >&5
+echo "configure:4217: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3867 "configure"
+#line 4222 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3872: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3915: checking for $ac_func" >&5
+echo "configure:4270: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 3920 "configure"
+#line 4275 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
; return 0; }
EOF
-if { (eval echo configure:3943: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
cat > conftest.$ac_ext <<EOF
-#line 3969 "configure"
+#line 4324 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
; return 0; }
EOF
-if { (eval echo configure:3990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
#define NCURSES_EXT_FUNCS 1
echo $ac_n "checking if sys/time.h works with sys/select.h""... $ac_c" 1>&6
-echo "configure:4004: checking if sys/time.h works with sys/select.h" >&5
+echo "configure:4359: checking if sys/time.h works with sys/select.h" >&5
if eval "test \"`echo '$''{'cf_cv_sys_time_select'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 4010 "configure"
+#line 4365 "configure"
#include "confdefs.h"
#include <sys/types.h>
; return 0; }
EOF
-if { (eval echo configure:4025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4380: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_cv_sys_time_select=yes
else
echo $ac_n "checking for function curses_version""... $ac_c" 1>&6
-echo "configure:4046: checking for function curses_version" >&5
+echo "configure:4401: checking for function curses_version" >&5
if eval "test \"`echo '$''{'cf_cv_func_curses_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cf_cv_func_curses_version=unknown
else
cat > conftest.$ac_ext <<EOF
-#line 4055 "configure"
+#line 4410 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
}
EOF
-if { (eval echo configure:4067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4422: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
cf_cv_func_curses_version=yes
echo $ac_n "checking for alternate character set array""... $ac_c" 1>&6
-echo "configure:4092: checking for alternate character set array" >&5
+echo "configure:4447: checking for alternate character set array" >&5
if eval "test \"`echo '$''{'cf_cv_curses_acs_map'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for name in acs_map _acs_map __acs_map _nc_acs_map
do
cat > conftest.$ac_ext <<EOF
-#line 4101 "configure"
+#line 4456 "configure"
#include "confdefs.h"
#include <${cf_cv_ncurses_header-curses.h}>
; return 0; }
EOF
-if { (eval echo configure:4112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_cv_curses_acs_map=$name; break
else
echo $ac_n "checking for wide alternate character set array""... $ac_c" 1>&6
-echo "configure:4133: checking for wide alternate character set array" >&5
+echo "configure:4488: checking for wide alternate character set array" >&5
if eval "test \"`echo '$''{'cf_cv_curses_wacs_map'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
for name in wacs_map _wacs_map __wacs_map _nc_wacs
do
cat > conftest.$ac_ext <<EOF
-#line 4142 "configure"
+#line 4497 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
$name['k'] = *WACS_PLUS
; return 0; }
EOF
-if { (eval echo configure:4153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cf_cv_curses_wacs_map=$name
break
echo $ac_n "checking for type attr_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:4169: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:4524: checking for type attr_t in ${cf_cv_ncurses_header-curses.h}" >&5
cat > conftest.$ac_ext <<EOF
-#line 4171 "configure"
+#line 4526 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
; return 0; }
EOF
-if { (eval echo configure:4184: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4539: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_result=yes
else
echo $ac_n "checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}""... $ac_c" 1>&6
-echo "configure:4212: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
+echo "configure:4567: checking for type mbstate_t in ${cf_cv_ncurses_header-curses.h}" >&5
cat > conftest.$ac_ext <<EOF
-#line 4214 "configure"
+#line 4569 "configure"
#include "confdefs.h"
#ifndef _XOPEN_SOURCE_EXTENDED
; return 0; }
EOF
-if { (eval echo configure:4227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4582: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cf_result=yes
else
fi
+TEST_ARGS="$LIBS"
+LIBS=
+
trap '' 1 2 15
cat > confcache <<\EOF
s%@DFT_OBJ_SUBDIR@%$DFT_OBJ_SUBDIR%g
s%@DFT_UPR_MODEL@%$DFT_UPR_MODEL%g
s%@ECHO_LINK@%$ECHO_LINK%g
-s%@EXTRA_LIBS@%$EXTRA_LIBS%g
s%@LD@%$LD%g
s%@LDFLAGS_SHARED@%$LDFLAGS_SHARED%g
s%@LD_MODEL@%$LD_MODEL%g
s%@MATH_LIB@%$MATH_LIB%g
s%@TEST_ARGS@%$TEST_ARGS%g
s%@TEST_DEPS@%$TEST_DEPS%g
+s%@TINFO_ARGS@%$TINFO_ARGS%g
s%@cf_cv_abi_version@%$cf_cv_abi_version%g
s%@cf_cv_rel_version@%$cf_cv_rel_version%g
s%@EXEEXT@%$EXEEXT%g
s%@OBJEXT@%$OBJEXT%g
+s%@EXTRA_CPPFLAGS@%$EXTRA_CPPFLAGS%g
CEOF
EOF
dnl***************************************************************************
-dnl Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+dnl Copyright (c) 1998-2004,2005 Free Software Foundation, Inc. *
dnl *
dnl Permission is hereby granted, free of charge, to any person obtaining a *
dnl copy of this software and associated documentation files (the *
dnl
dnl Author: Thomas E. Dickey 1996, etc.
dnl
-dnl $Id: configure.in,v 1.47 2004/01/31 00:07:01 tom Exp $
+dnl $Id: configure.in,v 1.51 2005/02/26 23:58:27 tom Exp $
dnl This is a simple configuration-script for the ncurses test programs that
dnl allows the test-directory to be separately configured against a reference
dnl system (i.e., sysvr4 curses)
DFT_OBJ_SUBDIR=`pwd|sed -e's:.*/::'` AC_SUBST(DFT_OBJ_SUBDIR)
DFT_UPR_MODEL="NORMAL" AC_SUBST(DFT_UPR_MODEL)
ECHO_LINK='@ echo linking $@ ... ;' AC_SUBST(ECHO_LINK)
-EXTRA_LIBS="" AC_SUBST(EXTRA_LIBS)
LD="ld" AC_SUBST(LD)
LDFLAGS_SHARED="" AC_SUBST(LDFLAGS_SHARED)
LD_MODEL="" AC_SUBST(LD_MODEL)
MATH_LIB="-lm" AC_SUBST(MATH_LIB)
TEST_ARGS="" AC_SUBST(TEST_ARGS)
TEST_DEPS="" AC_SUBST(TEST_DEPS)
+TINFO_ARGS='$(LIBS_CURSES)' AC_SUBST(TINFO_ARGS)
cf_cv_abi_version="" AC_SUBST(cf_cv_abi_version)
cf_cv_rel_version="" AC_SUBST(cf_cv_rel_version)
AC_EXEEXT
AC_OBJEXT
-CF_GNU_SOURCE
+
+CF_ANSI_CC_REQD
+CF_XOPEN_SOURCE
+
CF_WITH_CURSES_DIR
dnl SunOS 4.x
ncursesw)
cf_cv_libtype=w
CF_UTF8_LIB
- CF_PREDEFINE(_XOPEN_SOURCE,500)
- CF_PREDEFINE(_XOPEN_SOURCE_EXTENDED)
CF_NCURSES_CPPFLAGS(ncursesw)
CF_NCURSES_LIBS(ncursesw)
LIB_NAME=ncursesw
dnl Autoconf builds up the $LIBS in reverse order
-AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
-AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
AC_CHECK_LIB(panel$cf_cv_libtype,new_panel)
+AC_CHECK_LIB(menu$cf_cv_libtype,menu_driver)
+AC_CHECK_LIB(form$cf_cv_libtype,form_driver)
AC_TYPE_SIGNAL
CF_CURSES_CHECK_TYPE(attr_t,long)
CF_CURSES_CHECK_TYPE(mbstate_t,long)
+TEST_ARGS="$LIBS"
+LIBS=
+
dnl ---------------------------------------------------------------------------
AC_OUTPUT(Makefile,[
/*
- * $Id: demo_forms.c,v 1.3 2003/05/03 22:08:20 tom Exp $
+ * $Id: demo_forms.c,v 1.18 2005/10/08 21:54:20 tom Exp $
*
* Demonstrate a variety of functions from the form library.
* Thomas Dickey - 2003/4/26
/*
TYPE_ALNUM -
TYPE_ENUM -
-TYPE_INTEGER -
-TYPE_IPV4 -
-TYPE_NUMERIC -
TYPE_REGEXP -
-data_ahead -
-data_behind -
dup_field -
-dynamic_field_info -
field_arg -
field_back -
field_count -
field_fore -
field_init -
field_just -
-field_opts_on -
field_pad -
-field_status -
field_term -
field_type -
form_init -
move_field -
new_page -
pos_form_cursor -
-set_current_field -
-set_field_fore -
set_field_init -
set_field_pad -
-set_field_status -
set_field_term -
set_fieldtype_arg -
set_fieldtype_choice -
#include <edit_field.h>
+static int d_option = 0;
+static int j_value = 0;
+static int m_value = 0;
+static int o_value = 0;
+static char *t_value = 0;
+
static FIELD *
make_label(int frow, int fcol, NCURSES_CONST char *label)
{
- FIELD *f = new_field(1, strlen(label), frow, fcol, 0, 0);
+ FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0);
if (f) {
set_field_buffer(f, 0, label);
- set_field_opts(f, field_opts(f) & ~O_ACTIVE);
+ set_field_opts(f, (int) (field_opts(f) & ~O_ACTIVE));
}
return (f);
}
static FIELD *
make_field(int frow, int fcol, int rows, int cols)
{
- FIELD *f = new_field(rows, cols, frow, fcol, 0, 1);
+ FIELD *f = new_field(rows, cols, frow, fcol, o_value, 1);
if (f) {
set_field_back(f, A_UNDERLINE);
+ /*
+ * If -j and -d options are combined, -j loses. It is documented in
+ * "Character User Interface Programming", page 12-15 that setting
+ * O_STATIC off makes the form library ignore justification.
+ */
+ set_field_just(f, j_value);
set_field_userptr(f, (void *) 0);
+ if (d_option) {
+ if (has_colors()) {
+ set_field_fore(f, COLOR_PAIR(2));
+ } else {
+ set_field_fore(f, A_BOLD);
+ }
+ /*
+ * The field_opts_off() call dumps core with Solaris curses,
+ * but that is a known bug in Solaris' form library -TD
+ */
+ field_opts_off(f, O_STATIC);
+ set_max_field(f, m_value);
+ }
+ if (t_value)
+ set_field_buffer(f, 0, t_value);
}
return (f);
}
delwin(w);
}
+static void
+show_insert_mode(bool insert_mode)
+{
+ mvaddstr(5, 57, (insert_mode
+ ? "form_status: insert "
+ : "form_status: overlay"));
+}
+
+#define O_SELECTABLE (O_ACTIVE | O_VISIBLE)
+
+static FIELD *
+another_field(FORM * form, FIELD * field)
+{
+ FIELD **f = form_fields(form);
+ FIELD *result = 0;
+ int n;
+
+ for (n = 0; f[n] != 0; ++n) {
+ if (f[n] != field) {
+ result = f[n];
+ field_opts_on(result, O_SELECTABLE);
+ break;
+ }
+ }
+ return result;
+}
+
static int
my_form_driver(FORM * form, int c)
{
+ static bool insert_mode = TRUE;
+ FIELD *field;
+
switch (c) {
- case EDIT_FIELD('q'):
+ case MY_QUIT:
if (form_driver(form, REQ_VALIDATION) == E_OK)
return (TRUE);
break;
- case EDIT_FIELD('h'):
+ case MY_HELP:
help_edit_field();
break;
+ case MY_EDT_MODE:
+ if ((field = current_field(form)) != 0) {
+ set_current_field(form, another_field(form, field));
+ if (field_opts(field) & O_EDIT) {
+ field_opts_off(field, O_EDIT);
+ set_field_status(field, 0);
+ } else {
+ field_opts_on(field, O_EDIT);
+ }
+ set_current_field(form, field);
+ }
+ break;
+ case MY_INS_MODE:
+ /* there should be a form_status() function, but there is none */
+ if (!insert_mode) {
+ if (form_driver(form, REQ_INS_MODE) == E_OK) {
+ insert_mode = TRUE;
+ }
+ } else {
+ if (form_driver(form, REQ_OVL_MODE) == E_OK) {
+ insert_mode = FALSE;
+ }
+ }
+ show_insert_mode(insert_mode);
+ refresh();
+ break;
default:
beep();
break;
FIELDTYPE *type;
char *buffer;
int nbuf;
+ int field_rows, field_cols, field_max;
if (has_colors()) {
wbkgd(win, COLOR_PAIR(1));
}
werase(win);
- wprintw(win, "Cursor: %d,%d\n", form->currow, form->curcol);
+ wprintw(win, "Cursor: %d,%d", form->currow, form->curcol);
+ if (data_ahead(form))
+ waddstr(win, " ahead");
+ if (data_behind(form))
+ waddstr(win, " behind");
+ waddch(win, '\n');
if ((field = current_field(form)) != 0) {
wprintw(win, "Field %d:", field_index(field));
if ((type = field_type(field)) != 0) {
waddstr(win, "ENUM");
else if (type == TYPE_INTEGER)
waddstr(win, "INTEGER");
+#ifdef NCURSES_VERSION
+ else if (type == TYPE_IPV4)
+ waddstr(win, "IPV4");
+#endif
else if (type == TYPE_NUMERIC)
waddstr(win, "NUMERIC");
else if (type == TYPE_REGEXP)
else
waddstr(win, "other");
}
+
+ if (field_opts(field) & O_EDIT)
+ waddstr(win, " editable");
+ else
+ waddstr(win, " readonly");
+
+ if (field_status(field))
+ waddstr(win, " modified");
+
+ if (dynamic_field_info(field, &field_rows, &field_cols, &field_max)
+ != ERR) {
+ wprintw(win, " size %dx%d (max %d)",
+ field_rows, field_cols, field_max);
+ }
waddstr(win, "\n");
for (nbuf = 0; nbuf <= 2; ++nbuf) {
if ((buffer = field_buffer(field, nbuf)) != 0) {
help_edit_field();
mvaddstr(4, 57, "Forms Entry Test");
+ show_insert_mode(TRUE);
refresh();
/* describe the form */
- for (pg = 0; pg < 3; ++pg) {
+ for (pg = 0; pg < 4; ++pg) {
char label[80];
sprintf(label, "Sample Form Page %d", pg + 1);
f[n++] = make_label(0, 15, label);
set_new_page(f[n - 1], TRUE);
- f[n++] = make_label(2, 0, "Last Name");
- f[n++] = make_field(3, 0, 1, 18);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ switch (pg) {
+ default:
+ f[n++] = make_label(2, 0, "Last Name");
+ f[n++] = make_field(3, 0, 1, 18);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+ f[n++] = make_label(2, 20, "First Name");
+ f[n++] = make_field(3, 20, 1, 12);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+ f[n++] = make_label(2, 34, "Middle Name");
+ f[n++] = make_field(3, 34, 1, 12);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ break;
+ case 2:
+ f[n++] = make_label(2, 0, "Host Name");
+ f[n++] = make_field(3, 0, 1, 18);
+ set_field_type(f[n - 1], TYPE_ALPHA, 1);
+
+#ifdef NCURSES_VERSION
+ f[n++] = make_label(2, 20, "IP Address");
+ f[n++] = make_field(3, 20, 1, 12);
+ set_field_type(f[n - 1], TYPE_IPV4, 1);
+#endif
+
+ break;
- f[n++] = make_label(2, 20, "First Name");
- f[n++] = make_field(3, 20, 1, 12);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ case 3:
+ f[n++] = make_label(2, 0, "Four digits");
+ f[n++] = make_field(3, 0, 1, 18);
+ set_field_type(f[n - 1], TYPE_INTEGER, 4, 0, 0);
- f[n++] = make_label(2, 34, "Middle Name");
- f[n++] = make_field(3, 34, 1, 12);
- set_field_type(f[n - 1], TYPE_ALPHA, 1);
+ f[n++] = make_label(2, 20, "Numeric");
+ f[n++] = make_field(3, 20, 1, 12);
+ set_field_type(f[n - 1], TYPE_NUMERIC, 3, -10000.0, 100000000.0);
+
+ break;
+ }
f[n++] = make_label(5, 0, "Comments");
f[n++] = make_field(6, 0, 4, 46);
nl();
}
+static void
+usage(void)
+{
+ static const char *tbl[] =
+ {
+ "Usage: demo_forms [options]"
+ ,""
+ ," -d make fields dynamic"
+ ," -j value justify (1=left, 2=center, 3=right)"
+ ," -m value set maximum size of dynamic fields"
+ ," -o value specify number of offscreen rows in new_field()"
+ ," -t value specify text to fill fields initially"
+ };
+ unsigned int j;
+ for (j = 0; j < SIZEOF(tbl); ++j)
+ fprintf(stderr, "%s\n", tbl[j]);
+ exit(EXIT_FAILURE);
+}
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
+ int ch;
+
+ setlocale(LC_ALL, "");
+
+ while ((ch = getopt(argc, argv, "dj:m:o:t:")) != EOF) {
+ switch (ch) {
+ case 'd':
+ d_option = TRUE;
+ break;
+ case 'j':
+ j_value = atoi(optarg);
+ if (j_value < NO_JUSTIFICATION
+ || j_value > JUSTIFY_RIGHT)
+ usage();
+ break;
+ case 'm':
+ m_value = atoi(optarg);
+ break;
+ case 'o':
+ o_value = atoi(optarg);
+ break;
+ case 't':
+ t_value = optarg;
+ break;
+ default:
+ usage();
+
+ }
+ }
+
initscr();
cbreak();
noecho();
if (has_colors()) {
start_color();
init_pair(1, COLOR_WHITE, COLOR_BLUE);
+ init_pair(2, COLOR_GREEN, COLOR_BLACK);
bkgd(COLOR_PAIR(1));
refresh();
}
demo_forms();
endwin();
- return EXIT_SUCCESS;
+ ExitProgram(EXIT_SUCCESS);
}
#else
int
/*
- * $Id: demo_menus.c,v 1.1 2003/04/26 22:10:43 tom Exp $
+ * $Id: demo_menus.c,v 1.13 2005/10/01 15:54:31 tom Exp $
*
* Demonstrate a variety of functions from the menu library.
- * Thomas Dickey - 2003/4/26
+ * Thomas Dickey - 2005/4/9
*/
/*
-item_count -
item_description -
item_init -
item_opts -
menu_init -
menu_mark -
menu_opts -
-menu_opts_on -
menu_pad -
menu_pattern -
menu_request_by_name -
menu_request_name -
-menu_spacing -
menu_sub -
menu_term -
menu_userptr -
set_item_opts -
set_item_term -
set_item_userptr -
-set_menu_back -
-set_menu_fore -
set_menu_grey -
set_menu_init -
set_menu_items -
-set_menu_mark -
set_menu_opts -
set_menu_pad -
set_menu_pattern -
#include <menu.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+
+#ifdef NCURSES_VERSION
+#ifdef TRACE
+static unsigned save_trace = TRACE_ORDINARY | TRACE_CALLS;
+extern unsigned _nc_tracing;
+static MENU *mpTrace;
+#endif
+#else
+#undef TRACE
+#endif
+
+typedef enum {
+ eUnknown = -1
+ ,eFile = 0
+ ,eSelect
+#ifdef TRACE
+ ,eTrace
+#endif
+} MenuNo;
+
+#define MENU_Y 1
+
+static MENU *mpBanner;
+static MENU *mpFile;
+static MENU *mpSelect;
+
+#if !HAVE_STRDUP
+#define strdup my_strdup
+static char *
+strdup(char *s)
+{
+ char *p = (char *) malloc(strlen(s) + 1);
+ if (p)
+ strcpy(p, s);
+ return (p);
+}
+#endif /* not HAVE_STRDUP */
+
+/* Common function to allow ^T to toggle trace-mode in the middle of a test
+ * so that trace-files can be made smaller.
+ */
+static int
+wGetchar(WINDOW *win)
+{
+ int c;
+#ifdef TRACE
+ while ((c = wgetch(win)) == CTRL('T')) {
+ if (_nc_tracing) {
+ save_trace = _nc_tracing;
+ _tracef("TOGGLE-TRACING OFF");
+ _nc_tracing = 0;
+ } else {
+ _nc_tracing = save_trace;
+ }
+ trace(_nc_tracing);
+ if (_nc_tracing)
+ _tracef("TOGGLE-TRACING ON");
+ }
+#else
+ c = wgetch(win);
+#endif
+ return c;
+}
+#define Getchar() wGetchar(stdscr)
+
+static int
+menu_virtualize(int c)
+{
+ int result;
+
+ if (c == '\n' || c == KEY_EXIT)
+ result = (MAX_COMMAND + 1);
+ else if (c == 'u')
+ result = (REQ_SCR_ULINE);
+ else if (c == 'd')
+ result = (REQ_SCR_DLINE);
+ else if (c == 'b' || c == KEY_NPAGE)
+ result = (REQ_SCR_UPAGE);
+ else if (c == 'f' || c == KEY_PPAGE)
+ result = (REQ_SCR_DPAGE);
+ else if (c == 'l' || c == KEY_LEFT || c == KEY_BTAB)
+ result = (REQ_LEFT_ITEM);
+ else if (c == 'n' || c == KEY_DOWN)
+ result = (REQ_NEXT_ITEM);
+ else if (c == 'p' || c == KEY_UP)
+ result = (REQ_PREV_ITEM);
+ else if (c == 'r' || c == KEY_RIGHT || c == '\t')
+ result = (REQ_RIGHT_ITEM);
+ else if (c == ' ')
+ result = (REQ_TOGGLE_ITEM);
+ else {
+ if (c != KEY_MOUSE)
+ beep();
+ result = (c);
+ }
+ return result;
+}
+
+static int
+menu_getc(MENU * m)
+{
+ return wGetchar(menu_win(m));
+}
+
+static int
+menu_offset(MenuNo number)
+{
+ int result = 0;
+
+ if ((int) number >= 0) {
+ int spc_desc, spc_rows, spc_cols;
+
+#ifdef NCURSES_VERSION
+ menu_spacing(mpBanner, &spc_desc, &spc_rows, &spc_cols);
+#else
+ spc_rows = 0;
+#endif
+
+ /* FIXME: MENU.itemlen seems the only way to get actual width of items */
+ result = number * (mpBanner->itemlen + spc_rows);
+ }
+ return result;
+}
+
+static MENU *
+menu_create(ITEM ** items, int count, int ncols, MenuNo number)
+{
+ MENU *result;
+ WINDOW *menuwin;
+ int mrows, mcols;
+ int y = ((int) number >= 0) ? MENU_Y : 0;
+ int x = menu_offset(number);
+ int margin = (y == MENU_Y) ? 1 : 0;
+ int maxcol = (ncols + x) < COLS ? ncols : (COLS - x - 1);
+ int maxrow = (count + 1) / ncols;
+
+ if ((maxrow + y) >= (LINES - 4))
+ maxrow = LINES - 4 - y;
+
+ result = new_menu(items);
+
+ if (has_colors()) {
+ set_menu_fore(result, COLOR_PAIR(1));
+ set_menu_back(result, COLOR_PAIR(2));
+ }
+
+ set_menu_format(result, maxrow, maxcol);
+ scale_menu(result, &mrows, &mcols);
+
+ if (mcols + (2 * margin + x) >= COLS)
+ mcols = COLS - (2 * margin + x);
+
+#ifdef TRACE
+ if (number == eTrace)
+ menu_opts_off(result, O_ONEVALUE);
+ else
+ menu_opts_on(result, O_ONEVALUE);
+#endif
+
+ menuwin = newwin(mrows + (2 * margin), mcols + (2 * margin), y, x);
+ set_menu_win(result, menuwin);
+ keypad(menuwin, TRUE);
+ if (margin)
+ box(menuwin, 0, 0);
+
+ set_menu_sub(result, derwin(menuwin, mrows, mcols, margin, margin));
+
+ post_menu(result);
+
+ return result;
+}
+
+static void
+menu_destroy(MENU * m)
+{
+ ITEM **ip;
+ int count;
+
+ if (m != 0) {
+ delwin(menu_win(m));
+
+ ip = menu_items(m);
+ count = item_count(m);
+
+ free_menu(m);
+#if 0
+ if (count > 0) {
+ while (*ip) {
+ _tracef("freeing item %d:%d", ip - menu_items(m), count);
+ free_item(*ip++);
+ }
+ }
+#endif
+ }
+}
+
+/* force the given menu to appear */
+static void
+menu_display(MENU * m)
+{
+ touchwin(menu_win(m));
+ wrefresh(menu_win(m));
+}
+
+/*****************************************************************************/
+
+static void
+build_file_menu(MenuNo number)
+{
+ static const char *labels[] =
+ {
+ "Exit",
+ (char *) 0
+ };
+ static ITEM *items[SIZEOF(labels)];
+
+ ITEM **ip = items;
+ const char **ap;
+
+ for (ap = labels; *ap; ap++)
+ *ip++ = new_item(*ap, "");
+ *ip = (ITEM *) 0;
+
+ mpFile = menu_create(items, SIZEOF(labels) - 1, 1, number);
+}
+
+static int
+perform_file_menu(int cmd)
+{
+ return menu_driver(mpFile, cmd);
+}
+
+/*****************************************************************************/
+
+static void
+build_select_menu(MenuNo number, char *filename)
+{
+ static const char *labels[] =
+ {
+ "Lions",
+ "Tigers",
+ "Bears",
+ "(Oh my!)",
+ "Newts",
+ "Platypi",
+ "Lemurs",
+ "(Oh really?!)",
+ "Leopards",
+ "Panthers",
+ "Pumas",
+ "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
+ "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
+ (char *) 0
+ };
+ static ITEM **items;
+
+ ITEM **ip;
+ const char **ap = 0;
+ unsigned count = 0;
+
+ if (filename != 0) {
+ struct stat sb;
+ if (stat(filename, &sb) == 0
+ && (sb.st_mode & S_IFMT) == S_IFREG
+ && sb.st_size != 0) {
+ unsigned size = sb.st_size;
+ unsigned j, k;
+ char *blob = malloc(size + 1);
+ const char **list = (const char **) calloc(sizeof(*list), size + 1);
+
+ items = (ITEM **) calloc(sizeof(ITEM *), size + 1);
+ if (blob != 0 && list != 0) {
+ FILE *fp = fopen(filename, "r");
+ if (fp != 0) {
+ if (fread(blob, sizeof(char), size, fp) == size) {
+ bool mark = TRUE;
+ for (j = k = 0; j < size; ++j) {
+ if (mark) {
+ list[k++] = blob + j;
+ mark = FALSE;
+ }
+ if (blob[j] == '\n') {
+ blob[j] = '\0';
+ if (k > 0 && *list[k - 1] == '\0')
+ --k;
+ mark = TRUE;
+ } else if (blob[j] == '\t') {
+ blob[j] = ' '; /* menu items are printable */
+ }
+ }
+ list[k] = 0;
+ count = k;
+ ap = list;
+ }
+ fclose(fp);
+ }
+ }
+ }
+ }
+ if (ap == 0) {
+ count = SIZEOF(labels) - 1;
+ items = (ITEM **) calloc(count + 1, sizeof(*items));
+ ap = labels;
+ }
+
+ ip = items;
+ while (*ap != 0)
+ *ip++ = new_item(*ap++, "");
+ *ip = 0;
+
+ mpSelect = menu_create(items, (int) count, 1, number);
+}
+
+static int
+perform_select_menu(int cmd)
+{
+ return menu_driver(mpSelect, cmd);
+}
+
+/*****************************************************************************/
+
+#ifdef TRACE
+#define T_TBL(name) { #name, name }
+static struct {
+ const char *name;
+ unsigned mask;
+} t_tbl[] = {
+
+ T_TBL(TRACE_DISABLE),
+ T_TBL(TRACE_TIMES),
+ T_TBL(TRACE_TPUTS),
+ T_TBL(TRACE_UPDATE),
+ T_TBL(TRACE_MOVE),
+ T_TBL(TRACE_CHARPUT),
+ T_TBL(TRACE_ORDINARY),
+ T_TBL(TRACE_CALLS),
+ T_TBL(TRACE_VIRTPUT),
+ T_TBL(TRACE_IEVENT),
+ T_TBL(TRACE_BITS),
+ T_TBL(TRACE_ICALLS),
+ T_TBL(TRACE_CCALLS),
+ T_TBL(TRACE_DATABASE),
+ T_TBL(TRACE_ATTRS),
+ T_TBL(TRACE_MAXIMUM),
+ {
+ (char *) 0, 0
+ }
+};
+
+static void
+build_trace_menu(MenuNo number)
+{
+ static ITEM *items[SIZEOF(t_tbl)];
+
+ ITEM **ip = items;
+ int n;
+
+ for (n = 0; t_tbl[n].name != 0; n++)
+ *ip++ = new_item(t_tbl[n].name, "");
+ *ip = (ITEM *) 0;
+
+ mpTrace = menu_create(items, SIZEOF(t_tbl) - 1, 2, number);
+}
+
+static char *
+tracetrace(unsigned tlevel)
+{
+ static char *buf;
+ int n;
+
+ if (buf == 0) {
+ size_t need = 12;
+ for (n = 0; t_tbl[n].name != 0; n++)
+ need += strlen(t_tbl[n].name) + 2;
+ buf = (char *) malloc(need);
+ }
+ sprintf(buf, "0x%02x = {", tlevel);
+ if (tlevel == 0) {
+ sprintf(buf + strlen(buf), "%s, ", t_tbl[0].name);
+ } else {
+ for (n = 1; t_tbl[n].name != 0; n++)
+ if ((tlevel & t_tbl[n].mask) == t_tbl[n].mask) {
+ strcat(buf, t_tbl[n].name);
+ strcat(buf, ", ");
+ }
+ }
+ if (buf[strlen(buf) - 2] == ',')
+ buf[strlen(buf) - 2] = '\0';
+ return (strcat(buf, "}"));
+}
+
+/* fake a dynamically reconfigurable menu using the 0th entry to deselect
+ * the others
+ */
+static bool
+update_trace_menu(MENU * m)
+{
+ ITEM **items;
+ ITEM *i, **p;
+ bool changed = FALSE;
+
+ items = menu_items(m);
+ i = current_item(m);
+ if (i == items[0]) {
+ if (item_value(i)) {
+ for (p = items + 1; *p != 0; p++)
+ if (item_value(*p)) {
+ set_item_value(*p, FALSE);
+ changed = TRUE;
+ }
+ }
+ }
+ return changed;
+}
+
+static int
+perform_trace_menu(int cmd)
+/* interactively set the trace level */
+{
+ ITEM **ip;
+ unsigned newtrace;
+ int result;
+
+ for (ip = menu_items(mpTrace); *ip; ip++) {
+ unsigned mask = t_tbl[item_index(*ip)].mask;
+ if (mask == 0)
+ set_item_value(*ip, _nc_tracing == 0);
+ else if ((mask & _nc_tracing) == mask)
+ set_item_value(*ip, TRUE);
+ }
+
+ result = menu_driver(mpTrace, cmd);
+
+ if (result == E_OK) {
+ if (update_trace_menu(mpTrace) || cmd == REQ_TOGGLE_ITEM) {
+ newtrace = 0;
+ for (ip = menu_items(mpTrace); *ip; ip++) {
+ if (item_value(*ip))
+ newtrace |= t_tbl[item_index(*ip)].mask;
+ }
+ trace(newtrace);
+ _tracef("trace level interactively set to %s", tracetrace(_nc_tracing));
+
+ (void) mvprintw(LINES - 2, 0,
+ "Trace level is %s\n", tracetrace(_nc_tracing));
+ refresh();
+ }
+ }
+ return result;
+}
+#endif /* TRACE */
+
+/*****************************************************************************/
+
+static int
+menu_number(void)
+{
+ return item_index(current_item(mpBanner));
+}
+
+static MENU *
+current_menu(void)
+{
+ MENU *result;
+
+ switch (menu_number()) {
+ case eFile:
+ result = mpFile;
+ break;
+ case eSelect:
+ result = mpSelect;
+ break;
+#ifdef TRACE
+ case eTrace:
+ result = mpTrace;
+ break;
+#endif
+ default:
+ result = 0;
+ break;
+ }
+ return result;
+}
+
+static void
+build_menus(char *filename)
+{
+ static const char *labels[] =
+ {
+ "File",
+ "Select",
+#ifdef TRACE
+ "Trace",
+#endif
+ (char *) 0
+ };
+ static ITEM *items[SIZEOF(labels)];
+
+ ITEM **ip = items;
+ const char **ap;
+
+ for (ap = labels; *ap; ap++)
+ *ip++ = new_item(*ap, "");
+ *ip = (ITEM *) 0;
+
+ mpBanner = menu_create(items, SIZEOF(labels) - 1, SIZEOF(labels) - 1, eUnknown);
+ set_menu_mark(mpBanner, ">");
+
+ build_file_menu(eFile);
+ build_select_menu(eSelect, filename);
+#ifdef TRACE
+ build_trace_menu(eTrace);
+#endif
+}
+
+static void
+perform_menus(void)
+{
+ MENU *this_menu;
+ MENU *last_menu = mpFile;
+ int code = E_UNKNOWN_COMMAND, cmd, ch;
+
+#ifdef NCURSES_MOUSE_VERSION
+ mousemask(ALL_MOUSE_EVENTS, (mmask_t *) 0);
+#endif
+
+ menu_display(last_menu);
+
+ for (;;) {
+ ch = menu_getc(mpBanner);
+ cmd = menu_virtualize(ch);
+
+ switch (cmd) {
+ /*
+ * The banner menu acts solely to select one of the other menus.
+ * Move between its items, wrapping at the left/right limits.
+ */
+ case REQ_LEFT_ITEM:
+ case REQ_RIGHT_ITEM:
+ code = menu_driver(mpBanner, cmd);
+ if (code == E_REQUEST_DENIED) {
+ if (menu_number() > 0)
+ code = menu_driver(mpBanner, REQ_FIRST_ITEM);
+ else
+ code = menu_driver(mpBanner, REQ_LAST_ITEM);
+ }
+ break;
+ default:
+ switch (menu_number()) {
+ case eFile:
+ code = perform_file_menu(cmd);
+ break;
+ case eSelect:
+ code = perform_select_menu(cmd);
+ break;
+#ifdef TRACE
+ case eTrace:
+ code = perform_trace_menu(cmd);
+ break;
+#endif
+ }
+
+ if ((code == E_REQUEST_DENIED) && (cmd == KEY_MOUSE)) {
+ code = menu_driver(mpBanner, cmd);
+ }
+
+ break;
+ }
+
+ if (code == E_OK) {
+ this_menu = current_menu();
+ if (this_menu != last_menu) {
+ move(1, 0);
+ clrtobot();
+ box(menu_win(this_menu), 0, 0);
+ refresh();
+
+ /* force the current menu to appear */
+ menu_display(this_menu);
+
+ last_menu = this_menu;
+ }
+ }
+ wrefresh(menu_win(last_menu));
+ if (code == E_UNKNOWN_COMMAND
+ || code == E_NOT_POSTED) {
+ if (menu_number() == eFile)
+ break;
+ beep();
+ }
+ if (code == E_REQUEST_DENIED)
+ beep();
+ continue;
+ }
+
+#ifdef NCURSES_MOUSE_VERSION
+ mousemask(0, (mmask_t *) 0);
+#endif
+}
+
+static void
+destroy_menus(void)
+{
+ menu_destroy(mpFile);
+ menu_destroy(mpSelect);
+#ifdef TRACE
+ menu_destroy(mpTrace);
+#endif
+ menu_destroy(mpBanner);
+}
+
int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+main(int argc, char *argv[])
{
- printf("Not implemented - demo for menu library\n");
+ setlocale(LC_ALL, "");
+
+ initscr();
+ noraw();
+ cbreak();
+ noecho();
+
+ if (has_colors()) {
+ start_color();
+ init_pair(1, COLOR_RED, COLOR_BLACK);
+ init_pair(2, COLOR_BLUE, COLOR_WHITE);
+ }
+ build_menus(argc > 1 ? argv[1] : 0);
+ perform_menus();
+ destroy_menus();
+
+ endwin();
return EXIT_SUCCESS;
}
#else
--- /dev/null
+/****************************************************************************
+ * Copyright (c) 2005 Free Software Foundation, Inc. *
+ * *
+ * Permission is hereby granted, free of charge, to any person obtaining a *
+ * copy of this software and associated documentation files (the *
+ * "Software"), to deal in the Software without restriction, including *
+ * without limitation the rights to use, copy, modify, merge, publish, *
+ * distribute, distribute with modifications, sublicense, and/or sell *
+ * copies of the Software, and to permit persons to whom the Software is *
+ * furnished to do so, subject to the following conditions: *
+ * *
+ * The above copyright notice and this permission notice shall be included *
+ * in all copies or substantial portions of the Software. *
+ * *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
+ * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
+ * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
+ * *
+ * Except as contained in this notice, the name(s) of the above copyright *
+ * holders shall not be used in advertising or otherwise to promote the *
+ * sale, use or other dealings in this Software without prior written *
+ * authorization. *
+ ****************************************************************************/
+
+/*
+ * Author: Thomas E. Dickey
+ *
+ * $Id: demo_termcap.c,v 1.2 2005/04/30 14:57:54 tom Exp $
+ *
+ * A simple demo of the termcap interface.
+ */
+#include <test.priv.h>
+
+#define isCapName(c) (isgraph(c) && strchr("^#=:\\", c) == 0)
+
+static void
+dumpit(char *cap)
+{
+ /*
+ * One of the limitations of the termcap interface is that the library
+ * cannot determine the size of the buffer passed via tgetstr(), nor the
+ * amount of space remaining. This demo simply reuses the whole buffer
+ * for each call; a normal termcap application would try to use the buffer
+ * to hold all of the strings extracted from the terminal entry.
+ */
+ char area[1024], *ap = area;
+ char *str;
+ int num;
+
+ if ((str = tgetstr(cap, &ap)) != 0) {
+ /*
+ * Note that the strings returned are mostly terminfo format, since
+ * ncurses does not convert except for a handful of special cases.
+ */
+ printf("str %s = ", cap);
+ while (*str != 0) {
+ int ch = UChar(*str++);
+ switch (ch) {
+ case '\177':
+ fputs("^?", stdout);
+ break;
+ case '\033':
+ fputs("\\E", stdout);
+ break;
+ case '\b':
+ fputs("\\b", stdout);
+ break;
+ case '\f':
+ fputs("\\f", stdout);
+ break;
+ case '\n':
+ fputs("\\n", stdout);
+ break;
+ case '\r':
+ fputs("\\r", stdout);
+ break;
+ case ' ':
+ fputs("\\s", stdout);
+ break;
+ case '\t':
+ fputs("\\t", stdout);
+ break;
+ case '^':
+ fputs("\\^", stdout);
+ break;
+ case ':':
+ fputs("\\072", stdout);
+ break;
+ case '\\':
+ fputs("\\\\", stdout);
+ break;
+ default:
+ if (isgraph(ch))
+ fputc(ch, stdout);
+ else if (ch < 32)
+ printf("^%c", ch + '@');
+ else
+ printf("\\%03o", ch);
+ break;
+ }
+ }
+ printf("\n");
+ } else if ((num = tgetnum(cap)) >= 0) {
+ printf("num %s = %d\n", cap, num);
+ } else if ((num = tgetflag(cap)) != 0) {
+ printf("flg %s\n", cap);
+ }
+ fflush(stdout);
+}
+
+static void
+demo_termcap(char *name)
+{
+ char buffer[1024];
+
+ printf("Terminal type %s\n", name);
+ if (tgetent(buffer, name)) {
+ char cap[3];
+ int c1, c2;
+
+ cap[2] = 0;
+ for (c1 = 0; c1 < 256; ++c1) {
+ cap[0] = c1;
+ if (isCapName(c1)) {
+ for (c2 = 0; c2 < 256; ++c2) {
+ cap[1] = c2;
+ if (isCapName(c2)) {
+ dumpit(cap);
+ }
+ }
+ }
+ }
+ }
+}
+
+int
+main(int argc, char *argv[])
+{
+ int n;
+ char *name;
+
+ if (argc > 1) {
+ for (n = 1; n < argc; ++n) {
+ demo_termcap(argv[n]);
+ }
+ } else if ((name = getenv("TERM")) != 0) {
+ demo_termcap(name);
+ } else {
+ demo_termcap("dumb");
+ }
+
+ ExitProgram(EXIT_SUCCESS);
+}
/****************************************************************************
- * Copyright (c) 1998,2001 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2001,2005 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 *
/*
* Author: Thomas E. Dickey <dickey@clark.net> 1998
*
- * $Id: ditto.c,v 1.4 2001/09/15 21:53:37 tom Exp $
+ * $Id: ditto.c,v 1.5 2005/04/16 16:35:49 tom Exp $
*
* The program illustrates how to set up multiple screens from a single
* program. Invoke the program by specifying another terminal on the same
}
int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc GCC_UNUSED,
+ char *argv[]GCC_UNUSED)
{
int j;
int active_tty = 0;
if (argc <= 1)
usage();
- if ((data = (DITTO *) calloc(argc, sizeof(DITTO))) == 0)
+ if ((data = (DITTO *) calloc((unsigned) argc, sizeof(DITTO))) == 0)
failed("calloc data");
data[0].input = stdin;
*/
for (j = 0; j < argc; j++) {
active_tty++;
- data[j].screen = newterm(
- (char *) 0, /* assume $TERM is the same */
- data[j].output,
- data[j].input);
+ data[j].screen = newterm((char *) 0, /* assume $TERM is the same */
+ data[j].output,
+ data[j].input);
if (data[j].screen == 0)
failed("newterm");
cbreak();
break;
for (j = 0; j < argc; j++) {
set_term(data[j].screen);
- addch(ch);
+ addch(UChar(ch));
refresh();
}
}
/****************************************************************************
- * Copyright (c) 1999-2001,2002 Free Software Foundation, Inc. *
+ * Copyright (c) 1999-2002,2004 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 *
/*
* Author: Thomas E. Dickey <dickey@clark.net> 1999
*
- * $Id: dots.c,v 1.8 2002/04/06 21:33:42 tom Exp $
+ * $Id: dots.c,v 1.11 2005/05/28 21:38:45 tom Exp $
*
* A simple demo of the terminfo interface.
*/
-#include <time.h>
-
#include <test.priv.h>
+#include <time.h>
+
#define valid(s) ((s != 0) && s != (char *)-1)
static bool interrupted = FALSE;
if (signal(j, SIG_IGN) != SIG_IGN)
signal(j, onsig);
- srand(time(0));
+ srand((unsigned) time(0));
setupterm((char *) 0, 1, (int *) 0);
outs(clear_screen);
outs(cursor_invisible);
tputs(tparm2(set_a_foreground, z), 1, outc);
} else {
tputs(tparm2(set_a_background, z), 1, outc);
+ napms(1);
}
} else if (valid(exit_attribute_mode)
&& valid(enter_reverse_mode)) {
- if (ranf() <= 0.01)
- outs((ranf() > 0.6) ? enter_reverse_mode :
- exit_attribute_mode);
+ if (ranf() <= 0.01) {
+ outs((ranf() > 0.6)
+ ? enter_reverse_mode
+ : exit_attribute_mode);
+ napms(1);
+ }
}
outc(p);
fflush(stdout);
/*
- * $Id: edit_field.c,v 1.7 2003/05/17 23:16:13 tom Exp $
+ * $Id: edit_field.c,v 1.11 2005/10/01 16:21:55 tom Exp $
*
* A wrapper for form_driver() which keeps track of the user's editing changes
* for each field, and makes the result available as a null-terminated string
#include <edit_field.h>
-#define MY_QUIT EDIT_FIELD('q')
-#define MY_INS_MODE EDIT_FIELD('t')
-
static struct {
int code;
int result;
{
CTRL('S'), REQ_BEG_FIELD, "go to beginning of field"
},
+ {
+ CTRL('T'), MY_EDT_MODE, "toggle O_EDIT mode, clear field status",
+ },
{
CTRL('U'), REQ_UP_FIELD, "move upward to field"
},
CTRL(']'), MY_INS_MODE, "toggle REQ_INS_MODE/REQ_OVL_MODE",
},
{
- KEY_F(1), EDIT_FIELD('h'), "show this screen",
+ KEY_F(1), MY_HELP, "show this screen",
},
{
KEY_BACKSPACE, REQ_DEL_PREV, "delete previous character"
keypad(help, TRUE);
keypad(data, TRUE);
- waddstr(data, "Defined form-traversal keys:\n");
+ waddstr(data, "Defined form edit/traversal keys:\n");
for (n = 0; n < SIZEOF(commands); ++n) {
const char *name;
#ifdef NCURSES_VERSION
do {
switch (ch) {
+ case KEY_HOME:
+ y1 = 0;
+ break;
+ case KEY_END:
+ y1 = y2;
+ break;
+ case KEY_PREVIOUS:
+ case KEY_PPAGE:
+ if (y1 > 0) {
+ y1 -= high / 2;
+ if (y1 < 0)
+ y1 = 0;
+ } else {
+ beep();
+ }
+ break;
+ case KEY_NEXT:
+ case KEY_NPAGE:
+ if (y1 < y2) {
+ y1 += high / 2;
+ if (y1 >= y2)
+ y1 = y2;
+ } else {
+ beep();
+ }
+ break;
case CTRL('P'):
case KEY_UP:
if (y1 > 0)
/*
- * $Id: edit_field.h,v 1.1 2003/04/26 22:54:50 tom Exp $
+ * $Id: edit_field.h,v 1.3 2005/09/24 22:59:52 tom Exp $
*
* Interface of edit_field.c
*/
#define EDIT_FIELD(c) (MAX_FORM_COMMAND + c)
+#define MY_HELP EDIT_FIELD('h')
+#define MY_QUIT EDIT_FIELD('q')
+#define MY_EDT_MODE EDIT_FIELD('e')
+#define MY_INS_MODE EDIT_FIELD('t')
+
extern void help_edit_field(void);
extern int edit_field(FORM * form, int *result);
/*
* Author: Thomas E. Dickey <dickey@clark.net> 1998
*
- * $Id: filter.c,v 1.7 2002/03/23 23:02:15 tom Exp $
+ * $Id: filter.c,v 1.8 2004/06/05 21:57:30 tom Exp $
*/
#include <test.priv.h>
char buffer[80];
attr_t underline;
+ setlocale(LC_ALL, "");
+
filter();
(void) newterm((char *) 0, stdout, stdin);
cbreak();
/*
- * $Id: firework.c,v 1.20 2002/03/23 21:41:42 tom Exp $
+ * $Id: firework.c,v 1.21 2005/05/28 21:39:04 tom Exp $
*/
-#include <time.h>
-
#include <test.priv.h>
+#include <time.h>
+
static int my_bg = COLOR_BLACK;
static void
* This test was written by Alexander V. Lukyanov to demonstrate difference
* between ncurses 4.1 and SVR4 curses
*
- * $Id: firstlast.c,v 1.3 2001/09/15 21:46:34 tom Exp $
+ * $Id: firstlast.c,v 1.4 2005/04/16 16:34:05 tom Exp $
*/
#include <test.priv.h>
const char *s;
for (;;) {
for (s = str; *s; s++) {
- if (waddch(w, *s) == ERR) {
+ if (waddch(w, UChar(*s)) == ERR) {
wmove(w, 0, 0);
return;
}
}
int
-main(
- int argc GCC_UNUSED,
- char *argv[]GCC_UNUSED)
+main(int argc GCC_UNUSED,
+ char *argv[]GCC_UNUSED)
{
WINDOW *large, *small;
initscr();
* modified 10-18-89 for curses (jrl)
* 10-18-89 added signal handling
*
- * $Id: gdc.c,v 1.23 2002/08/10 19:20:14 tom Exp $
+ * $Id: gdc.c,v 1.26 2005/05/28 21:39:39 tom Exp $
*/
-#include <time.h>
-
#include <test.priv.h>
+#include <time.h>
+
#define YBASE 10
#define XBASE 10
#define XLENGTH 54
#define YDEPTH 5
+#define PAIR_DIGITS 1
+#define PAIR_OTHERS 2
+#define PAIR_FRAMES 3
+
static short disp[11] =
{
075557, 011111, 071747, 071717, 055711,
}
static void
-drawbox(void)
+drawbox(bool scrolling)
{
chtype bottom[XLENGTH + 1];
int n;
if (hascolor)
- attrset(COLOR_PAIR(3));
+ attrset(COLOR_PAIR(PAIR_FRAMES));
mvaddch(YBASE - 1, XBASE - 1, ACS_ULCORNER);
hline(ACS_HLINE, XLENGTH);
mvaddch(YBASE + YDEPTH, XBASE - 1, ACS_LLCORNER);
mvinchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
- for (n = 0; n < XLENGTH; n++)
+ for (n = 0; n < XLENGTH; n++) {
+ if (!scrolling)
+ bottom[n] &= ~A_COLOR;
bottom[n] = ACS_HLINE | (bottom[n] & (A_ATTRIBUTES | A_COLOR));
+ }
mvaddchnstr(YBASE + YDEPTH, XBASE, bottom, XLENGTH);
mvaddch(YBASE + YDEPTH, XBASE + XLENGTH, ACS_LRCORNER);
vline(ACS_VLINE, YDEPTH);
if (hascolor)
- attrset(COLOR_PAIR(2));
+ attrset(COLOR_PAIR(PAIR_OTHERS));
}
static void
{
if (on) {
if (hascolor) {
- attron(COLOR_PAIR(1));
+ attron(COLOR_PAIR(PAIR_DIGITS));
} else {
attron(A_STANDOUT);
}
} else {
if (hascolor) {
- attron(COLOR_PAIR(2));
+ attron(COLOR_PAIR(PAIR_OTHERS));
} else {
attroff(A_STANDOUT);
}
if (use_default_colors() == OK)
bg = -1;
#endif
- init_pair(1, COLOR_BLACK, COLOR_RED);
- init_pair(2, COLOR_RED, bg);
- init_pair(3, COLOR_WHITE, bg);
- attrset(COLOR_PAIR(2));
+ init_pair(PAIR_DIGITS, COLOR_BLACK, COLOR_RED);
+ init_pair(PAIR_OTHERS, COLOR_RED, bg);
+ init_pair(PAIR_FRAMES, COLOR_WHITE, bg);
+ attrset(COLOR_PAIR(PAIR_OTHERS));
}
restart:
older[j] = newer[j] = next[j] = 0;
clear();
- drawbox();
+ drawbox(FALSE);
do {
char buf[30];
}
if (!s) {
if (scrol)
- drawbox();
+ drawbox(TRUE);
refresh();
/*
* If we're scrolling, space out the refreshes to fake
* movement. That's 7 frames, or 6 intervals, which would
* be 166 msec if we spread it out over a second. It looks
- * better (but will well on a slow terminal, e.g., less
+ * better (but will work on a slow terminal, e.g., less
* than 9600bd) to squeeze that into a half-second, and use
* half of 170 msec to ensure that the program doesn't eat
* a lot of time when asking what time it is, at the top of
- * this loop -TD
+ * this loop -T.Dickey
*/
if (scrol)
napms(85);
mvaddstr(16, 30, buf);
move(6, 0);
- drawbox();
+ drawbox(FALSE);
refresh();
/*
*
* Generate timing statistics for vertical-motion optimization.
*
- * $Id: hashtest.c,v 1.23 2002/10/19 22:11:24 tom Exp $
+ * $Id: hashtest.c,v 1.24 2005/04/16 16:36:54 tom Exp $
*/
#ifdef TRACE
move(0, 0);
for (i = 0; i < head_lines; i++)
for (j = 0; j < COLS; j++)
- addch((j % 8 == 0) ? ('A' + j / 8) : '-');
+ addch(UChar((j % 8 == 0) ? ('A' + j / 8) : '-'));
move(head_lines, 0);
for (i = head_lines; i < LINES - foot_lines; i++) {
- int c = (base - LO_CHAR + i) % (HI_CHAR - LO_CHAR + 1) + LO_CHAR;
+ chtype c = (base - LO_CHAR + i) % (HI_CHAR - LO_CHAR + 1) + LO_CHAR;
int hi = (extend_corner || (i < LINES - 1)) ? COLS : COLS - 1;
for (j = 0; j < hi; j++)
addch(c);
for (i = LINES - foot_lines; i < LINES; i++) {
move(i, 0);
for (j = 0; j < (extend_corner ? COLS : COLS - 1); j++)
- addch((j % 8 == 0) ? ('A' + j / 8) : '-');
+ addch(UChar((j % 8 == 0) ? ('A' + j / 8) : '-'));
}
scrollok(stdscr, TRUE);
/*
- * $Id: ins_wide.c,v 1.3 2003/08/09 22:07:23 tom Exp $
+ * $Id: ins_wide.c,v 1.6 2005/04/16 17:45:17 tom Exp $
*
* Demonstrate the wins_wstr() and wins_wch functions.
* Thomas Dickey - 2002/11/23
#include <test.priv.h>
+#if USE_WIDEC_SUPPORT
+
+/* definitions to make it simpler to compare with inserts.c */
+#define InsNStr ins_nwstr
+#define InsStr ins_wstr
+#define MvInsNStr mvins_nwstr
+#define MvInsStr mvins_wstr
+#define MvWInsNStr mvwins_nwstr
+#define MvWInsStr mvwins_wstr
+#define WInsNStr wins_nwstr
+#define WInsStr wins_wstr
+
#define TABSIZE 8
-#if USE_WIDEC_SUPPORT
-static int margin = (2 * TABSIZE) - 1;
+typedef enum {
+ oDefault = 0,
+ oMove = 1,
+ oWindow = 2,
+ oMoveWindow = 3
+} Options;
+
+static bool m_opt = FALSE;
+static bool w_opt = FALSE;
+static int n_opt = -1;
static void
-legend(WINDOW *win, wchar_t * buffer, int length)
+legend(WINDOW *win, int level, Options state, wchar_t *buffer, int length)
{
+ NCURSES_CONST char *showstate;
+
+ switch (state) {
+ default:
+ case oDefault:
+ showstate = "";
+ break;
+ case oMove:
+ showstate = " (mvXXX)";
+ break;
+ case oWindow:
+ showstate = " (winXXX)";
+ break;
+ case oMoveWindow:
+ showstate = " (mvwinXXX)";
+ break;
+ }
+
wmove(win, 0, 0);
wprintw(win,
- "The Strings/Chars displays should match. Enter any characters.\n");
+ "The Strings/Chars displays should match. Enter any characters, except:\n");
wprintw(win,
- "Use down-arrow or ^N to repeat on the next line, 'q' to exit.\n");
+ "down-arrow or ^N to repeat on next line, 'w' for inner window, 'q' to exit.\n");
wclrtoeol(win);
- wprintw(win, "Inserted %d characters <", length);
+ wprintw(win, "Level %d,%s inserted %d characters <", level,
+ showstate, length);
waddwstr(win, buffer);
waddstr(win, ">");
}
static int
-ColOf(wchar_t * buffer, int length)
+ColOf(wchar_t *buffer, int length, int margin)
{
int n;
int result;
result += 2;
break;
default:
- ++result;
+ result += wcwidth(ch);
if (ch < 32)
++result;
break;
return result;
}
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+static int
+ConvertCh(chtype source, cchar_t *target)
{
- cchar_t tmp_cchar;
wchar_t tmp_wchar[2];
+
+ tmp_wchar[0] = source;
+ tmp_wchar[1] = 0;
+ if (setcchar(target, tmp_wchar, A_NORMAL, 0, (void *) 0) == ERR) {
+ beep();
+ return FALSE;
+ }
+ return TRUE;
+}
+
+static int
+MvWInsCh(WINDOW *win, int y, int x, chtype ch)
+{
+ int code;
+ cchar_t tmp_cchar;
+
+ if (ConvertCh(ch, &tmp_cchar)) {
+ code = mvwins_wch(win, y, x, &tmp_cchar);
+ } else {
+ code = mvwinsch(win, y, x, ch);
+ }
+ return code;
+}
+
+static int
+MvInsCh(int y, int x, chtype ch)
+{
+ int code;
+ cchar_t tmp_cchar;
+
+ if (ConvertCh(ch, &tmp_cchar)) {
+ code = mvins_wch(y, x, &tmp_cchar);
+ } else {
+ code = mvinsch(y, x, ch);
+ }
+ return code;
+}
+
+static int
+WInsCh(WINDOW *win, chtype ch)
+{
+ int code;
+ cchar_t tmp_cchar;
+
+ if (ConvertCh(ch, &tmp_cchar)) {
+ code = wins_wch(win, &tmp_cchar);
+ } else {
+ code = winsch(win, ch);
+ }
+ return code;
+}
+
+static int
+InsCh(chtype ch)
+{
+ int code;
+ cchar_t tmp_cchar;
+
+ if (ConvertCh(ch, &tmp_cchar)) {
+ code = ins_wch(&tmp_cchar);
+ } else {
+ code = insch(ch);
+ }
+ return code;
+}
+
+#define LEN(n) ((length - (n) > n_opt) ? n_opt : (length - (n)))
+static void
+test_inserts(int level)
+{
+ static bool first = TRUE;
+
wint_t ch;
int code;
int limit;
int row = 1;
int col;
+ int row2, col2;
int length;
wchar_t buffer[BUFSIZ];
- WINDOW *work;
- WINDOW *show;
+ WINDOW *look = 0;
+ WINDOW *work = 0;
+ WINDOW *show = 0;
+ int margin = (2 * TABSIZE) - 1;
+ Options option = ((m_opt ? oMove : oDefault)
+ | ((w_opt || (level > 0)) ? oWindow : oDefault));
+
+ if (first) {
+ static char cmd[80];
+ setlocale(LC_ALL, "");
- putenv("TABSIZE=8");
- initscr();
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
+ putenv(strcpy(cmd, "TABSIZE=8"));
+
+ initscr();
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
+ }
limit = LINES - 5;
- work = newwin(limit, COLS, 0, 0);
- show = newwin(4, COLS, limit + 1, 0);
+ if (level > 0) {
+ look = newwin(limit, COLS - (2 * (level - 1)), 0, level - 1);
+ work = newwin(limit - 2, COLS - (2 * level), 1, level);
+ show = newwin(4, COLS, limit + 1, 0);
+ box(look, 0, 0);
+ wnoutrefresh(look);
+ limit -= 2;
+ } else {
+ work = stdscr;
+ show = derwin(stdscr, 4, COLS, limit + 1, 0);
+ }
keypad(work, TRUE);
for (col = margin + 1; col < COLS; col += TABSIZE)
mvwvline(work, row, col, '.', limit - 2);
- box(work, 0, 0);
mvwvline(work, row, margin, ACS_VLINE, limit - 2);
mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
limit /= 2;
wnoutrefresh(work);
buffer[length = 0] = '\0';
- legend(show, buffer, length);
+ legend(show, level, option, buffer, length);
wnoutrefresh(show);
doupdate();
while ((code = wget_wch(work, &ch)) != ERR) {
- switch (code) {
- case KEY_CODE_YES:
+ if (code == KEY_CODE_YES) {
switch (ch) {
case KEY_DOWN:
ch = CTRL('N');
beep();
continue;
}
+ } else if (code == ERR) {
+ beep();
break;
}
if (ch == 'q')
break;
wmove(work, row, margin + 1);
- if (ch == CTRL('N')) {
+ switch (ch) {
+ case 'w':
+ test_inserts(level + 1);
+
+ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+ doupdate();
+ break;
+ case CTRL('N'):
if (row < limit) {
++row;
/* put the whole string in, all at once */
- mvwins_wstr(work, row, margin + 1, buffer);
+ col2 = margin + 1;
+ switch (option) {
+ case oDefault:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ if (move(row, col2) != ERR) {
+ InsNStr(buffer + col, LEN(col));
+ }
+ }
+ } else {
+ if (move(row, col2) != ERR) {
+ InsStr(buffer);
+ }
+ }
+ break;
+ case oMove:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ MvInsNStr(row, col2, buffer + col, LEN(col));
+ }
+ } else {
+ MvInsStr(row, col2, buffer);
+ }
+ break;
+ case oWindow:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ if (wmove(work, row, col2) != ERR) {
+ WInsNStr(work, buffer + col, LEN(col));
+ }
+ }
+ } else {
+ if (wmove(work, row, col2) != ERR) {
+ WInsStr(work, buffer);
+ }
+ }
+ break;
+ case oMoveWindow:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ MvWInsNStr(work, row, col2, buffer + col, LEN(col));
+ }
+ } else {
+ MvWInsStr(work, row, col2, buffer);
+ }
+ break;
+ }
/* do the corresponding single-character insertion */
+ row2 = limit + row;
for (col = 0; col < length; ++col) {
- memset(&tmp_cchar, 0, sizeof(tmp_cchar));
- if (setcchar(&tmp_cchar,
- &(buffer[col]),
- A_NORMAL,
- 0,
- (void *) 0) != ERR) {
- mvwins_wch(work, limit + row, ColOf(buffer, col), &tmp_cchar);
- } else {
- beep(); /* even for tabs! */
- mvwinsch(work,
- limit + row,
- ColOf(buffer, col), buffer[col]);
+ col2 = ColOf(buffer, col, margin);
+ switch (option) {
+ case oDefault:
+ if (move(row2, col2) != ERR) {
+ InsCh((chtype) buffer[col]);
+ }
+ break;
+ case oMove:
+ MvInsCh(row2, col2, (chtype) buffer[col]);
+ break;
+ case oWindow:
+ if (wmove(work, row2, col2) != ERR) {
+ WInsCh(work, (chtype) buffer[col]);
+ }
+ break;
+ case oMoveWindow:
+ MvWInsCh(work, row2, col2, (chtype) buffer[col]);
+ break;
}
}
} else {
beep();
}
- } else {
+ break;
+ case KEY_BACKSPACE:
+ ch = '\b';
+ /* FALLTHRU */
+ default:
buffer[length++] = ch;
buffer[length] = '\0';
+
/* put the string in, one character at a time */
- mvwins_wstr(work,
- row,
- ColOf(buffer, length - 1), buffer + length - 1);
+ col = ColOf(buffer, length - 1, margin);
+ switch (option) {
+ case oDefault:
+ if (move(row, col) != ERR) {
+ InsStr(buffer + length - 1);
+ }
+ break;
+ case oMove:
+ MvInsStr(row, col, buffer + length - 1);
+ break;
+ case oWindow:
+ if (wmove(work, row, col) != ERR) {
+ WInsStr(work, buffer + length - 1);
+ }
+ break;
+ case oMoveWindow:
+ MvWInsStr(work, row, col, buffer + length - 1);
+ break;
+ }
/* do the corresponding single-character insertion */
- tmp_wchar[0] = ch;
- tmp_wchar[1] = 0;
- if (setcchar(&tmp_cchar,
- tmp_wchar,
- A_NORMAL,
- 0,
- (void *) 0) != ERR) {
- mvwins_wch(work,
- limit + row,
- ColOf(buffer, length - 1), &tmp_cchar);
- } else {
- beep(); /* even for tabs! */
- mvwinsch(work,
- limit + row,
- ColOf(buffer, length - 1), ch);
+ switch (option) {
+ case oDefault:
+ if (move(limit + row, col) != ERR) {
+ InsCh(ch);
+ }
+ break;
+ case oMove:
+ MvInsCh(limit + row, col, ch);
+ break;
+ case oWindow:
+ if (wmove(work, limit + row, col) != ERR) {
+ WInsCh(work, ch);
+ }
+ break;
+ case oMoveWindow:
+ MvWInsCh(work, limit + row, col, ch);
+ break;
}
+
wnoutrefresh(work);
- legend(show, buffer, length);
+ legend(show, level, option, buffer, length);
wnoutrefresh(show);
doupdate();
+ break;
+ }
+ }
+ if (level > 0) {
+ delwin(show);
+ delwin(work);
+ delwin(look);
+ }
+}
+
+static void
+usage(void)
+{
+ static const char *tbl[] =
+ {
+ "Usage: inserts [options]"
+ ,""
+ ,"Options:"
+ ," -n NUM limit string-inserts to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from insert-functions"
+ ," -w use window-parameter even when stdscr would be implied"
+ };
+ unsigned n;
+ for (n = 0; n < SIZEOF(tbl); ++n)
+ fprintf(stderr, "%s\n", tbl[n]);
+ ExitProgram(EXIT_FAILURE);
+}
+
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+{
+ int ch;
+
+ setlocale(LC_ALL, "");
+
+ while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
+ switch (ch) {
+ case 'm':
+ m_opt = TRUE;
+ break;
+ case 'n':
+ n_opt = atoi(optarg);
+ if (n_opt == 0)
+ n_opt = -1;
+ break;
+ case 'w':
+ w_opt = TRUE;
+ break;
+ default:
+ usage();
+ break;
}
}
+ if (optind < argc)
+ usage();
+
+ test_inserts(0);
endwin();
ExitProgram(EXIT_SUCCESS);
}
/*
- * $Id: inserts.c,v 1.5 2003/08/09 22:07:06 tom Exp $
+ * $Id: inserts.c,v 1.13 2005/04/16 15:56:42 tom Exp $
*
* Demonstrate the winsstr() and winsch functions.
* Thomas Dickey - 2002/10/19
#include <test.priv.h>
+#define InsNStr insnstr
+#define InsStr insstr
+#define MvInsNStr mvinsnstr
+#define MvInsStr mvinsstr
+#define MvWInsNStr mvwinsnstr
+#define MvWInsStr mvwinsstr
+#define WInsNStr winsnstr
+#define WInsStr winsstr
+
+#define InsCh insch
+#define MvInsCh mvinsch
+#define MvWInsCh mvwinsch
+#define WInsCh winsch
+
#define TABSIZE 8
-static int margin = (2 * TABSIZE) - 1;
+typedef enum {
+ oDefault = 0,
+ oMove = 1,
+ oWindow = 2,
+ oMoveWindow = 3
+} Options;
+
+static bool m_opt = FALSE;
+static bool w_opt = FALSE;
+static int n_opt = -1;
static void
-legend(WINDOW *win, char *buffer, int length)
+legend(WINDOW *win, int level, Options state, char *buffer, int length)
{
+ NCURSES_CONST char *showstate;
+
+ switch (state) {
+ default:
+ case oDefault:
+ showstate = "";
+ break;
+ case oMove:
+ showstate = " (mvXXX)";
+ break;
+ case oWindow:
+ showstate = " (winXXX)";
+ break;
+ case oMoveWindow:
+ showstate = " (mvwinXXX)";
+ break;
+ }
+
wmove(win, 0, 0);
wprintw(win,
- "The Strings/Chars displays should match. Enter any characters.\n");
+ "The Strings/Chars displays should match. Enter any characters, except:\n");
wprintw(win,
- "Use down-arrow or ^N to repeat on the next line, 'q' to exit.\n");
+ "down-arrow or ^N to repeat on next line, 'w' for inner window, 'q' to exit.\n");
wclrtoeol(win);
- wprintw(win, "Inserted %d characters <%s>", length, buffer);
+ wprintw(win, "Level %d,%s inserted %d characters <%s>", level,
+ showstate, length, buffer);
}
static int
-ColOf(char *buffer, int length)
+ColOf(char *buffer, int length, int margin)
{
int n;
int result;
return result;
}
-int
-main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+#define LEN(n) ((length - (n) > n_opt) ? n_opt : (length - (n)))
+static void
+test_inserts(int level)
{
+ static bool first = TRUE;
+
int ch;
int limit;
int row = 1;
int col;
+ int row2, col2;
int length;
char buffer[BUFSIZ];
- WINDOW *work;
- WINDOW *show;
+ WINDOW *look = 0;
+ WINDOW *work = 0;
+ WINDOW *show = 0;
+ int margin = (2 * TABSIZE) - 1;
+ Options option = ((m_opt ? oMove : oDefault)
+ | ((w_opt || (level > 0)) ? oWindow : oDefault));
+
+ if (first) {
+ static char cmd[80];
+ setlocale(LC_ALL, "");
+
+ putenv(strcpy(cmd, "TABSIZE=8"));
- putenv("TABSIZE=8");
- initscr();
- (void) cbreak(); /* take input chars one at a time, no wait for \n */
- (void) noecho(); /* don't echo input */
- keypad(stdscr, TRUE);
+ initscr();
+ (void) cbreak(); /* take input chars one at a time, no wait for \n */
+ (void) noecho(); /* don't echo input */
+ keypad(stdscr, TRUE);
+ }
limit = LINES - 5;
- work = newwin(limit, COLS, 0, 0);
- show = newwin(4, COLS, limit + 1, 0);
+ if (level > 0) {
+ look = newwin(limit, COLS - (2 * (level - 1)), 0, level - 1);
+ work = newwin(limit - 2, COLS - (2 * level), 1, level);
+ show = newwin(4, COLS, limit + 1, 0);
+ box(look, 0, 0);
+ wnoutrefresh(look);
+ limit -= 2;
+ } else {
+ work = stdscr;
+ show = derwin(stdscr, 4, COLS, limit + 1, 0);
+ }
keypad(work, TRUE);
for (col = margin + 1; col < COLS; col += TABSIZE)
mvwvline(work, row, col, '.', limit - 2);
- box(work, 0, 0);
mvwvline(work, row, margin, ACS_VLINE, limit - 2);
mvwvline(work, row, margin + 1, ACS_VLINE, limit - 2);
limit /= 2;
wnoutrefresh(work);
buffer[length = 0] = '\0';
- legend(show, buffer, length);
+ legend(show, level, option, buffer, length);
wnoutrefresh(show);
doupdate();
}
while ((ch = wgetch(work)) != 'q') {
+ if (ch == ERR) {
+ beep();
+ break;
+ }
wmove(work, row, margin + 1);
switch (ch) {
+ case 'w':
+ test_inserts(level + 1);
+
+ touchwin(look);
+ touchwin(work);
+ touchwin(show);
+
+ wnoutrefresh(look);
+ wnoutrefresh(work);
+ wnoutrefresh(show);
+
+ doupdate();
+ break;
case CTRL('N'):
case KEY_DOWN:
if (row < limit) {
++row;
/* put the whole string in, all at once */
- mvwinsstr(work, row, margin + 1, buffer);
+ col2 = margin + 1;
+ switch (option) {
+ case oDefault:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ if (move(row, col2) != ERR) {
+ InsNStr(buffer + col, LEN(col));
+ }
+ }
+ } else {
+ if (move(row, col2) != ERR) {
+ InsStr(buffer);
+ }
+ }
+ break;
+ case oMove:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ MvInsNStr(row, col2, buffer + col, LEN(col));
+ }
+ } else {
+ MvInsStr(row, col2, buffer);
+ }
+ break;
+ case oWindow:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ if (wmove(work, row, col2) != ERR) {
+ WInsNStr(work, buffer + col, LEN(col));
+ }
+ }
+ } else {
+ if (wmove(work, row, col2) != ERR) {
+ WInsStr(work, buffer);
+ }
+ }
+ break;
+ case oMoveWindow:
+ if (n_opt > 1) {
+ for (col = 0; col < length; col += n_opt) {
+ col2 = ColOf(buffer, col, margin);
+ MvWInsNStr(work, row, col2, buffer + col, LEN(col));
+ }
+ } else {
+ MvWInsStr(work, row, col2, buffer);
+ }
+ break;
+ }
/* do the corresponding single-character insertion */
+ row2 = limit + row;
for (col = 0; col < length; ++col) {
- mvwinsch(work, limit + row, ColOf(buffer, col), buffer[col]);
+ col2 = ColOf(buffer, col, margin);
+ switch (option) {
+ case oDefault:
+ if (move(row2, col2) != ERR) {
+ InsCh(UChar(buffer[col]));
+ }
+ break;
+ case oMove:
+ MvInsCh(row2, col2, UChar(buffer[col]));
+ break;
+ case oWindow:
+ if (wmove(work, row2, col2) != ERR) {
+ WInsCh(work, UChar(buffer[col]));
+ }
+ break;
+ case oMoveWindow:
+ MvWInsCh(work, row2, col2, UChar(buffer[col]));
+ break;
+ }
}
} else {
beep();
}
buffer[length++] = ch;
buffer[length] = '\0';
+
/* put the string in, one character at a time */
- mvwinsstr(work,
- row,
- ColOf(buffer, length - 1), buffer + length - 1);
+ col = ColOf(buffer, length - 1, margin);
+ switch (option) {
+ case oDefault:
+ if (move(row, col) != ERR) {
+ InsStr(buffer + length - 1);
+ }
+ break;
+ case oMove:
+ MvInsStr(row, col, buffer + length - 1);
+ break;
+ case oWindow:
+ if (wmove(work, row, col) != ERR) {
+ WInsStr(work, buffer + length - 1);
+ }
+ break;
+ case oMoveWindow:
+ MvWInsStr(work, row, col, buffer + length - 1);
+ break;
+ }
/* do the corresponding single-character insertion */
- mvwinsch(work,
- limit + row,
- ColOf(buffer, length - 1), ch);
+ switch (option) {
+ case oDefault:
+ if (move(limit + row, col) != ERR) {
+ InsCh(UChar(ch));
+ }
+ break;
+ case oMove:
+ MvInsCh(limit + row, col, UChar(ch));
+ break;
+ case oWindow:
+ if (wmove(work, limit + row, col) != ERR) {
+ WInsCh(work, UChar(ch));
+ }
+ break;
+ case oMoveWindow:
+ MvWInsCh(work, limit + row, col, UChar(ch));
+ break;
+ }
+
wnoutrefresh(work);
- legend(show, buffer, length);
+ legend(show, level, option, buffer, length);
wnoutrefresh(show);
doupdate();
break;
}
}
+ if (level > 0) {
+ delwin(show);
+ delwin(work);
+ delwin(look);
+ }
+}
+
+static void
+usage(void)
+{
+ static const char *tbl[] =
+ {
+ "Usage: inserts [options]"
+ ,""
+ ,"Options:"
+ ," -n NUM limit string-inserts to NUM bytes on ^N replay"
+ ," -m perform wmove/move separately from insert-functions"
+ ," -w use window-parameter even when stdscr would be implied"
+ };
+ unsigned n;
+ for (n = 0; n < SIZEOF(tbl); ++n)
+ fprintf(stderr, "%s\n", tbl[n]);
+ ExitProgram(EXIT_FAILURE);
+}
+
+int
+main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
+{
+ int ch;
+
+ setlocale(LC_ALL, "");
+
+ while ((ch = getopt(argc, argv, "mn:w")) != EOF) {
+ switch (ch) {
+ case 'm':
+ m_opt = TRUE;
+ break;
+ case 'n':
+ n_opt = atoi(optarg);
+ if (n_opt == 0)
+ n_opt = -1;
+ break;
+ case 'w':
+ w_opt = TRUE;
+ break;
+ default:
+ usage();
+ break;
+ }
+ }
+ if (optind < argc)
+ usage();
+
+ test_inserts(0);
endwin();
ExitProgram(EXIT_SUCCESS);
}
/*
- * $Id: keynames.c,v 1.5 2003/05/17 23:18:49 tom Exp $
+ * $Id: keynames.c,v 1.7 2005/04/30 20:13:59 tom Exp $
*/
#include <test.priv.h>
main(int argc GCC_UNUSED, char *argv[]GCC_UNUSED)
{
int n;
- for (n = -1; n < 512; n++) {
+
+ /*
+ * Get the terminfo entry into memory, and tell ncurses that we want to
+ * use function keys. That will make it add any user-defined keys that
+ * appear in the terminfo.
+ */
+ newterm(getenv("TERM"), stderr, stdin);
+ keypad(stdscr, TRUE);
+ endwin();
+
+ for (n = -1; n < KEY_MAX + 512; n++) {
const char *result = keyname(n);
if (result != 0)
printf("%d(%5o):%s\n", n, n, result);
--- /dev/null
+# $Id: linux-color.dat,v 1.1 2004/05/22 23:42:45 tom Exp $
+# These values are derived from linux/drivers/char/vt.c (default_red[],
+# default_grn[] and default_blu[]), commented
+/* the default colour table, for VGA+ colour systems */
+scale:255
+0: 0 0 0
+1: 170 0 0
+2: 0 170 0
+3: 170 85 0
+4: 0 0 170
+5: 170 0 170
+6: 0 170 170
+7: 170 170 170
+8: 85 85 85
+9: 255 85 85
+10: 85 255 85
+11: 255 255 85
+12: 85 85 255
+13: 255 85 255
+14: 85 255 255
+15: 255 255 255
* Test lower-right-hand corner access
*
* originally by Eric S. Raymond <esr@thyrsus.com>, written for animation
- * and resizing -TD
+ * and resizing -T.Dickey
*
* This can't be part of the ncurses test-program, because ncurses rips off the
* bottom line to do labels.
*
- * $Id: lrtest.c,v 1.19 2002/07/13 16:55:50 tom Exp $
+ * $Id: lrtest.c,v 1.20 2004/08/07 16:08:01 tom Exp $
*/
#include <test.priv.h>
* really write to all positions properly.
*/
static void
-show(MARK * m)
+show(MARK *m)
{
mvaddch(m->y, m->x, m->value);
if (m->mode == 0) { /* along the x-direction */
else if (ch == 'T')
trace(0);
else if (ch == 't')
- trace(TRACE_CALLS|TRACE_ICALLS|TRACE_UPDATE);
+ trace(TRACE_CALLS | TRACE_ICALLS | TRACE_UPDATE);
#endif
#ifdef KEY_RESIZE
else if (ch == KEY_RESIZE) {
# Test-Program modules
-# $Id: modules,v 1.20 2003/12/07 00:01:23 tom Exp $
+# $Id: modules,v 1.23 2005/09/25 00:56:17 tom Exp $
##############################################################################
-# Copyright (c) 1998-2002,2003 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2003,2005 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"), #
# authorization. #
##############################################################################
#
-# Author: Thomas E. Dickey 1997-2003
+# Author: Thomas E. Dickey 1997-2005
#
@ base
-background progs $(srcdir)
-blue progs $(srcdir) ../include/term.h
-bs progs $(srcdir)
-cardfile progs $(srcdir) ../include/panel.h ../include/form.h
-color_set progs $(srcdir)
-demo_defkey progs $(srcdir)
-demo_keyok progs $(srcdir)
-demo_forms progs $(srcdir) ../include/form.h
-demo_menus progs $(srcdir) ../include/menu.h
-demo_panels progs $(srcdir) ../include/panel.h
-ditto progs $(srcdir)
-dots progs $(srcdir) ../include/term.h
-edit_field progs $(srcdir)
-filter progs $(srcdir) ../include/form.h
-firework progs $(srcdir) ../include/term.h
-firstlast progs $(srcdir)
-gdc progs $(srcdir)
-hanoi progs $(srcdir)
-hashtest progs $(srcdir)
-ins_wide progs $(srcdir)
-inserts progs $(srcdir)
-keynames progs $(srcdir)
-knight progs $(srcdir)
-lrtest progs $(srcdir)
-ncurses progs $(srcdir) ../include/panel.h ../include/menu.h ../include/form.h
-newdemo progs $(srcdir)
-railroad progs $(srcdir) ../include/termcap.h
-rain progs $(srcdir) ../include/term.h
-tclock progs $(srcdir)
-testaddch progs $(srcdir)
-testcurs progs $(srcdir)
-testscanw progs $(srcdir)
-view progs $(srcdir)
-worm progs $(srcdir)
-xmas progs $(srcdir)
+background progs $(srcdir) $(HEADER_DEPS)
+blue progs $(srcdir) $(HEADER_DEPS)
+bs progs $(srcdir) $(HEADER_DEPS)
+cardfile progs $(srcdir) $(HEADER_DEPS) ../include/panel.h ../include/form.h
+color_set progs $(srcdir) $(HEADER_DEPS)
+demo_defkey progs $(srcdir) $(HEADER_DEPS)
+demo_keyok progs $(srcdir) $(HEADER_DEPS)
+demo_forms progs $(srcdir) $(HEADER_DEPS) ../include/form.h $(srcdir)/edit_field.h
+demo_menus progs $(srcdir) $(HEADER_DEPS) ../include/menu.h
+demo_panels progs $(srcdir) $(HEADER_DEPS) ../include/panel.h
+demo_termcap progs $(srcdir) $(HEADER_DEPS)
+ditto progs $(srcdir) $(HEADER_DEPS)
+dots progs $(srcdir) $(HEADER_DEPS)
+edit_field progs $(srcdir) $(HEADER_DEPS) $(srcdir)/edit_field.h
+filter progs $(srcdir) $(HEADER_DEPS) ../include/form.h
+firework progs $(srcdir) $(HEADER_DEPS)
+firstlast progs $(srcdir) $(HEADER_DEPS)
+gdc progs $(srcdir) $(HEADER_DEPS)
+hanoi progs $(srcdir) $(HEADER_DEPS)
+hashtest progs $(srcdir) $(HEADER_DEPS)
+ins_wide progs $(srcdir) $(HEADER_DEPS)
+inserts progs $(srcdir) $(HEADER_DEPS)
+keynames progs $(srcdir) $(HEADER_DEPS)
+knight progs $(srcdir) $(HEADER_DEPS)
+lrtest progs $(srcdir) $(HEADER_DEPS)
+ncurses progs $(srcdir) $(HEADER_DEPS) ../include/panel.h ../include/menu.h ../include/form.h
+newdemo progs $(srcdir) $(HEADER_DEPS)
+railroad progs $(srcdir) $(HEADER_DEPS)
+rain progs $(srcdir) $(HEADER_DEPS)
+tclock progs $(srcdir) $(HEADER_DEPS)
+testaddch progs $(srcdir) $(HEADER_DEPS)
+testcurs progs $(srcdir) $(HEADER_DEPS)
+testscanw progs $(srcdir) $(HEADER_DEPS)
+view progs $(srcdir) $(HEADER_DEPS)
+worm progs $(srcdir) $(HEADER_DEPS)
+xmas progs $(srcdir) $(HEADER_DEPS)
/****************************************************************************
- * Copyright (c) 1998-2003,2004 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2004,2005 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 *
Author: Eric S. Raymond <esr@snark.thyrsus.com> 1993
Thomas E. Dickey (beginning revision 1.27 in 1996).
-$Id: ncurses.c,v 1.202 2004/02/07 20:24:08 tom Exp $
+$Id: ncurses.c,v 1.253 2005/10/01 16:00:56 tom Exp $
***************************************************************************/
#ifdef NCURSES_VERSION
#ifdef TRACE
-static int save_trace = TRACE_ORDINARY | TRACE_CALLS;
-extern int _nc_tracing;
+static unsigned save_trace = TRACE_ORDINARY | TRACE_CALLS;
+extern unsigned _nc_tracing;
#endif
#else
#undef max_colors
static int max_colors; /* the actual number of colors we'll use */
+static int min_colors; /* the minimum color code */
#undef max_pairs
static int max_pairs; /* ...and the number of color pairs */
+typedef struct {
+ short red;
+ short green;
+ short blue;
+} RGB_DATA;
+
+static RGB_DATA *all_colors;
+
+static void main_menu(bool);
+
/* The behavior of mvhline, mvvline for negative/zero length is unspecified,
* though we can rely on negative x/y values to stop the macro.
*/
mvvline(y, x, c, (to) - (y));
}
+static void
+Repaint(void)
+{
+ touchwin(stdscr);
+ touchwin(curscr);
+ wrefresh(curscr);
+}
+
/* Common function to allow ^T to toggle trace-mode in the middle of a test
* so that trace-files can be made smaller.
*/
#if USE_WIDEC_SUPPORT
static int
-wGet_wchar(WINDOW *win, wint_t * result)
+wGet_wchar(WINDOW *win, wint_t *result)
{
int c;
#ifdef TRACE
/* replaces wgetn_wstr(), since we want to be able to edit values */
static void
-wGet_wstring(WINDOW *win, wchar_t * buffer, int limit)
+wGet_wstring(WINDOW *win, wchar_t *buffer, int limit)
{
int y0, x0, x;
wint_t ch;
bool done = FALSE;
+ bool fkey = FALSE;
echo();
getyx(win, y0, x0);
while (!done) {
if (x > (int) wcslen(buffer))
x = (int) wcslen(buffer);
+
+ /* clear the "window' */
+ wmove(win, y0, x0);
+ wprintw(win, "%*s", limit, " ");
+
+ /* write the existing buffer contents */
wmove(win, y0, x0);
waddnwstr(win, buffer, limit);
- if (x < limit)
- wprintw(win, "%*s", limit - x, " ");
- wmove(win, y0, x0 + x);
+
+ /* positions the cursor past character 'x' */
+ wmove(win, y0, x0);
+ waddnwstr(win, buffer, x);
+
switch (wGet_wchar(win, &ch)) {
case KEY_CODE_YES:
+ fkey = TRUE;
switch (ch) {
case KEY_ENTER:
ch = '\n';
+ fkey = FALSE;
break;
case KEY_BACKSPACE:
case KEY_DC:
ch = '\b';
+ fkey = FALSE;
break;
case KEY_LEFT:
case KEY_RIGHT:
break;
default:
- ch = (wint_t) - 1;
+ ch = (wint_t) -1;
break;
}
+ break;
case OK:
+ fkey = FALSE;
break;
default:
- ch = (wint_t) - 1;
+ ch = (wint_t) -1;
+ fkey = TRUE;
break;
}
if (x > 0) {
--x;
} else {
- flash();
+ beep();
}
break;
case KEY_RIGHT:
++x;
break;
default:
- if (!isprint(ch) || ch >= KEY_MIN) {
+ if (fkey) {
beep();
} else if ((int) wcslen(buffer) < limit) {
int j;
}
buffer[x++] = ch;
} else {
- flash();
+ beep();
}
}
}
}
#ifdef NCURSES_MOUSE_VERSION
+/*
+ * This function is the same as _tracemouse(), but we cannot count on that
+ * being available in the non-debug library.
+ */
static const char *
mouse_decode(MEVENT const *ep)
{
- static char buf[80];
+ static char buf[80 + (5 * 10) + (32 * 15)];
(void) sprintf(buf, "id %2d at (%2d, %2d, %2d) state %4lx = {",
- ep->id, ep->x, ep->y, ep->z, ep->bstate);
+ ep->id, ep->x, ep->y, ep->z, (unsigned long) ep->bstate);
#define SHOW(m, s) if ((ep->bstate & m)==m) {strcat(buf,s); strcat(buf, ", ");}
+
SHOW(BUTTON1_RELEASED, "release-1");
SHOW(BUTTON1_PRESSED, "press-1");
SHOW(BUTTON1_CLICKED, "click-1");
SHOW(BUTTON1_DOUBLE_CLICKED, "doubleclick-1");
SHOW(BUTTON1_TRIPLE_CLICKED, "tripleclick-1");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON1_RESERVED_EVENT, "reserved-1");
+#endif
+
SHOW(BUTTON2_RELEASED, "release-2");
SHOW(BUTTON2_PRESSED, "press-2");
SHOW(BUTTON2_CLICKED, "click-2");
SHOW(BUTTON2_DOUBLE_CLICKED, "doubleclick-2");
SHOW(BUTTON2_TRIPLE_CLICKED, "tripleclick-2");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON2_RESERVED_EVENT, "reserved-2");
+#endif
+
SHOW(BUTTON3_RELEASED, "release-3");
SHOW(BUTTON3_PRESSED, "press-3");
SHOW(BUTTON3_CLICKED, "click-3");
SHOW(BUTTON3_DOUBLE_CLICKED, "doubleclick-3");
SHOW(BUTTON3_TRIPLE_CLICKED, "tripleclick-3");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON3_RESERVED_EVENT, "reserved-3");
+#endif
+
SHOW(BUTTON4_RELEASED, "release-4");
SHOW(BUTTON4_PRESSED, "press-4");
SHOW(BUTTON4_CLICKED, "click-4");
SHOW(BUTTON4_DOUBLE_CLICKED, "doubleclick-4");
SHOW(BUTTON4_TRIPLE_CLICKED, "tripleclick-4");
+#if NCURSES_MOUSE_VERSION == 1
SHOW(BUTTON4_RESERVED_EVENT, "reserved-4");
+#endif
+
+#if NCURSES_MOUSE_VERSION == 2
+ SHOW(BUTTON5_RELEASED, "release-5");
+ SHOW(BUTTON5_PRESSED, "press-5");
+ SHOW(BUTTON5_CLICKED, "click-5");
+ SHOW(BUTTON5_DOUBLE_CLICKED, "doubleclick-5");
+ SHOW(BUTTON5_TRIPLE_CLICKED, "tripleclick-5");
+#endif
+
SHOW(BUTTON_CTRL, "ctrl");
SHOW(BUTTON_SHIFT, "shift");
SHOW(BUTTON_ALT, "alt");
SHOW(ALL_MOUSE_EVENTS, "all-events");
SHOW(REPORT_MOUSE_POSITION, "position");
+
#undef SHOW
if (buf[strlen(buf) - 1] == ' ')
* Resize both and paint the box in the parent.
*/
static void
-resize_boxes(int level, WINDOW *win)
+resize_boxes(unsigned level, WINDOW *win)
{
unsigned n;
int base = 5;
slk_clear();
slk_noutrefresh();
- for (n = 0; (int) n < level; ++n) {
+ for (n = 0; n < level; ++n) {
wresize(winstack[n].frame, high, wide);
wresize(winstack[n].text, high - 2, wide - 2);
high -= 2;
#endif
static void
-wgetch_test(int level, WINDOW *win, int delay)
+wgetch_test(unsigned level, WINDOW *win, int delay)
{
char buf[BUFSIZ];
int first_y, first_x;
int incount = 0;
bool flags[256];
bool blocking = (delay < 0);
- int y, x;
memset(flags, FALSE, sizeof(flags));
flags[UChar('k')] = (win == stdscr);
wprintw(win, "Key pressed: %04o ", c);
#ifdef NCURSES_MOUSE_VERSION
if (c == KEY_MOUSE) {
+ int y, x;
MEVENT event;
getmouse(&event);
#endif
(void) waddstr(win, keyname(c));
} else if (c > 0x80) {
- int c2 = (c & 0x7f);
+ unsigned c2 = (c & 0x7f);
if (isprint(c2))
- (void) wprintw(win, "M-%c", c2);
+ (void) wprintw(win, "M-%c", UChar(c2));
else
(void) wprintw(win, "M-%s", unctrl(c2));
waddstr(win, " (high-half character)");
(void) wprintw(win, "%c (ASCII printable character)", c);
else
(void) wprintw(win, "%s (ASCII control character)",
- unctrl(c));
+ unctrl(UChar(c)));
}
wgetch_wrap(win, first_y);
}
*/
#ifdef KEY_RESIZE
static void
-resize_wide_boxes(int level, WINDOW *win)
+resize_wide_boxes(unsigned level, WINDOW *win)
{
unsigned n;
int base = 5;
slk_clear();
slk_noutrefresh();
- for (n = 0; (int) n < level; ++n) {
+ for (n = 0; n < level; ++n) {
wresize(winstack[n].frame, high, wide);
wresize(winstack[n].text, high - 2, wide - 2);
high -= 2;
#endif /* KEY_RESIZE */
static char *
-wcstos(const wchar_t * src)
+wcstos(const wchar_t *src)
{
int need;
mbstate_t state;
memset(&state, 0, sizeof(state));
if ((need = wcsrtombs(0, &tmp, 0, &state)) > 0) {
- result = (char *) calloc(need + 1, 1);
+ unsigned have = need;
+ result = (char *) calloc(have + 1, 1);
tmp = src;
- if (wcsrtombs(result, &tmp, need, &state) != (size_t) need) {
+ if (wcsrtombs(result, &tmp, have, &state) != have) {
free(result);
result = 0;
}
}
static void
-wget_wch_test(int level, WINDOW *win, int delay)
+wget_wch_test(unsigned level, WINDOW *win, int delay)
{
- wchar_t buf[BUFSIZ];
+ wchar_t wchar_buf[BUFSIZ];
+ wint_t wint_buf[BUFSIZ];
int first_y, first_x;
wint_t c;
int incount = 0;
} else if (c == 'g') {
waddstr(win, "getstr test: ");
echo();
- wgetn_wstr(win, (wint_t *) buf, sizeof(buf) - 1);
+ code = wgetn_wstr(win, wint_buf, sizeof(wint_buf) - 1);
noecho();
- if ((temp = wcstos(buf)) != 0) {
- wprintw(win, "I saw %d characters:\n\t`%s'.", wcslen(buf), temp);
- free(temp);
+ if (code == ERR) {
+ wprintw(win, "wgetn_wstr returns an error.");
} else {
- wprintw(win, "I saw %d characters (cannot convert).", wcslen(buf));
+ int n;
+ for (n = 0; (wchar_buf[n] = wint_buf[n]) != 0; ++n) ;
+ if ((temp = wcstos(wchar_buf)) != 0) {
+ wprintw(win, "I saw %d characters:\n\t`%s'.",
+ wcslen(wchar_buf), temp);
+ free(temp);
+ } else {
+ wprintw(win, "I saw %d characters (cannot convert).",
+ wcslen(wchar_buf));
+ }
}
wclrtoeol(win);
wgetch_wrap(win, first_y);
resize_wide_boxes(level, win);
}
#endif
- (void) waddstr(win, key_name(c));
+ (void) waddstr(win, key_name((wchar_t) c));
} else {
if (c < 256 && iscntrl(c)) {
(void) wprintw(win, "%s (control character)", unctrl(c));
#define MAX_ATTRSTRING 31
#define LEN_ATTRSTRING 26
-static char attr_test_string[] = "abcde fghij klmno pqrst uvwxy z";
+static char attr_test_string[MAX_ATTRSTRING + 1];
+
+static void
+attr_legend(WINDOW *helpwin)
+{
+ int row = 1;
+ int col = 1;
+
+ mvwprintw(helpwin, row++, col,
+ "q or ESC to exit.");
+ mvwprintw(helpwin, row++, col,
+ "^L repaints.");
+ ++row;
+ mvwprintw(helpwin, row++, col,
+ "Modify the test strings:");
+ mvwprintw(helpwin, row++, col,
+ " A digit sets gaps on each side of displayed attributes");
+ mvwprintw(helpwin, row++, col,
+ " </> shifts the text left/right. ");
+ ++row;
+ mvwprintw(helpwin, row++, col,
+ "Toggles:");
+ if (has_colors()) {
+ mvwprintw(helpwin, row++, col,
+ " f/F/b/F toggle foreground/background background color");
+ mvwprintw(helpwin, row++, col,
+ " t/T toggle text/background color attribute");
+ }
+ mvwprintw(helpwin, row++, col,
+ " a/A toggle ACS (alternate character set) mapping");
+ mvwprintw(helpwin, row++, col,
+ " v/V toggle video attribute to combine with each line");
+}
+
+static void
+show_color_attr(int fg, int bg, int tx)
+{
+ if (has_colors()) {
+ printw(" Colors (fg %d, bg %d", fg, bg);
+ if (tx >= 0)
+ printw(", text %d", tx);
+ printw("),");
+ }
+}
+
+static bool
+cycle_color_attr(int ch, int *fg, int *bg, int *tx)
+{
+ bool error = FALSE;
+
+ if (has_colors()) {
+ switch (ch) {
+ case 'f':
+ *fg = (*fg + 1);
+ break;
+ case 'F':
+ *fg = (*fg - 1);
+ break;
+ case 'b':
+ *bg = (*bg + 1);
+ break;
+ case 'B':
+ *bg = (*bg - 1);
+ break;
+ case 't':
+ *tx = (*tx + 1);
+ break;
+ case 'T':
+ *tx = (*tx - 1);
+ break;
+ default:
+ beep();
+ error = TRUE;
+ break;
+ }
+ if (*fg >= COLORS)
+ *fg = min_colors;
+ if (*fg < min_colors)
+ *fg = COLORS - 1;
+ if (*bg >= COLORS)
+ *bg = min_colors;
+ if (*bg < min_colors)
+ *bg = COLORS - 1;
+ if (*tx >= COLORS)
+ *tx = -1;
+ if (*tx < -1)
+ *tx = COLORS - 1;
+ } else {
+ beep();
+ error = TRUE;
+ }
+ return error;
+}
static void
adjust_attr_string(int adjust)
if (first >= ' ' && last <= '~') { /* 32..126 */
int j, k;
- for (j = 0, k = first; k <= last; ++j, ++k) {
+ for (j = 0, k = first; j < MAX_ATTRSTRING && k <= last; ++j, ++k) {
attr_test_string[j] = k;
if (((k + 1 - first) % 5) == 0) {
++j;
}
}
+static void
+init_attr_string(void)
+{
+ attr_test_string[0] = 'a';
+ adjust_attr_string(0);
+}
+
static int
-show_attr(int row, int skip, chtype attr, const char *name)
+show_attr(int row, int skip, bool arrow, chtype attr, const char *name)
{
int ncv = tigetnum("ncv");
- chtype test = attr & ~A_ALTCHARSET;
+ chtype test = attr & (chtype) (~A_ALTCHARSET);
+ if (arrow)
+ mvprintw(row, 5, "-->");
mvprintw(row, 8, "%s mode:", name);
mvprintw(row, 24, "|");
if (skip)
printw("%*s", skip, " ");
- attrset(attr);
/*
- * If we're to write a string in the alternate character set, it is not
- * sufficient to just set A_ALTCHARSET. We have to perform the mapping
- * that corresponds. This is not needed for vt100-compatible devices
- * because the acs_map[] is 1:1, but for PC-style devices such as Linux
- * console, the acs_map[] is scattered about the range.
- *
- * The addch/addstr functions do not themselves do this mapping, since it
- * is possible to turn off the A_ALTCHARSET flag for the characters which
- * are added, and it would be an unexpected result to have the mapped
- * characters visible on the screen.
+ * Just for testing, write text using the alternate character set one
+ * character at a time (to pass its rendition directly), and use the
+ * string operation for the other attributes.
*/
if (attr & A_ALTCHARSET) {
const char *s;
- int ch;
+ chtype ch;
for (s = attr_test_string; *s != '\0'; ++s) {
ch = UChar(*s);
- addch(ch);
+ addch(ch | attr);
}
} else {
+ attrset(attr);
addstr(attr_test_string);
+ attroff(attr);
}
- attroff(attr);
if (skip)
printw("%*s", skip, " ");
printw("|");
if (test != A_NORMAL) {
if (!(termattrs() & test)) {
printw(" (N/A)");
- } else if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
- static const chtype table[] =
- {
- A_STANDOUT,
- A_UNDERLINE,
- A_REVERSE,
- A_BLINK,
- A_DIM,
- A_BOLD,
- A_INVIS,
- A_PROTECT,
- A_ALTCHARSET
- };
- unsigned n;
- bool found = FALSE;
- for (n = 0; n < SIZEOF(table); n++) {
- if ((table[n] & attr) != 0
- && ((1 << n) & ncv) != 0) {
- found = TRUE;
- break;
+ } else {
+ if (ncv > 0 && (getbkgd(stdscr) & A_COLOR)) {
+ static const chtype table[] =
+ {
+ A_STANDOUT,
+ A_UNDERLINE,
+ A_REVERSE,
+ A_BLINK,
+ A_DIM,
+ A_BOLD,
+ A_INVIS,
+ A_PROTECT,
+ A_ALTCHARSET
+ };
+ unsigned n;
+ bool found = FALSE;
+ for (n = 0; n < SIZEOF(table); n++) {
+ if ((table[n] & attr) != 0
+ && ((1 << n) & ncv) != 0) {
+ found = TRUE;
+ break;
+ }
}
+ if (found)
+ printw(" (NCV)");
}
- if (found)
- printw(" (NCV)");
+ if ((termattrs() & test) != test)
+ printw(" (Part)");
}
}
return row + 2;
}
+/* *INDENT-OFF* */
+static const struct {
+ attr_t attr;
+ NCURSES_CONST char * name;
+} attrs_to_test[] = {
+ { A_STANDOUT, "STANDOUT" },
+ { A_REVERSE, "REVERSE" },
+ { A_BOLD, "BOLD" },
+ { A_UNDERLINE, "UNDERLINE" },
+ { A_DIM, "DIM" },
+ { A_BLINK, "BLINK" },
+ { A_PROTECT, "PROTECT" },
+ { A_INVIS, "INVISIBLE" },
+ { A_NORMAL, "NORMAL" },
+};
+/* *INDENT-ON* */
static bool
-attr_getc(int *skip, int *fg, int *bg, int *ac)
+attr_getc(int *skip, int *fg, int *bg, int *tx, int *ac, unsigned *kc)
{
- int ch = Getchar();
-
- if (isdigit(ch)) {
- *skip = (ch - '0');
- } else if (ch == CTRL('L')) {
- touchwin(stdscr);
- touchwin(curscr);
- wrefresh(curscr);
- } else {
- switch (ch) {
- case 'a':
- *ac = 0;
- break;
- case 'A':
- *ac = A_ALTCHARSET;
- break;
- case '<':
- adjust_attr_string(-1);
- break;
- case '>':
- adjust_attr_string(1);
- break;
- default:
- if (has_colors()) {
- switch (ch) {
- case 'f':
- *fg = (*fg + 1);
- break;
- case 'F':
- *fg = (*fg - 1);
- break;
- case 'b':
- *bg = (*bg + 1);
- break;
- case 'B':
- *bg = (*bg - 1);
- break;
- default:
- return FALSE;
+ bool result = TRUE;
+ bool error = FALSE;
+ WINDOW *helpwin;
+
+ do {
+ int ch = Getchar();
+
+ error = FALSE;
+ if (ch < 256 && isdigit(ch)) {
+ *skip = (ch - '0');
+ } else {
+ switch (ch) {
+ case CTRL('L'):
+ Repaint();
+ break;
+ case '?':
+ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+ box(helpwin, 0, 0);
+ attr_legend(helpwin);
+ wGetchar(helpwin);
+ delwin(helpwin);
}
- if (*fg >= max_colors)
- *fg = 0;
- if (*fg < 0)
- *fg = max_colors - 1;
- if (*bg >= max_colors)
- *bg = 0;
- if (*bg < 0)
- *bg = max_colors - 1;
+ break;
+ case 'a':
+ *ac = 0;
+ break;
+ case 'A':
+ *ac = A_ALTCHARSET;
+ break;
+ case 'v':
+ if (*kc == 0)
+ *kc = SIZEOF(attrs_to_test) - 1;
+ else
+ *kc -= 1;
+ break;
+ case 'V':
+ *kc += 1;
+ if (*kc >= SIZEOF(attrs_to_test))
+ *kc = 0;
+ break;
+ case '<':
+ adjust_attr_string(-1);
+ break;
+ case '>':
+ adjust_attr_string(1);
+ break;
+ case 'q':
+ case ESCAPE:
+ result = FALSE;
+ break;
+ default:
+ error = cycle_color_attr(ch, fg, bg, tx);
+ break;
}
- break;
}
- }
- return TRUE;
+ } while (error);
+ return result;
}
static void
int skip = tigetnum("xmc");
int fg = COLOR_BLACK; /* color pair 0 is special */
int bg = COLOR_BLACK;
+ int tx = -1;
int ac = 0;
- bool *pairs = (bool *) calloc(max_pairs, sizeof(bool));
- pairs[0] = TRUE;
+ unsigned j, k;
if (skip < 0)
skip = 0;
n = skip; /* make it easy */
+ k = SIZEOF(attrs_to_test) - 1;
+ init_attr_string();
do {
int row = 2;
- int normal = A_NORMAL | BLANK;
+ chtype normal = A_NORMAL | BLANK;
+ chtype extras = ac;
if (has_colors()) {
- int pair = (fg * max_colors) + bg;
- if (!pairs[pair]) {
- init_pair(pair, fg, bg);
- pairs[pair] = TRUE;
+ int pair = (fg != COLOR_BLACK || bg != COLOR_BLACK);
+ if (pair != 0) {
+ pair = 1;
+ if (init_pair(pair, fg, bg) == ERR) {
+ beep();
+ } else {
+ normal |= COLOR_PAIR(pair);
+ }
+ }
+ if (tx >= 0) {
+ pair = 2;
+ if (init_pair(pair, tx, bg) == ERR) {
+ beep();
+ } else {
+ extras |= COLOR_PAIR(pair);
+ }
}
- normal |= COLOR_PAIR(pair);
}
bkgd(normal);
bkgdset(normal);
box(stdscr, 0, 0);
mvaddstr(0, 20, "Character attribute test display");
- row = show_attr(row, n, ac | A_STANDOUT, "STANDOUT");
- row = show_attr(row, n, ac | A_REVERSE, "REVERSE");
- row = show_attr(row, n, ac | A_BOLD, "BOLD");
- row = show_attr(row, n, ac | A_UNDERLINE, "UNDERLINE");
- row = show_attr(row, n, ac | A_DIM, "DIM");
- row = show_attr(row, n, ac | A_BLINK, "BLINK");
- row = show_attr(row, n, ac | A_PROTECT, "PROTECT");
- row = show_attr(row, n, ac | A_INVIS, "INVISIBLE");
- row = show_attr(row, n, ac | A_NORMAL, "NORMAL");
+ for (j = 0; j < SIZEOF(attrs_to_test); ++j) {
+ row = show_attr(row, n, j == k,
+ extras |
+ attrs_to_test[j].attr |
+ attrs_to_test[k].attr,
+ attrs_to_test[j].name);
+ }
mvprintw(row, 8,
"This terminal does %shave the magic-cookie glitch",
tigetnum("xmc") > -1 ? "" : "not ");
- mvprintw(row + 1, 8,
- "Enter a digit to set gaps on each side of displayed attributes");
- mvprintw(row + 2, 8,
- "^L repaints, </> shifts, ");
- if (has_colors())
- printw("f/F/b/F toggle color (now %d/%d), a/A ACS (%d)",
- fg, bg, ac != 0);
- else
- printw("a/A ACS (%d)", ac != 0);
+ mvprintw(row + 1, 8, "Enter '?' for help.");
+ show_color_attr(fg, bg, tx);
+ printw(" ACS (%d)", ac != 0);
refresh();
- } while (attr_getc(&n, &fg, &bg, &ac));
+ } while (attr_getc(&n, &fg, &bg, &tx, &ac, &k));
- free((char *) pairs);
bkgdset(A_NORMAL | BLANK);
erase();
endwin();
}
+#if USE_WIDEC_SUPPORT
+static wchar_t wide_attr_test_string[MAX_ATTRSTRING + 1];
+
+static void
+wide_adjust_attr_string(int adjust)
+{
+ int first = ((int) UChar(wide_attr_test_string[0])) + adjust;
+ int last = first + LEN_ATTRSTRING;
+
+ if (first >= ' ' && last <= '~') { /* 32..126 */
+ int j, k;
+ for (j = 0, k = first; j < MAX_ATTRSTRING && k <= last; ++j, ++k) {
+ wide_attr_test_string[j] = k;
+ if (((k + 1 - first) % 5) == 0) {
+ ++j;
+ if (j < MAX_ATTRSTRING)
+ wide_attr_test_string[j] = ' ';
+ }
+ }
+ while (j < MAX_ATTRSTRING)
+ wide_attr_test_string[j++] = ' ';
+ wide_attr_test_string[j] = '\0';
+ } else {
+ beep();
+ }
+}
+
+static void
+wide_init_attr_string(void)
+{
+ wide_attr_test_string[0] = 'a';
+ wide_adjust_attr_string(0);
+}
+
+static void
+set_wide_background(short pair)
+{
+ cchar_t normal;
+ wchar_t blank[2];
+
+ blank[0] = ' ';
+ blank[1] = 0;
+ setcchar(&normal, blank, A_NORMAL, pair, 0);
+ bkgrnd(&normal);
+ bkgrndset(&normal);
+}
+
+static attr_t
+get_wide_background(void)
+{
+ attr_t result = A_NORMAL;
+ attr_t attr;
+ cchar_t ch;
+ short pair;
+ wchar_t wch;
+
+ if (getbkgrnd(&ch) != ERR) {
+ if (getcchar(&ch, &wch, &attr, &pair, 0) != ERR) {
+ result = attr;
+ }
+ }
+ return result;
+}
+
+static int
+wide_show_attr(int row, int skip, bool arrow, chtype attr, short pair, const char *name)
+{
+ int ncv = tigetnum("ncv");
+ chtype test = attr & ~WA_ALTCHARSET;
+
+ if (arrow)
+ mvprintw(row, 5, "-->");
+ mvprintw(row, 8, "%s mode:", name);
+ mvprintw(row, 24, "|");
+ if (skip)
+ printw("%*s", skip, " ");
+
+ /*
+ * Just for testing, write text using the alternate character set one
+ * character at a time (to pass its rendition directly), and use the
+ * string operation for the other attributes.
+ */
+ if (attr & WA_ALTCHARSET) {
+ const wchar_t *s;
+ cchar_t ch;
+
+ for (s = wide_attr_test_string; *s != L'\0'; ++s) {
+ wchar_t fill[2];
+ fill[0] = *s;
+ fill[1] = L'\0';
+ setcchar(&ch, fill, attr, pair, 0);
+ add_wch(&ch);
+ }
+ } else {
+ attr_t old_attr;
+ short old_pair;
+
+ attr_get(&old_attr, &old_pair, 0);
+ attr_set(attr, pair, 0);
+ addwstr(wide_attr_test_string);
+ attr_set(old_attr, old_pair, 0);
+ }
+ if (skip)
+ printw("%*s", skip, " ");
+ printw("|");
+ if (test != A_NORMAL) {
+ if (!(term_attrs() & test)) {
+ printw(" (N/A)");
+ } else {
+ if (ncv > 0 && (get_wide_background() & A_COLOR)) {
+ static const attr_t table[] =
+ {
+ WA_STANDOUT,
+ WA_UNDERLINE,
+ WA_REVERSE,
+ WA_BLINK,
+ WA_DIM,
+ WA_BOLD,
+ WA_INVIS,
+ WA_PROTECT,
+ WA_ALTCHARSET
+ };
+ unsigned n;
+ bool found = FALSE;
+ for (n = 0; n < SIZEOF(table); n++) {
+ if ((table[n] & attr) != 0
+ && ((1 << n) & ncv) != 0) {
+ found = TRUE;
+ break;
+ }
+ }
+ if (found)
+ printw(" (NCV)");
+ }
+ if ((term_attrs() & test) != test)
+ printw(" (Part)");
+ }
+ }
+ return row + 2;
+}
+
+static bool
+wide_attr_getc(int *skip, int *fg, int *bg, int *tx, int *ac, unsigned *kc)
+{
+ bool result = TRUE;
+ bool error = FALSE;
+ WINDOW *helpwin;
+
+ do {
+ int ch = Getchar();
+
+ error = FALSE;
+ if (ch < 256 && isdigit(ch)) {
+ *skip = (ch - '0');
+ } else {
+ switch (ch) {
+ case CTRL('L'):
+ Repaint();
+ break;
+ case '?':
+ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+ box_set(helpwin, 0, 0);
+ attr_legend(helpwin);
+ wGetchar(helpwin);
+ delwin(helpwin);
+ }
+ break;
+ case 'a':
+ *ac = 0;
+ break;
+ case 'A':
+ *ac = A_ALTCHARSET;
+ break;
+ case 'v':
+ if (*kc == 0)
+ *kc = SIZEOF(attrs_to_test) - 1;
+ else
+ *kc -= 1;
+ break;
+ case 'V':
+ *kc += 1;
+ if (*kc >= SIZEOF(attrs_to_test))
+ *kc = 0;
+ break;
+ case '<':
+ wide_adjust_attr_string(-1);
+ break;
+ case '>':
+ wide_adjust_attr_string(1);
+ break;
+ case 'q':
+ case ESCAPE:
+ result = FALSE;
+ break;
+ default:
+ error = cycle_color_attr(ch, fg, bg, tx);
+ break;
+ }
+ }
+ } while (error);
+ return result;
+}
+
+static void
+wide_attr_test(void)
+/* test text attributes using wide-character calls */
+{
+ int n;
+ int skip = tigetnum("xmc");
+ int fg = COLOR_BLACK; /* color pair 0 is special */
+ int bg = COLOR_BLACK;
+ int tx = -1;
+ int ac = 0;
+ unsigned j, k;
+
+ if (skip < 0)
+ skip = 0;
+
+ n = skip; /* make it easy */
+ k = SIZEOF(attrs_to_test) - 1;
+ wide_init_attr_string();
+
+ do {
+ int row = 2;
+ short pair = 0;
+ short extras = 0;
+
+ if (has_colors()) {
+ pair = (fg != COLOR_BLACK || bg != COLOR_BLACK);
+ if (pair != 0) {
+ pair = 1;
+ if (init_pair(pair, fg, bg) == ERR) {
+ beep();
+ }
+ }
+ extras = pair;
+ if (tx >= 0) {
+ extras = 2;
+ if (init_pair(extras, tx, bg) == ERR) {
+ beep();
+ }
+ }
+ }
+ set_wide_background(pair);
+ erase();
+
+ box_set(stdscr, 0, 0);
+ mvaddstr(0, 20, "Character attribute test display");
+
+ for (j = 0; j < SIZEOF(attrs_to_test); ++j) {
+ row = wide_show_attr(row, n, j == k,
+ ac |
+ attrs_to_test[j].attr |
+ attrs_to_test[k].attr,
+ extras,
+ attrs_to_test[j].name);
+ }
+
+ mvprintw(row, 8,
+ "This terminal does %shave the magic-cookie glitch",
+ tigetnum("xmc") > -1 ? "" : "not ");
+ mvprintw(row + 1, 8, "Enter '?' for help.");
+ show_color_attr(fg, bg, tx);
+ printw(" ACS (%d)", ac != 0);
+
+ refresh();
+ } while (wide_attr_getc(&n, &fg, &bg, &tx, &ac, &k));
+
+ set_wide_background(0);
+ erase();
+ endwin();
+}
+#endif
+
/****************************************************************************
*
* Color support tests
};
static void
-show_color_name(int y, int x, int color)
+show_color_name(int y, int x, int color, bool wide)
{
- if (max_colors > 8)
- mvprintw(y, x, "%02d ", color);
- else
- mvaddstr(y, x, the_color_names[color]);
+ if (move(y, x) != ERR) {
+ char temp[80];
+ int width = 8;
+
+ if (wide) {
+ sprintf(temp, "%02d", color);
+ width = 4;
+ } else if (color >= 8) {
+ sprintf(temp, "[%02d]", color);
+ } else {
+ strcpy(temp, the_color_names[color]);
+ }
+ printw("%-*.*s", width, width, temp);
+ }
}
+static void
+color_legend(WINDOW *helpwin)
+{
+ int row = 1;
+ int col = 1;
+
+ mvwprintw(helpwin, row++, col,
+ "q or ESC to exit.");
+ ++row;
+ mvwprintw(helpwin, row++, col,
+ "Use up/down arrow to scroll through the display if it is");
+ mvwprintw(helpwin, row++, col,
+ "longer than one screen. Control/N and Control/P can be used");
+ mvwprintw(helpwin, row++, col,
+ "in place up up/down arrow. Use pageup/pagedown to scroll a");
+ mvwprintw(helpwin, row++, col,
+ "full screen; control/B and control/F can be used here.");
+ ++row;
+ mvwprintw(helpwin, row++, col,
+ "Toggles:");
+ mvwprintw(helpwin, row++, col,
+ " b/B toggle bold off/on");
+ mvwprintw(helpwin, row++, col,
+ " n/N toggle text/number on/off");
+ mvwprintw(helpwin, row++, col,
+ " w/W toggle width between 8/16 colors");
+}
+
+#define set_color_test(name, value) if (name != value) { name = value; base_row = 0; }
+
+/* generate a color test pattern */
static void
color_test(void)
+{
+ int c;
+ int i;
+ int top = 0, width;
+ int base_row = 0;
+ int grid_top = top + 3;
+ int page_size = (LINES - grid_top);
+ int pairs_max = PAIR_NUMBER(A_COLOR) + 1;
+ int row_limit;
+ int per_row;
+ char numbered[80];
+ const char *hello;
+ bool done = FALSE;
+ bool opt_bold = FALSE;
+ bool opt_wide = FALSE;
+ bool opt_nums = FALSE;
+ WINDOW *helpwin;
+
+ if (pairs_max > COLOR_PAIRS)
+ pairs_max = COLOR_PAIRS;
+
+ while (!done) {
+ int shown = 0;
+
+ /* this assumes an 80-column line */
+ if (opt_wide) {
+ width = 4;
+ hello = "Test";
+ per_row = (COLORS > 8) ? 16 : 8;
+ } else {
+ width = 8;
+ hello = "Hello";
+ per_row = 8;
+ }
+
+ row_limit = (pairs_max + per_row - 1) / per_row;
+
+ move(0, 0);
+ (void) printw("There are %d color pairs and %d colors\n",
+ pairs_max, COLORS);
+
+ clrtobot();
+ (void) mvprintw(top + 1, 0,
+ "%dx%d matrix of foreground/background colors, bold *%s*\n",
+ row_limit,
+ per_row,
+ opt_bold ? "on" : "off");
+
+ /* show color names/numbers across the top */
+ for (i = 0; i < per_row; i++)
+ show_color_name(top + 2, (i + 1) * width, i, opt_wide);
+
+ /* show a grid of colors, with color names/ numbers on the left */
+ for (i = (base_row * per_row); i < pairs_max; i++) {
+ int row = grid_top + (i / per_row) - base_row;
+ int col = (i % per_row + 1) * width;
+ int pair = i;
+
+ if (row >= 0 && move(row, col) != ERR) {
+ init_pair(pair, i % COLORS, i / COLORS);
+ attron((attr_t) COLOR_PAIR(pair));
+ if (opt_bold)
+ attron((attr_t) A_BOLD);
+
+ if (opt_nums) {
+ sprintf(numbered, "{%02X}", i);
+ hello = numbered;
+ }
+ printw("%-*.*s", width, width, hello);
+ attrset(A_NORMAL);
+
+ if ((i % per_row) == 0 && (i % COLORS) == 0) {
+ show_color_name(row, 0, i / COLORS, opt_wide);
+ }
+ ++shown;
+ } else if (shown) {
+ break;
+ }
+ }
+
+ switch (c = wGetchar(stdscr)) {
+ case 'b':
+ opt_bold = FALSE;
+ break;
+ case 'B':
+ opt_bold = TRUE;
+ break;
+ case 'n':
+ opt_nums = FALSE;
+ break;
+ case 'N':
+ opt_nums = TRUE;
+ break;
+ case ESCAPE:
+ case 'q':
+ done = TRUE;
+ continue;
+ case 'w':
+ set_color_test(opt_wide, FALSE);
+ break;
+ case 'W':
+ set_color_test(opt_wide, TRUE);
+ break;
+ case CTRL('p'):
+ case KEY_UP:
+ if (base_row <= 0) {
+ beep();
+ } else {
+ base_row -= 1;
+ }
+ break;
+ case CTRL('n'):
+ case KEY_DOWN:
+ if (base_row + page_size >= row_limit) {
+ beep();
+ } else {
+ base_row += 1;
+ }
+ break;
+ case CTRL('b'):
+ case KEY_PREVIOUS:
+ case KEY_PPAGE:
+ if (base_row <= 0) {
+ beep();
+ } else {
+ base_row -= (page_size - 1);
+ if (base_row < 0)
+ base_row = 0;
+ }
+ break;
+ case CTRL('f'):
+ case KEY_NEXT:
+ case KEY_NPAGE:
+ if (base_row + page_size >= row_limit) {
+ beep();
+ } else {
+ base_row += page_size - 1;
+ if (base_row + page_size >= row_limit) {
+ base_row = row_limit - page_size - 1;
+ }
+ }
+ break;
+ case '?':
+ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+ box(helpwin, 0, 0);
+ color_legend(helpwin);
+ wGetchar(helpwin);
+ delwin(helpwin);
+ }
+ break;
+ default:
+ beep();
+ continue;
+ }
+ }
+
+ erase();
+ endwin();
+}
+
+#if USE_WIDEC_SUPPORT
/* generate a color test pattern */
+static void
+wide_color_test(void)
{
+ int c;
int i;
- int base, top, width;
+ int top = 0, width;
+ int base_row = 0;
+ int grid_top = top + 3;
+ int page_size = (LINES - grid_top);
+ int pairs_max = COLOR_PAIRS;
+ int row_limit;
+ int per_row;
+ char numbered[80];
const char *hello;
+ bool done = FALSE;
+ bool opt_bold = FALSE;
+ bool opt_wide = FALSE;
+ bool opt_nums = FALSE;
+ WINDOW *helpwin;
- refresh();
- (void) printw("There are %d color pairs\n", COLOR_PAIRS);
+ while (!done) {
+ int shown = 0;
+
+ /* this assumes an 80-column line */
+ if (opt_wide) {
+ width = 4;
+ hello = "Test";
+ per_row = (COLORS > 8) ? 16 : 8;
+ } else {
+ width = 8;
+ hello = "Hello";
+ per_row = 8;
+ }
+
+ row_limit = (pairs_max + per_row - 1) / per_row;
- width = (max_colors > 8) ? 4 : 8;
- hello = (max_colors > 8) ? "Test" : "Hello";
+ move(0, 0);
+ (void) printw("There are %d color pairs and %d colors\n",
+ pairs_max, COLORS);
- for (base = 0; base < 2; base++) {
- top = (max_colors > 8) ? 0 : base * (max_colors + 3);
clrtobot();
(void) mvprintw(top + 1, 0,
- "%dx%d matrix of foreground/background colors, bright *%s*\n",
- max_colors, max_colors,
- base ? "on" : "off");
- for (i = 0; i < max_colors; i++)
- show_color_name(top + 2, (i + 1) * width, i);
- for (i = 0; i < max_colors; i++)
- show_color_name(top + 3 + i, 0, i);
- for (i = 1; i < max_pairs; i++) {
- init_pair(i, i % max_colors, i / max_colors);
- attron((attr_t) COLOR_PAIR(i));
- if (base)
- attron((attr_t) A_BOLD);
- mvaddstr(top + 3 + (i / max_colors), (i % max_colors + 1) *
- width, hello);
- attrset(A_NORMAL);
+ "%dx%d matrix of foreground/background colors, bold *%s*\n",
+ row_limit,
+ per_row,
+ opt_bold ? "on" : "off");
+
+ /* show color names/numbers across the top */
+ for (i = 0; i < per_row; i++)
+ show_color_name(top + 2, (i + 1) * width, i, opt_wide);
+
+ /* show a grid of colors, with color names/ numbers on the left */
+ for (i = (base_row * per_row); i < pairs_max; i++) {
+ int row = grid_top + (i / per_row) - base_row;
+ int col = (i % per_row + 1) * width;
+ int pair = i;
+
+ if (row >= 0 && move(row, col) != ERR) {
+ init_pair(pair, i % COLORS, i / COLORS);
+ color_set(pair, NULL);
+ if (opt_bold)
+ attr_on((attr_t) A_BOLD, NULL);
+
+ if (opt_nums) {
+ sprintf(numbered, "{%02X}", i);
+ hello = numbered;
+ }
+ printw("%-*.*s", width, width, hello);
+ attr_set(A_NORMAL, 0, NULL);
+
+ if ((i % per_row) == 0 && (i % COLORS) == 0) {
+ show_color_name(row, 0, i / COLORS, opt_wide);
+ }
+ ++shown;
+ } else if (shown) {
+ break;
+ }
+ }
+
+ switch (c = wGetchar(stdscr)) {
+ case 'b':
+ opt_bold = FALSE;
+ break;
+ case 'B':
+ opt_bold = TRUE;
+ break;
+ case 'n':
+ opt_nums = FALSE;
+ break;
+ case 'N':
+ opt_nums = TRUE;
+ break;
+ case ESCAPE:
+ case 'q':
+ done = TRUE;
+ continue;
+ case 'w':
+ set_color_test(opt_wide, FALSE);
+ break;
+ case 'W':
+ set_color_test(opt_wide, TRUE);
+ break;
+ case CTRL('p'):
+ case KEY_UP:
+ if (base_row <= 0) {
+ beep();
+ } else {
+ base_row -= 1;
+ }
+ break;
+ case CTRL('n'):
+ case KEY_DOWN:
+ if (base_row + page_size >= row_limit) {
+ beep();
+ } else {
+ base_row += 1;
+ }
+ break;
+ case CTRL('b'):
+ case KEY_PREVIOUS:
+ case KEY_PPAGE:
+ if (base_row <= 0) {
+ beep();
+ } else {
+ base_row -= (page_size - 1);
+ if (base_row < 0)
+ base_row = 0;
+ }
+ break;
+ case CTRL('f'):
+ case KEY_NEXT:
+ case KEY_NPAGE:
+ if (base_row + page_size >= row_limit) {
+ beep();
+ } else {
+ base_row += page_size - 1;
+ if (base_row + page_size >= row_limit) {
+ base_row = row_limit - page_size - 1;
+ }
+ }
+ break;
+ case '?':
+ if ((helpwin = newwin(LINES - 1, COLS - 2, 0, 0)) != 0) {
+ box(helpwin, 0, 0);
+ color_legend(helpwin);
+ wGetchar(helpwin);
+ delwin(helpwin);
+ }
+ break;
+ default:
+ beep();
+ continue;
}
- if ((max_colors > 8) || base)
- Pause();
}
erase();
endwin();
}
+#endif /* USE_WIDEC_SUPPORT */
static void
change_color(int current, int field, int value, int usebase)
beep();
}
+static void
+init_all_colors(void)
+{
+ int c;
+ for (c = 0; c < COLORS; ++c)
+ init_color(c,
+ all_colors[c].red,
+ all_colors[c].green,
+ all_colors[c].blue);
+}
+
+#define scaled_rgb(n) ((255 * (n)) / 1000)
+
static void
color_edit(void)
/* display the color test pattern, without trying to edit colors */
{
int i, this_c = 0, value = 0, current = 0, field = 0;
int last_c;
+ int top_color = 0;
+ int page_size = (LINES - 6);
+ init_all_colors();
refresh();
for (i = 0; i < max_colors; i++)
mvaddstr(0, 20, "Color RGB Value Editing");
attroff(A_BOLD);
- for (i = 0; i < max_colors; i++) {
- mvprintw(2 + i, 0, "%c %-8s:",
+ for (i = top_color;
+ (i - top_color < page_size)
+ && (i < max_colors); i++) {
+ char numeric[80];
+ sprintf(numeric, "[%d]", i);
+ mvprintw(2 + i - top_color, 0, "%c %-8s:",
(i == current ? '>' : ' '),
(i < (int) SIZEOF(the_color_names)
- ? the_color_names[i] : ""));
+ ? the_color_names[i] : numeric));
attrset(COLOR_PAIR(i));
addstr(" ");
attrset(A_NORMAL);
- /*
- * Note: this refresh should *not* be necessary! It works around
- * a bug in attribute handling that apparently causes the A_NORMAL
- * attribute sets to interfere with the actual emission of the
- * color setting somehow. This needs to be fixed.
- */
- refresh();
-
color_content(i, &red, &green, &blue);
addstr(" R = ");
if (current == i && field == 0)
if (current == i && field == 2)
attrset(A_NORMAL);
attrset(A_NORMAL);
- addstr(")");
+ printw(" ( %3d %3d %3d )",
+ scaled_rgb(red),
+ scaled_rgb(green),
+ scaled_rgb(blue));
}
- mvaddstr(max_colors + 3, 0,
+ mvaddstr(LINES - 3, 0,
"Use up/down to select a color, left/right to change fields.");
- mvaddstr(max_colors + 4, 0,
+ mvaddstr(LINES - 2, 0,
"Modify field by typing nnn=, nnn-, or nnn+. ? for help.");
- move(2 + current, 0);
+ move(2 + current - top_color, 0);
last_c = this_c;
this_c = Getchar();
- if (isdigit(this_c) && !isdigit(last_c))
+ if (this_c < 256 && isdigit(this_c) && !isdigit(last_c))
value = 0;
switch (this_c) {
+ case CTRL('b'):
+ case KEY_PPAGE:
+ if (current > 0)
+ current -= (page_size - 1);
+ else
+ beep();
+ break;
+
+ case CTRL('f'):
+ case KEY_NPAGE:
+ if (current < (max_colors - 1))
+ current += (page_size - 1);
+ else
+ beep();
+ break;
+
+ case CTRL('p'):
case KEY_UP:
current = (current == 0 ? (max_colors - 1) : current - 1);
break;
+ case CTRL('n'):
case KEY_DOWN:
current = (current == (max_colors - 1) ? 0 : current + 1);
break;
P("To increment or decrement a value, use the same procedure, but finish");
P("with a `+' or `-'.");
P("");
+ P("Press 'm' to invoke the top-level menu with the current color settings.");
P("To quit, do `x' or 'q'");
Pause();
erase();
break;
+ case 'm':
+ endwin();
+ main_menu(FALSE);
+ refresh();
+ break;
+
case 'x':
case 'q':
break;
beep();
break;
}
- mvprintw(LINES - 2, 0, "Number: %d", value);
+
+ if (current < 0)
+ current = 0;
+ if (current >= max_colors)
+ current = max_colors - 1;
+ if (current < top_color)
+ top_color = current;
+ if (current - top_color >= page_size)
+ top_color = current - (page_size - 1);
+
+ mvprintw(LINES - 1, 0, "Number: %d", value);
clrtoeol();
} while
(this_c != 'x' && this_c != 'q');
erase();
+
+ /*
+ * ncurses does not reset each color individually when calling endwin().
+ */
+ init_all_colors();
+
endwin();
}
#if HAVE_SLK_COLOR
case 'F':
if (has_colors()) {
- fg = (fg + 1) % max_colors;
+ fg = (fg + 1) % COLORS;
new_color = TRUE;
}
break;
case 'B':
if (has_colors()) {
- bg = (bg + 1) % max_colors;
+ bg = (bg + 1) % COLORS;
new_color = TRUE;
}
break;
}
#if USE_WIDEC_SUPPORT
+#define SLKLEN 8
static void
wide_slk_test(void)
/* exercise the soft keys */
{
int c, fmt = 1;
- wchar_t buf[9];
+ wchar_t buf[SLKLEN + 1];
char *s;
short fg = COLOR_BLACK;
short bg = COLOR_WHITE;
(void) mvaddstr(SLK_WORK, 0, "Please enter the label value: ");
*buf = 0;
if ((s = slk_label(c - '0')) != 0) {
- int j;
- for (j = 0; j < 8; ++j) {
- if ((buf[j] = UChar(s[j])) == 0)
+ char *temp = strdup(s);
+ size_t used = strlen(temp);
+ size_t want = SLKLEN;
+ size_t test;
+ mbstate_t state;
+
+ buf[0] = L'\0';
+ while (want > 0 && used != 0) {
+ const char *base = s;
+ memset(&state, 0, sizeof(state));
+ test = mbsrtowcs(0, &base, 0, &state);
+ if (test == (size_t) -1) {
+ temp[--used] = 0;
+ } else if (test > want) {
+ temp[--used] = 0;
+ } else {
+ memset(&state, 0, sizeof(state));
+ mbsrtowcs(buf, &base, want, &state);
break;
+ }
}
- buf[j] = 0;
+ free(temp);
}
- wGet_wstring(stdscr, buf, 8);
+ wGet_wstring(stdscr, buf, SLKLEN);
slk_wset((c - '0'), buf, fmt);
slk_refresh();
move(SLK_WORK, 0);
case 'F':
if (has_colors()) {
- fg = (fg + 1) % max_colors;
+ fg = (fg + 1) % COLORS;
new_color = TRUE;
}
break;
case 'B':
if (has_colors()) {
- bg = (bg + 1) % max_colors;
+ bg = (bg + 1) % COLORS;
new_color = TRUE;
}
break;
* terminal to perform functions. The remaining codes can be graphic.
*/
static void
-show_upper_chars(int first)
+show_upper_chars(unsigned first)
{
bool C1 = (first == 128);
- int code;
- int last = first + 31;
+ unsigned code;
+ unsigned last = first + 31;
int reply;
erase();
int row = 4 + ((code - first) % 16);
int col = ((code - first) / 16) * COLS / 2;
char tmp[80];
- sprintf(tmp, "%3d (0x%x)", code, code);
+ sprintf(tmp, "%3u (0x%x)", code, code);
mvprintw(row, col, "%*s: ", COLS / 4, tmp);
if (C1)
nodelay(stdscr, TRUE);
if (C1) {
/* (yes, this _is_ crude) */
while ((reply = Getchar()) != ERR) {
- addch(reply);
+ addch(UChar(reply));
napms(10);
}
nodelay(stdscr, FALSE);
do {
switch (c) {
+ case CTRL('L'):
+ Repaint();
+ break;
case 'a':
show_acs_chars();
break;
case '1':
case '2':
case '3':
- show_upper_chars((c - '0') * 32 + 128);
+ show_upper_chars((unsigned) ((c - '0') * 32 + 128));
break;
}
mvprintw(LINES - 3, 0,
#if USE_WIDEC_SUPPORT
static void
-show_upper_widechars(int first, int repeat)
+show_upper_widechars(int first, int repeat, int space)
{
cchar_t temp;
wchar_t code;
mvprintw(row, col, "%*s: ", COLS / 4, tmp);
setcchar(&temp, codes, attrs, 0, 0);
do {
+ /*
+ * Give non-spacing characters something to combine with. If we
+ * don't, they'll bunch up in a heap on the space after the ":".
+ * Mark them with reverse-video to make them simpler to find on
+ * the display.
+ */
+ if (wcwidth(code) == 0)
+ addch(space | A_REVERSE);
/*
* This could use add_wch(), but is done for comparison with the
* normal 'f' test (and to make a test-case for echo_wchar()).
}
static int
-show_1_wacs(int n, const char *name, const cchar_t * code)
+show_1_wacs(int n, const char *name, const cchar_t *code)
{
const int height = 16;
int row = 4 + (n % height);
int c = 'a';
int digit = 0;
int repeat = 0;
+ int space = ' ';
do {
switch (c) {
+ case CTRL('L'):
+ Repaint();
+ break;
case 'a':
show_wacs_chars();
break;
show_utf8_chars();
break;
default:
- if (isdigit(c))
+ if (c < 256 && isdigit(c))
digit = (c - '0');
else if (c == '+')
++digit;
++repeat;
else if (c == '<' && repeat > 0)
--repeat;
+ else if (c == '_')
+ space = (space == ' ') ? '_' : ' ';
else {
beep();
break;
}
- show_upper_widechars(digit * 32 + 128, repeat);
+ show_upper_widechars(digit * 32 + 128, repeat, space);
break;
}
mvprintw(LINES - 2, 0,
int pass;
for (pass = 0; pass < 2; pass++) {
- int normal = ((pass == 0 ? A_NORMAL : A_REVERSE)) | BLANK;
+ chtype normal = ((pass == 0 ? A_NORMAL : A_REVERSE)) | BLANK;
/* Use non-default colors if possible to exercise bce a little */
if (has_colors()) {
****************************************************************************/
#if USE_LIBPANEL
-static unsigned long nap_msec = 1;
+static int nap_msec = 1;
static NCURSES_CONST char *mod[] =
{
wait_a_while(msec)
--------------------------------------------------------------------------*/
static void
-wait_a_while(unsigned long msec GCC_UNUSED)
+wait_a_while(int msec GCC_UNUSED)
{
#if HAVE_NAPMS
if (nap_msec == 1)
#else
if (nap_msec == 1)
wGetchar(stdscr);
- else if (msec > 1000L)
- sleep((int) msec / 1000L);
+ else if (msec > 1000)
+ sleep((unsigned) msec / 1000);
else
sleep(1);
#endif
mkpanel(rows,cols,tly,tlx) - alloc a win and panel and associate them
--------------------------------------------------------------------------*/
static PANEL *
-mkpanel(int color, int rows, int cols, int tly, int tlx)
+mkpanel(unsigned color, int rows, int cols, int tly, int tlx)
{
WINDOW *win;
PANEL *pan = 0;
for (y = 2; y < getmaxy(win) - 1; y++) {
for (x = 1; x < getmaxx(win) - 1; x++) {
wmove(win, y, x);
- waddch(win, num);
+ waddch(win, UChar(num));
}
}
} /* end of fill_panel */
saywhat("d5; press any key to continue");
rmpanel(p5);
pflush();
+
+ rmpanel(p3);
+ pflush();
+
wait_a_while(nap_msec);
if (nap_msec == 1)
break;
"Use arrow keys (or U,D,L,R) to pan, q to quit, ! to shell-out.",
"Use +,- (or j,k) to grow/shrink the panner vertically.",
"Use <,> (or h,l) to grow/shrink the panner horizontally.",
- "Number repeats. Toggle legend:?, timer:t, scroll mark:s."
+ "Number repeats. Toggle legend:? filler:a timer:t scrollmark:s."
};
int n = (SIZEOF(legend) - (LINES - line));
if (line < LINES && (n >= 0)) {
do_v_line(from_y, from_x, ' ', to_y);
}
+static void
+fill_pad(WINDOW *panpad, bool pan_lines)
+{
+ int y, x;
+ unsigned gridcount = 0;
+
+ wmove(panpad, 0, 0);
+ for (y = 0; y < getmaxy(panpad); y++) {
+ for (x = 0; x < getmaxx(panpad); x++) {
+ if (y % GRIDSIZE == 0 && x % GRIDSIZE == 0) {
+ if (y == 0 && x == 0)
+ waddch(panpad, pan_lines ? ACS_ULCORNER : '+');
+ else if (y == 0)
+ waddch(panpad, pan_lines ? ACS_TTEE : '+');
+ else if (y == 0 || x == 0)
+ waddch(panpad, pan_lines ? ACS_LTEE : '+');
+ else
+ waddch(panpad, (chtype) ((pan_lines ? 'a' : 'A') +
+ (gridcount++ % 26)));
+ } else if (y % GRIDSIZE == 0)
+ waddch(panpad, pan_lines ? ACS_HLINE : '-');
+ else if (x % GRIDSIZE == 0)
+ waddch(panpad, pan_lines ? ACS_VLINE : '|');
+ else
+ waddch(panpad, ' ');
+ }
+ }
+}
+
static void
panner(WINDOW *pad,
int top_x, int top_y, int porty, int portx,
struct timeval before, after;
bool timing = TRUE;
#endif
+ bool pan_lines = FALSE;
bool scrollers = TRUE;
int basex = 0;
int basey = 0;
panner_legend(LINES - 2);
panner_legend(LINES - 1);
break;
+ case 'a':
+ pan_lines = !pan_lines;
+ fill_pad(pad, pan_lines);
+ pending_pan = FALSE;
+ break;
+
#if HAVE_GETTIMEOFDAY
case 't':
timing = !timing;
gettimeofday(&after, 0);
elapsed = (after.tv_sec + after.tv_usec / 1.0e6)
- (before.tv_sec + before.tv_usec / 1.0e6);
- move(LINES - 1, COLS - 20);
+ move(LINES - 1, COLS - 12);
printw("Secs: %2.03f", elapsed);
refresh();
}
demo_pad(void)
/* Demonstrate pads. */
{
- int i, j;
- unsigned gridcount = 0;
WINDOW *panpad = newpad(PAD_HIGH, PAD_WIDE);
if (panpad == 0) {
return;
}
- for (i = 0; i < PAD_HIGH; i++) {
- for (j = 0; j < PAD_WIDE; j++)
- if (i % GRIDSIZE == 0 && j % GRIDSIZE == 0) {
- if (i == 0 || j == 0)
- waddch(panpad, '+');
- else
- waddch(panpad, (chtype) ('A' + (gridcount++ % 26)));
- } else if (i % GRIDSIZE == 0)
- waddch(panpad, '-');
- else if (j % GRIDSIZE == 0)
- waddch(panpad, '|');
- else
- waddch(panpad, ' ');
- }
+ fill_pad(panpad, FALSE);
+
panner_legend(LINES - 4);
panner_legend(LINES - 3);
panner_legend(LINES - 2);
static const char *animals[] =
{
- "Lions", "Tigers", "Bears", "(Oh my!)", "Newts", "Platypi", "Lemurs",
+ "Lions",
+ "Tigers",
+ "Bears",
+ "(Oh my!)",
+ "Newts",
+ "Platypi",
+ "Lemurs",
+ "(Oh really?!)",
+ "Leopards",
+ "Panthers",
+ "Pumas",
+ "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
+ "Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs, Lions, Tigers, Bears, (Oh my!), Newts, Platypi, Lemurs",
(char *) 0
};
post_menu(m);
while ((c = menu_driver(m, menu_virtualize(wGetchar(menuwin)))) != E_UNKNOWN_COMMAND) {
+ if (c == E_NOT_POSTED)
+ break;
if (c == E_REQUEST_DENIED)
beep();
continue;
#define T_TBL(name) { #name, name }
static struct {
const char *name;
- int mask;
+ unsigned mask;
} t_tbl[] = {
T_TBL(TRACE_DISABLE),
};
static char *
-tracetrace(int tlevel)
+tracetrace(unsigned tlevel)
{
static char *buf;
int n;
MENU *m;
ITEM *items[SIZEOF(t_tbl)];
ITEM **ip = items;
- int mrows, mcols, newtrace;
+ int mrows, mcols;
+ unsigned newtrace;
int n;
WINDOW *menuwin;
post_menu(m);
for (ip = menu_items(m); *ip; ip++) {
- int mask = t_tbl[item_index(*ip)].mask;
+ unsigned mask = t_tbl[item_index(*ip)].mask;
if (mask == 0)
set_item_value(*ip, _nc_tracing == 0);
else if ((mask & _nc_tracing) == mask)
static FIELD *
make_label(int frow, int fcol, NCURSES_CONST char *label)
{
- FIELD *f = new_field(1, strlen(label), frow, fcol, 0, 0);
+ FIELD *f = new_field(1, (int) strlen(label), frow, fcol, 0, 0);
if (f) {
set_field_buffer(f, 0, label);
- set_field_opts(f, field_opts(f) & ~O_ACTIVE);
+ set_field_opts(f, (int) (field_opts(f) & ~O_ACTIVE));
}
return (f);
}
strcpy(temp, field_buffer(me, 1));
len = (long) (char *) field_userptr(me);
if (c <= KEY_MAX) {
- if (isgraph(c)) {
+ if (isgraph(c) && (len + 1) < (int) sizeof(temp)) {
temp[len++] = c;
temp[len] = 0;
set_field_buffer(me, 1, temp);
int c = wGetchar(w);
unsigned n;
FIELD *me = current_field(f);
+ bool current = TRUE;
if (c == CTRL(']')) {
- if (mode == REQ_INS_MODE)
+ if (mode == REQ_INS_MODE) {
mode = REQ_OVL_MODE;
- else
+ } else {
mode = REQ_INS_MODE;
+ }
c = mode;
} else {
for (n = 0; n < SIZEOF(lookup); n++) {
}
}
}
+ mvprintw(0, COLS - 6, "(%s)", mode == REQ_INS_MODE ? "INS" : "OVL");
/*
* Force the field that the user is typing into to be in reverse video,
* while the other fields are shown underlined.
*/
- if (c <= KEY_MAX) {
+ switch (c) {
+ case REQ_BEG_FIELD:
+ case REQ_CLR_EOF:
+ case REQ_CLR_EOL:
+ case REQ_CLR_FIELD:
+ case REQ_DEL_CHAR:
+ case REQ_DEL_LINE:
+ case REQ_DEL_PREV:
+ case REQ_DEL_WORD:
+ case REQ_END_FIELD:
+ case REQ_INS_CHAR:
+ case REQ_INS_LINE:
+ case REQ_LEFT_CHAR:
+ case REQ_LEFT_FIELD:
+ case REQ_NEXT_WORD:
+ case REQ_RIGHT_CHAR:
+ current = TRUE;
+ break;
+ default:
+ current = (c < KEY_MAX);
+ break;
+ }
+ if (current) {
c = edit_secure(me, c);
set_field_back(me, A_REVERSE);
- } else if (c <= MAX_FORM_COMMAND) {
+ } else {
c = edit_secure(me, c);
set_field_back(me, A_UNDERLINE);
}
unsigned n = 0;
move(18, 0);
- addstr("Defined form-traversal keys: ^Q/ESC- exit form\n");
+ addstr("Defined edit/traversal keys: ^Q/ESC- exit form\n");
addstr("^N -- go to next field ^P -- go to previous field\n");
addstr("Home -- go to first field End -- go to last field\n");
addstr("^L -- go to field to left ^R -- go to field to right\n");
addstr("^H -- delete previous char ^Y -- delete line\n");
addstr("^G -- delete current word ^C -- clear to end of line\n");
addstr("^K -- clear to end of field ^X -- clear field\n");
- addstr("Arrow keys move within a field as you would expect.");
+ addstr("Arrow keys move within a field as you would expect. ^] toggles overlay mode.");
mvaddstr(4, 57, "Forms Entry Test");
free_form(form);
for (c = 0; f[c] != 0; c++)
free_field(f[c]);
+ free_fieldtype(fty_middle);
+ free_fieldtype(fty_passwd);
noraw();
nl();
}
for (y = 0; y < y1; y++) {
wmove(win, y, 0);
for (x = 0; x < x1; x++)
- waddch(win, ch);
+ waddch(win, UChar(ch));
}
}
if (((x > (x1 - 1) / 3) && (x <= (2 * (x1 - 1)) / 3))
|| (((y > (y1 - 1) / 3) && (y <= (2 * (y1 - 1)) / 3)))) {
wmove(win, y, x);
- waddch(win, ch);
+ waddch(win, UChar(ch));
}
}
}
attr_test();
break;
+#if USE_WIDEC_SUPPORT
+ case 'B':
+ wide_attr_test();
+ break;
+#endif
+
case 'c':
if (!has_colors())
Cannot("does not support color.");
color_test();
break;
+#if USE_WIDEC_SUPPORT
+ case 'C':
+ if (!has_colors())
+ Cannot("does not support color.");
+ else
+ wide_color_test();
+ break;
+#endif
+
case 'd':
if (!has_colors())
Cannot("does not support color.");
," -e fmt specify format for soft-keys test (e)"
," -f rip-off footer line (can repeat)"
," -h rip-off header line (can repeat)"
+ ," -p file rgb values to use in 'd' rather than ncurses's builtin"
+#if USE_LIBPANEL
," -s msec specify nominal time for panel-demo (default: 1, to hold)"
+#endif
#ifdef TRACE
," -t mask specify default trace-level (may toggle with ^T)"
#endif
return OK;
}
+static void
+main_menu(bool top)
+{
+ int command;
+
+ do {
+ (void) puts("This is the ncurses main menu");
+ (void) puts("a = keyboard and mouse input test");
+#if USE_WIDEC_SUPPORT
+ (void) puts("A = wide-character keyboard and mouse input test");
+#endif
+ (void) puts("b = character attribute test");
+#if USE_WIDEC_SUPPORT
+ (void) puts("B = wide-character attribute test");
+#endif
+ (void) puts("c = color test pattern");
+#if USE_WIDEC_SUPPORT
+ (void) puts("C = color test pattern using wide-character calls");
+#endif
+ if (top)
+ (void) puts("d = edit RGB color values");
+ (void) puts("e = exercise soft keys");
+#if USE_WIDEC_SUPPORT
+ (void) puts("E = exercise soft keys using wide-characters");
+#endif
+ (void) puts("f = display ACS characters");
+#if USE_WIDEC_SUPPORT
+ (void) puts("F = display Wide-ACS characters");
+#endif
+ (void) puts("g = display windows and scrolling");
+ (void) puts("i = test of flushinp()");
+ (void) puts("k = display character attributes");
+#if USE_LIBMENU
+ (void) puts("m = menu code test");
+#endif
+#if USE_LIBPANEL
+ (void) puts("o = exercise panels library");
+ (void) puts("p = exercise pad features");
+ (void) puts("q = quit");
+#endif
+#if USE_LIBFORM
+ (void) puts("r = exercise forms code");
+#endif
+ (void) puts("s = overlapping-refresh test");
+#if USE_LIBMENU && defined(TRACE)
+ (void) puts("t = set trace level");
+#endif
+ (void) puts("? = repeat this command summary");
+
+ (void) fputs("> ", stdout);
+ (void) fflush(stdout); /* necessary under SVr4 curses */
+
+ /*
+ * This used to be an 'fgets()' call. However (on Linux, at least)
+ * mixing stream I/O and 'read()' (used in the library) causes the
+ * input stream to be flushed when switching between the two.
+ */
+ command = 0;
+ for (;;) {
+ char ch;
+ if (read(fileno(stdin), &ch, 1) <= 0) {
+ if (command == 0)
+ command = 'q';
+ break;
+ } else if (command == 0 && !isspace(UChar(ch))) {
+ command = ch;
+ } else if (ch == '\n' || ch == '\r') {
+ if ((command == 'd') && !top) {
+ (void) fputs("Do not nest test-d\n", stdout);
+ command = 0;
+ }
+ if (command != 0)
+ break;
+ (void) fputs("> ", stdout);
+ (void) fflush(stdout);
+ }
+ }
+
+ if (do_single_test(command)) {
+ /*
+ * This may be overkill; it's intended to reset everything back
+ * to the initial terminal modes so that tests don't get in
+ * each other's way.
+ */
+ flushinp();
+ set_terminal_modes();
+ reset_prog_mode();
+ clear();
+ refresh();
+ endwin();
+ if (command == '?') {
+ (void) puts("This is the ncurses capability tester.");
+ (void)
+ puts("You may select a test from the main menu by typing the");
+ (void)
+ puts("key letter of the choice (the letter to left of the =)");
+ (void)
+ puts("at the > prompt. The commands `x' or `q' will exit.");
+ }
+ continue;
+ }
+ } while
+ (command != 'q');
+}
+
/*+-------------------------------------------------------------------------
main(argc,argv)
--------------------------------------------------------------------------*/
+#define okCOLOR(n) ((n) >= 0 && (n) < max_colors)
+#define okRGB(n) ((n) >= 0 && (n) <= 1000)
+
int
main(int argc, char *argv[])
{
- int command, c;
+ int c;
int my_e_param = 1;
#ifdef NCURSES_VERSION
int default_fg = COLOR_WHITE;
bool assumed_colors = FALSE;
bool default_colors = FALSE;
#endif
+ char *palette_file = 0;
setlocale(LC_ALL, "");
- while ((c = getopt(argc, argv, "a:de:fhs:t:")) != EOF) {
+ while ((c = getopt(argc, argv, "a:de:fhp:s:t:")) != EOF) {
switch (c) {
#ifdef NCURSES_VERSION
case 'a':
case 'h':
ripoffline(1, rip_header);
break;
+ case 'p':
+ palette_file = optarg;
+ break;
#if USE_LIBPANEL
case 's':
nap_msec = atol(optarg);
#endif
#ifdef TRACE
case 't':
- save_trace = atoi(optarg);
+ save_trace = strtol(optarg, 0, 0);
break;
#endif
default:
if (has_colors()) {
start_color();
#ifdef NCURSES_VERSION_PATCH
- max_colors = COLORS > 16 ? 16 : COLORS;
+ max_colors = COLORS; /* was > 16 ? 16 : COLORS */
#if HAVE_USE_DEFAULT_COLORS
- if (default_colors)
+ if (default_colors) {
use_default_colors();
+ min_colors = -1;
+ }
#if NCURSES_VERSION_PATCH >= 20000708
else if (assumed_colors)
assume_default_colors(default_fg, default_bg);
#endif
#endif
#else /* normal SVr4 curses */
- max_colors = COLORS > 8 ? 8 : COLORS;
+ max_colors = COLORS; /* was > 8 ? 8 : COLORS */
#endif
- max_pairs = (max_colors * max_colors);
- if (max_pairs < COLOR_PAIRS)
- max_pairs = COLOR_PAIRS;
+ max_pairs = COLOR_PAIRS; /* was > 256 ? 256 : COLOR_PAIRS */
+
+ if (can_change_color()) {
+ all_colors = (RGB_DATA *) malloc(max_colors * sizeof(RGB_DATA));
+ for (c = 0; c < max_colors; ++c) {
+ color_content(c,
+ &all_colors[c].red,
+ &all_colors[c].green,
+ &all_colors[c].blue);
+ }
+ if (palette_file != 0) {
+ FILE *fp = fopen(palette_file, "r");
+ if (fp != 0) {
+ char buffer[BUFSIZ];
+ int red, green, blue;
+ int scale = 1000;
+ while (fgets(buffer, sizeof(buffer), fp) != 0) {
+ if (sscanf(buffer, "scale:%d", &c) == 1) {
+ scale = c;
+ } else if (sscanf(buffer, "%d:%d %d %d",
+ &c,
+ &red,
+ &green,
+ &blue) == 4
+ && okCOLOR(c)
+ && okRGB(red)
+ && okRGB(green)
+ && okRGB(blue)) {
+ all_colors[c].red = (red * 1000) / scale;
+ all_colors[c].green = (green * 1000) / scale;
+ all_colors[c].blue = (blue * 1000) / scale;
+ }
+ }
+ fclose(fp);
+ }
+ }
+ }
}
set_terminal_modes();
def_prog_mode();
(void) puts("Welcome to ncurses. Press ? for help.");
#endif
- do {
- (void) puts("This is the ncurses main menu");
- (void) puts("a = keyboard and mouse input test");
-#if USE_WIDEC_SUPPORT
- (void) puts("A = wide-character keyboard and mouse input test");
-#endif
- (void) puts("b = character attribute test");
- (void) puts("c = color test pattern");
- (void) puts("d = edit RGB color values");
- (void) puts("e = exercise soft keys");
-#if USE_WIDEC_SUPPORT
- (void) puts("E = exercise soft keys using wide-characters");
-#endif
- (void) puts("f = display ACS characters");
-#if USE_WIDEC_SUPPORT
- (void) puts("F = display Wide-ACS characters");
-#endif
- (void) puts("g = display windows and scrolling");
- (void) puts("i = test of flushinp()");
- (void) puts("k = display character attributes");
-#if USE_LIBMENU
- (void) puts("m = menu code test");
-#endif
-#if USE_LIBPANEL
- (void) puts("o = exercise panels library");
- (void) puts("p = exercise pad features");
- (void) puts("q = quit");
-#endif
-#if USE_LIBFORM
- (void) puts("r = exercise forms code");
-#endif
- (void) puts("s = overlapping-refresh test");
-#if USE_LIBMENU && defined(TRACE)
- (void) puts("t = set trace level");
-#endif
- (void) puts("? = repeat this command summary");
-
- (void) fputs("> ", stdout);
- (void) fflush(stdout); /* necessary under SVr4 curses */
-
- /*
- * This used to be an 'fgets()' call. However (on Linux, at least)
- * mixing stream I/O and 'read()' (used in the library) causes the
- * input stream to be flushed when switching between the two.
- */
- command = 0;
- for (;;) {
- char ch;
- if (read(fileno(stdin), &ch, 1) <= 0) {
- if (command == 0)
- command = 'q';
- break;
- } else if (command == 0 && !isspace(UChar(ch))) {
- command = ch;
- } else if (ch == '\n' || ch == '\r') {
- if (command != 0)
- break;
- (void) fputs("> ", stdout);
- (void) fflush(stdout);
- }
- }
-
- if (do_single_test(command)) {
- /*
- * This may be overkill; it's intended to reset everything back
- * to the initial terminal modes so that tests don't get in
- * each other's way.
- */
- flushinp();
- set_terminal_modes();
- reset_prog_mode();
- clear();
- refresh();
- endwin();
- if (command == '?') {
- (void) puts("This is the ncurses capability tester.");
- (void)
- puts("You may select a test from the main menu by typing the");
- (void)
- puts("key letter of the choice (the letter to left of the =)");
- (void)
- puts("at the > prompt. The commands `x' or `q' will exit.");
- }
- continue;
- }
- } while
- (command != 'q');
+ main_menu(TRUE);
ExitProgram(EXIT_SUCCESS);
}
* newdemo.c - A demo program using PDCurses. The program illustrate
* the use of colours for text output.
*
- * $Id: newdemo.c,v 1.24 2002/06/29 23:32:18 tom Exp $
+ * $Id: newdemo.c,v 1.27 2005/05/28 21:40:00 tom Exp $
*/
-#include <time.h>
-
#include <test.priv.h>
+#include <time.h>
+
#define delay_output(x) napms(x)
/*
* The Australian map
*/
-const char *AusMap[16] =
+static const char *AusMap[16] =
{
" A A ",
" N.T. AAAAA AAAA ",
*/
#define NMESSAGES 6
-NCURSES_CONST char *messages[] =
+static NCURSES_CONST char *messages[] =
{
"Hello from the Land Down Under",
"The Land of crocs. and a big Red Rock",
}
}
-static int
-use_colors(WINDOW *win, int pair, int attrs)
+static chtype
+use_colors(WINDOW *win, int pair, chtype attrs)
{
if (has_colors()) {
if (pair > COLOR_PAIRS)
-/* $Id: tclock.c,v 1.24 2002/12/29 01:40:30 tom Exp $ */
+/* $Id: tclock.c,v 1.25 2005/04/16 16:39:27 tom Exp $ */
#include <test.priv.h>
lastbeep = t->tm_sec;
if (has_colors()) {
odd = !odd;
- bkgd(odd ? COLOR_PAIR(4) : COLOR_PAIR(0));
+ bkgd((chtype) (odd ? COLOR_PAIR(4) : COLOR_PAIR(0)));
}
beep();
}
/****************************************************************************
* Author: Thomas E. Dickey <dickey@clark.net> 1996 *
****************************************************************************/
-/* $Id: test.priv.h,v 1.46 2003/10/19 00:04:24 tom Exp $ */
+/* $Id: test.priv.h,v 1.48 2004/04/10 20:11:37 tom Exp $ */
#ifndef __TEST_PRIV_H
#define __TEST_PRIV_H 1
#include <term.h>
#endif
+#ifdef NCURSES_VERSION
+#define HAVE_COLOR_SET 1
+#endif
+
#if NCURSES_NOMACROS
#include <nomacros.h>
#endif
#endif
/* out-of-band values for representing absent capabilities */
-#define ABSENT_BOOLEAN (-1) /* 255 */
+#define ABSENT_BOOLEAN ((signed char)-1) /* 255 */
#define ABSENT_NUMERIC (-1)
#define ABSENT_STRING (char *)0
/* out-of-band values for representing cancels */
-#define CANCELLED_BOOLEAN (char)(-2) /* 254 */
+#define CANCELLED_BOOLEAN ((signed char)-2) /* 254 */
#define CANCELLED_NUMERIC (-2)
#define CANCELLED_STRING (char *)(-1)
* wrs(5/28/93) -- modified to be consistent (perform identically) with either
* PDCurses or under Unix System V, R4
*
- * $Id: testcurs.c,v 1.32 2002/10/19 22:11:24 tom Exp $
+ * $Id: testcurs.c,v 1.34 2005/04/16 16:19:12 tom Exp $
*/
#include <test.priv.h>
};
typedef struct commands COMMAND;
-const COMMAND command[] =
+static const COMMAND command[] =
{
{"General Test", introTest},
{"Pad Test", padTest},
}
#endif /* not HAVE_STRDUP */
-int width, height;
+static int width, height;
int
main(
int x1 = getmaxx(win);
int y0 = y1 < 10 ? y1 : 10;
int x0 = 1;
- long save;
+ chtype save;
save = mvwinch(win, y0, x1 - 1);
else if (isprint(c))
wprintw(win, "Key Pressed: %c", c);
else
- wprintw(win, "Key Pressed: %s", unctrl(c));
+ wprintw(win, "Key Pressed: %s", unctrl(UChar(c)));
#if defined(PDCURSES)
if (c == KEY_MOUSE) {
int button = 0;
repeat = 0;
do {
- static const char *fmt[] = {
+ static const char *fmt[] =
+ {
"%d %10s",
"%d %[a-zA-Z]s",
"%d %[][a-zA-Z]s",
static void
display_menu(int old_option, int new_option)
{
- register size_t i;
+ int i;
attrset(A_NORMAL);
mvaddstr(3, 20, "PDCurses Test Program");
- for (i = 0; i < MAX_OPTIONS; i++)
+ for (i = 0; i < (int) MAX_OPTIONS; i++)
mvaddstr(5 + i, 25, command[i].text);
if (old_option != (-1))
mvaddstr(5 + old_option, 25, command[old_option].text);
#!/usr/bin/perl -w
-# $Id: tracemunch,v 1.3 2002/09/22 16:31:18 tom Exp $
+# $Id: tracemunch,v 1.6 2005/03/12 21:48:23 tom Exp $
##############################################################################
-# Copyright (c) 1998,2002 Free Software Foundation, Inc. #
+# Copyright (c) 1998-2002,2005 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"), #
# The error logs produced by ncurses with tracing enabled can be very tedious
# to wade through. This script helps by compacting runs of log lines that
# can be conveniently expressed as higher-level operations.
-#
+use strict;
-$putattr="PutAttrChar\\('(.)' = 0x.., {A_NORMAL}\\) at \\(([0-9]+), ([0-9]+)\\)";
-$waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
+our $putattr="PutAttrChar\\({{ '(.)' = 0[0-7]+ }}\\) at \\(([0-9]+), ([0-9]+)\\)";
+our $waddnstr="waddnstr\\(0x([0-9a-f]+),\"([^\"]+)\",[0-9]+\\) called {A_NORMAL}";
-$win_nums=0;
+our $win_nums=0;
+our $curscr="";
+our $newscr="";
+our $stdscr="";
+our @win_addr;
sub transaddr
{
- $arg = $_[0];
+ my $n;
+ my $arg = $_[0];
- $arg =~ s/$curscr/curscr/ if ($curscr);
- $arg =~ s/$newscr/newscr/ if ($newscr);
- $arg =~ s/$stdscr/stdscr/ if ($stdscr);
+ $arg =~ s/$curscr/curscr/g if ($curscr);
+ $arg =~ s/$newscr/newscr/g if ($newscr);
+ $arg =~ s/$stdscr/stdscr/g if ($stdscr);
for $n (0..$#win_addr) {
- $arg =~ s/$win_addr[$n]/window$n/ if $win_addr[$n];
+ $arg =~ s/$win_addr[$n]/window$n/g if $win_addr[$n];
}
return $arg;
while (<STDIN>)
{
+ my $addr;
+ my $n;
+ my $awaiting;
+
CLASSIFY: {
# Transform window pointer addresses so it's easier to compare logs
$awaiting = "curscr" if ($_ =~ /creating curscr/);
$awaiting = "";
} elsif ($_ =~ /^\.\.\.deleted win=0x([0-9a-f]+)/) {
$addr = "0x$1";
+ $_ = &transaddr($_);
if ($addr eq $curscr) {
$curscr = "";
} elsif ($addr eq $newscr) {
# Compactify runs of PutAttrChar calls (TR_CHARPUT)
if ($_ =~ /$putattr/)
{
- $putattr_chars = $1;
- $starty = $2;
- $startx = $3;
+ my $putattr_chars = $1;
+ my $starty = $2;
+ my $startx = $3;
while (<STDIN>)
{
if ($_ =~ /$putattr/) {
# Compactify runs of waddnstr calls (TR_CALLS)
if ($_ =~ /$waddnstr/)
{
- $waddnstr_chars = $2;
- $winaddr = $1;
+ my $waddnstr_chars = $2;
+ my $winaddr = $1;
while (<STDIN>)
{
if ($_ =~ /$waddnstr/ && $1 eq $winaddr) {
last;
}
}
- $winaddstr = &transaddr($winaddr);
+ my $winaddstr = &transaddr($winaddr);
print "RUN of waddnstr()s: $winaddr, \"$waddnstr_chars\"\n";
redo CLASSIFY;
}
# More transformations can go here
# Repeated runs of anything
- $anyline = &transaddr($_);
- $repeatcount = 1;
+ my $anyline = &transaddr($_);
+ my $repeatcount = 1;
while (<STDIN>) {
if (&transaddr($_) eq $anyline) {
$repeatcount++;
* scroll operation worked, and the refresh() code only had to do a
* partial repaint.
*
- * $Id: view.c,v 1.57 2003/05/17 21:58:43 tom Exp $
+ * $Id: view.c,v 1.62 2005/05/28 21:40:25 tom Exp $
*/
+#include <test.priv.h>
+
#include <time.h>
-#include <test.priv.h>
+#undef CTRL /* conflict on AIX 5.2 with <sys/ioctl.h> */
#if HAVE_TERMIOS_H
# include <termios.h>
static bool try_color = FALSE;
static char *fname;
-static NCURSES_CH_T **my_lines;
+static NCURSES_CH_T **vec_lines;
static NCURSES_CH_T **lptr;
+static int num_lines;
static void
usage(void)
if (setcchar(dst + k, wstr, 0, 0, NULL) == OK)
++k;
}
- setcchar(dst + k, L"", 0, 0, NULL);
+ wstr[0] = L'\0';
+ setcchar(dst + k, wstr, 0, 0, NULL);
#else
dst[k] = 0;
#endif
int i;
int my_delay = 0;
NCURSES_CH_T **olptr;
- int length = 0;
int value = 0;
bool done = FALSE;
bool got_number = FALSE;
#endif
#ifdef TRACE
case 'T':
- trace(atoi(optarg));
+ trace((unsigned) atoi(optarg));
break;
case 't':
trace(TRACE_CALLS);
if (optind + 1 != argc)
usage();
- if ((my_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0)
+ if ((vec_lines = typeMalloc(NCURSES_CH_T *, MAXLINES + 2)) == 0)
usage();
fname = argv[optind];
#endif
/* slurp the file */
- for (lptr = &my_lines[0]; (lptr - my_lines) < MAXLINES; lptr++) {
+ for (lptr = &vec_lines[0]; (lptr - vec_lines) < MAXLINES; lptr++) {
char temp[BUFSIZ], *s, *d;
int col;
*lptr = ch_dup(temp);
}
(void) fclose(fp);
- length = lptr - my_lines;
+ num_lines = lptr - vec_lines;
(void) initscr(); /* initialize the curses library */
keypad(stdscr, TRUE); /* enable keyboard mapping */
}
}
- lptr = my_lines;
+ lptr = vec_lines;
while (!done) {
int n, c;
mvprintw(0, 0, "Count: ");
clrtoeol();
}
- addch(c);
+ addch(UChar(c));
value = 10 * value + (c - '0');
got_number = TRUE;
} else
case 'n':
olptr = lptr;
for (i = 0; i < n; i++)
- if ((lptr - my_lines) < (length - LINES + 1))
+ if ((lptr - vec_lines) < (num_lines - LINES + 1))
lptr++;
else
break;
case 'p':
olptr = lptr;
for (i = 0; i < n; i++)
- if (lptr > my_lines)
+ if (lptr > vec_lines)
lptr--;
else
break;
case 'h':
case KEY_HOME:
- lptr = my_lines;
+ lptr = vec_lines;
break;
case 'e':
case KEY_END:
- if (length > LINES)
- lptr = my_lines + length - LINES + 1;
+ if (num_lines > LINES)
+ lptr = vec_lines + num_lines - LINES + 1;
else
- lptr = my_lines;
+ lptr = vec_lines;
break;
case 'r':
finish(int sig)
{
endwin();
+#if NO_LEAKS
+ if (vec_lines != 0) {
+ int n;
+ for (n = 0; n < num_lines; ++n) {
+ free(vec_lines[n]);
+ }
+ free(vec_lines);
+ }
+#endif
ExitProgram(sig != 0 ? EXIT_FAILURE : EXIT_SUCCESS);
}
scrollok(stdscr, FALSE); /* prevent screen from moving */
for (i = 1; i < LINES; i++) {
move(i, 0);
- printw("%3ld:", (long) (lptr + i - my_lines));
+ printw("%3ld:", (long) (lptr + i - vec_lines));
clrtoeol();
if ((s = lptr[i - 1]) != 0) {
int len = ch_len(s);
traces will be dumped. The program stops and waits for one character of
input at the beginning and end of the interval.
- $Id: worm.c,v 1.37 2002/06/29 23:32:18 tom Exp $
+ $Id: worm.c,v 1.39 2005/08/20 20:26:29 tom Exp $
*/
#include <test.priv.h>
static chtype trail = ' ';
#ifdef TRACE
-int generation, trace_start, trace_end, singlestep;
+static int generation, trace_start, trace_end, singlestep;
#endif /* TRACE */
/* *INDENT-OFF* */
static const struct options {
#endif
/*
* Make it simple to put this into single-step mode, or resume
- * normal operation -TD
+ * normal operation -T.Dickey
*/
if (ch == 'q') {
cleanup();
/******************************************************************************/
/*
- * $Id: xmas.c,v 1.19 2002/06/29 23:32:18 tom Exp $
+ * $Id: xmas.c,v 1.20 2005/04/16 16:34:38 tom Exp $
*/
#include <test.priv.h>
static bool *pairs;
int n = (color + 1);
if (pairs == 0)
- pairs = (bool *) calloc(COLORS + 1, sizeof(bool));
+ pairs = (bool *) calloc((unsigned) (COLORS + 1), sizeof(bool));
if (!pairs[n]) {
init_pair(n, color, my_bg);
pairs[n] = TRUE;
--- /dev/null
+# $Id: xterm-16color.dat,v 1.1 2004/05/22 23:14:42 tom Exp $
+# This illustrates the predefined colors for XFree86 xterm's "xterm-16color".
+# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
+# 88-color or 256-color feature), you can use the ncurses 'd' screen to
+# manipulate the colors shown in the screen. The 'd' screen is limited to
+# the first 16 colors, and xterm happens to use the same first 16 colors in
+# the extended color models that support initc.
+#
+# The colors shown are for xterm patch #189.
+scale:255
+0: 0 0 0 black
+1: 205 0 0 red3
+2: 0 205 0 green3
+3: 205 205 0 yellow3
+4: 30 144 255 DodgerBlue1
+5: 205 0 205 magenta3
+6: 0 205 205 cyan3
+7: 229 229 229 gray90
+8: 127 127 127 gray50
+9: 255 0 0 red
+10: 0 255 0 green
+11: 255 255 0 yellow
+12: 99 184 255 SteelBlue1
+13: 255 0 255 magenta
+14: 0 255 255 cyan
+15: 255 255 255 white
--- /dev/null
+# $Id: xterm-88color.dat,v 1.1 2005/01/28 21:11:53 tom Exp $
+# This illustrates the predefined colors for XFree86 xterm's "xterm-16color".
+# If you set $TERM to "xterm-88color" (and have xterm compiled to support the
+# 88-color or 256-color feature), you can use the ncurses 'd' screen to
+# manipulate the colors shown in the screen. The 'd' screen is limited to
+# the first 16 colors, and xterm happens to use the same first 16 colors in
+# the extended color models that support initc.
+#
+# The colors shown are for xterm patch #189.
+scale:255
+0: 0 0 0 black
+1: 205 0 0 red3
+2: 0 205 0 green3
+3: 205 205 0 yellow3
+4: 30 144 255 DodgerBlue1
+5: 205 0 205 magenta3
+6: 0 205 205 cyan3
+7: 229 229 229 gray90
+8: 127 127 127 gray50
+9: 255 0 0 red
+10: 0 255 0 green
+11: 255 255 0 yellow
+12: 99 184 255 SteelBlue1
+13: 255 0 255 magenta
+14: 0 255 255 cyan
+15: 255 255 255 white
+16: 0 0 0
+17: 0 0 139
+18: 0 0 205
+19: 0 0 255
+20: 0 139 0
+21: 0 139 139
+22: 0 139 205
+23: 0 139 255
+24: 0 205 0
+25: 0 205 139
+26: 0 205 205
+27: 0 205 255
+28: 0 255 0
+29: 0 255 139
+30: 0 255 205
+31: 0 255 255
+32: 139 0 0
+33: 139 0 139
+34: 139 0 205
+35: 139 0 255
+36: 139 139 0
+37: 139 139 139
+38: 139 139 205
+39: 139 139 255
+40: 139 205 0
+41: 139 205 139
+42: 139 205 205
+43: 139 205 255
+44: 139 255 0
+45: 139 255 139
+46: 139 255 205
+47: 139 255 255
+48: 205 0 0
+49: 205 0 139
+50: 205 0 205
+51: 205 0 255
+52: 205 139 0
+53: 205 139 139
+54: 205 139 205
+55: 205 139 255
+56: 205 205 0
+57: 205 205 139
+58: 205 205 205
+59: 205 205 255
+60: 205 255 0
+61: 205 255 139
+62: 205 255 205
+63: 205 255 255
+64: 255 0 0
+65: 255 0 139
+66: 255 0 205
+67: 255 0 255
+68: 255 139 0
+69: 255 139 139
+70: 255 139 205
+71: 255 139 255
+72: 255 205 0
+73: 255 205 139
+74: 255 205 205
+75: 255 205 255
+76: 255 255 0
+77: 255 255 139
+78: 255 255 205
+79: 255 255 255
+80: 46 46 46
+81: 92 92 92
+82: 113 113 113
+83: 139 139 139
+84: 162 162 162
+85: 185 185 185
+86: 208 208 208
+87: 231 231 231