- Announcing ncurses 4.2
+ Announcing ncurses 5.0
- The ncurses (new curses) library is a freeware emulation of System V
- Release 4.0 curses. It uses terminfo format, supports pads and color
- and multiple highlights and forms characters and function-key mapping,
- and has all the other SYSV-curses enhancements over BSD curses.
+ The ncurses (new curses) library is a free software emulation of
+ curses in System V Release 4.0, and more. It uses terminfo format,
+ supports pads and color and multiple highlights and forms characters
+ and function-key mapping, and has all the other SYSV-curses
+ enhancements over BSD curses.
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.
- The ncurses code was developed under Linux. It should port easily to
- any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2 Warp!
+ The ncurses code was developed under GNU/Linux. It should port easily
+ to any ANSI/POSIX-conforming UNIX. It has even been ported to OS/2
+ Warp!
The distribution includes the library and support utilities, including
a terminfo compiler tic(1), a decompiler infocmp(1), clear(1),
manual pages are provided for the library and tools.
The ncurses distribution is available via anonymous FTP at the GNU
- distribution site [1]ftp://prep.ai.mit.edu/pub/gnu. It is also
+ distribution site [1]ftp://ftp.gnu.org/pub/gnu/ncurses. It is also
available at [2]ftp://ftp.clark.net/pub/dickey/ncurses.
- Features of ncurses
+ Release Notes
+
+ We decided to release ncurses as a new whole number release (5.0)
+ because it incorporates several interface changes, including some that
+ would invalidate existing shared libraries. These are the highlights
+ from the change-log since ncurses 4.2 release.
+
+ Interface changes:
+ * The principal source of changes to the interface comes from the
+ release of X/Open Curses in 1997. Earlier versions of ncurses (4.0
+ and before) were based on a draft version of the specification.
+ The release version adds parameters to some functions to support
+ the evolving internationalization of curses. These summarize the
+ impact:
+ + modified several prototypes to correspond with 1997 version
+ of X/Open Curses (affects ABI since developers have used
+ attr_get).
+ + corrected prototypes for slk_* functions, using chtype rather
+ than attr_t.
+ + the slk_attr_{set,off,on} functions need an additional void*
+ parameter according to XSI.
+ + correct macros for wattr_set, wattr_get, separate wattrset
+ macro from these to preserve behavior that allows attributes
+ to be combined with color pair numbers.
+ + reviewed/updated curses.h, term.h against X/Open Curses Issue
+ 4 Version 2. This includes making some parameters
+ NCURSES_CONST rather than const, e.g., in termcap.h.
+ + reviewed/corrected macros in curses.h as per XSI document.
+ + add set_a_attributes and set_pglen_inch to terminfo
+ structure, as per XSI and Solaris 2.5.
+ * The newest version of the X/Open Curses is implemented on Solaris
+ and other vendor's systems. It adds new features to the terminfo
+ descriptions:
+ + implement tparm %l format.
+ + implement tparm printf-style width and precision for %s, %d,
+ %x, %o as per XSI.
+ * We made additional changes to reduce impact by future interface
+ changes:
+ + rename key_names[] array to _nc_key_names since it is not
+ part of the curses interface.
+ + move macro winch to a function, to hide details of struct
+ ldat
+ * modify configure script to embed ABI in shared libraries for HP-UX
+ 10.x (detailed request by Tim Mooney).
+ * modify configuration of shared libraries on Digital Unix so that
+ versioning is embedded in the library, rather than implied by
+ links (patch by Tim Mooney).
+
+ New features:
+ * enable sigwinch handler by default.
+ * turn on hashmap scrolling code by default
+ * improved support for termcap applications
+ + modify tput to accept termcap names as an alternative to
+ terminfo names.
+ + provide support for termcap PC variable by copying it from
+ terminfo data and using it as the padding character in tputs.
+ + provide support for termcap ospeed variable by copying it
+ from the internal cur_term member, and using ospeed as the
+ baudrate reference for the delay_output and tputs functions.
+ + change name-comparisons in lib_termcap to compare no more
+ than 2 characters.
+ + add configure option --enable-tcap-names, which essentially
+ allows users to define new capabilities as in termcap.
+ * add mouse support to ncurses menus.
+ * add mouse and dll support for OS/2 EMX
+ * modify terminfo parsing to accept octal and hexadecimal constants
+ * add configure option --enable-no-padding, to allow environment
+ variable $NCURSES_NO_PADDING to eliminate non-mandatory padding,
+ thereby making terminal emulators (e.g., for vt100) a little more
+ efficient.
+ * modify lib_color.c to eliminate dependency on orig_colors and
+ orig_pair, since SVr4 curses does not require these either, but
+ uses them when they are available.
+ * add -f option to infocmp and tic, which formats the terminfo
+ if/then/else/endif so that they are readable (with newlines and
+ tabs).
+ * modify tic to compile into %'char' form in preference to
+ %{number}, since that is a little more efficient.
+
+ Major bug fixes:
+ * modify lib_tstp.c to block SIGTTOU when handling SIGTSTP, fixes a
+ problem where ncurses applications which were run via a shell
+ script would hang when given a ^Z. Also, check if the terminal's
+ process group is consistent, i.e., a shell has not taken ownership
+ of it, before deciding to save the current terminal settings in
+ the SIGTSTP handler.
+ * suppress sc/rc capabilities from terminal description if they
+ appear in smcup/rmcup. This affects only scrolling optimization,
+ to fix a problem reported by several people with xterm's alternate
+ screen, though the problem is more general.
+ * modify relative_move and tputs to avoid an interaction with the
+ BSD-style padding. The relative_move function could produce a
+ string to replace on the screen which began with a numeric
+ character, which was then interpreted by tputs as padding.
+ * modify setupterm so that cancelled strings are treated the same as
+ absent strings, cancelled and absent booleans false (does not
+ affect tic, infocmp).
+ * modify lib_vidattr.c to allow for terminal types (e.g.,
+ xterm-color) which may reset all attributes in the 'op'
+ capability, so that colors are set before turning on bold and
+ other attributes, but still after turning attributes off.
+ * use 'access()' to check if ncurses library should be permitted to
+ open or modify files with fopen/open/link/unlink/remove calls, in
+ case the calling application is running in setuid mode.
+ * correction to doupdate, for case where terminal does not support
+ insert/delete character. The logic did not check that there was a
+ difference in alignment of changes to old/new screens before
+ repainting the whole non-blank portion of the line. Modified to
+ fall through into logic that reduces by the portion which does not
+ differ.
+
+ Features of Ncurses
The ncurses package is fully compatible with SVr4 (System V Release 4)
curses:
-
* All 257 of the SVr4 calls have been implemented (and are
documented).
* Full support for SVr4 curses features including keyboard mapping,
HP/UX and AIX ports.
The ncurses package also has many useful extensions over SVr4:
-
* The API is 8-bit clean and base-level conformant with the X/OPEN
- curses specification, XSI Curses (that is, it implements all BASE
+ curses specification, XSI curses (that is, it implements all BASE
level features, but not all EXTENDED features). Most
EXTENDED-level features not directly concerned with wide-character
support are implemented, including many function calls not
supported under SVr4 curses (but portability of all calls is
documented so you can use the SVr4 subset only).
- * Unlike SVr4 curses, ncurses can write to the rightmost-bottommost
+ * Unlike SVr3 curses, ncurses can write to the rightmost-bottommost
corner of the screen if your terminal has an insert-character
capability.
- * (PC-clone boxes only) Support for access to the IBM PC ROM
- characters 0-32 through the highlight A_ALTCHARSET.
* Ada95 and C++ bindings.
- * Support for mouse event reporting under xterm.
+ * Support for mouse event reporting with X Window xterm and OS/2
+ console windows.
* Extended mouse support via Alessandro Rubini's gpm package.
* The function wresize() allows you to resize windows, preserving
their data.
and arena corruption by the Purify memory-allocation tester.
The ncurses code has been tested with a wide variety of applications
- including:
+ including (versions starting with those noted):
+ cdk
+ Curses Development Kit [3]Curses Development Kit
+ [4]ftp://ftp.clark.net/pub/dickey/cdk.
+
ded
- directory-editor [3]ftp://ftp.clark.net/pub/dickey/ded.
+ directory-editor [5]ftp://ftp.clark.net/pub/dickey/ded.
dialog
the underlying application used in Slackware's setup, and the
- basis for similar applications on Linux.
+ basis for similar applications on GNU/Linux.
- lynx-2.7
+ lynx
the character-screen WWW browser
Midnight Commander 4.1
file manager
- mutt 0.88
+ mutt
mail utility
- ncftp 2.0
+ ncftp
file-transfer utility
nvi
New vi versions 1.50 are able to use ncurses versions 1.9.7 and
later.
+ tin
+ newsreader, supporting color, MIME
+ [6]ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff.
+
taper
tape archive utility
as well as some that use ncurses for the terminfo support alone:
- minicom-1.75
+ minicom
terminal emulator
- tin-unoff
- tin 1.4 newsreader, supporting color, MIME
- [4]ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff.
-
vile
- vi-like-emacs [5]ftp://ftp.clark.net/pub/dickey/vile.
+ vi-like-emacs [7]ftp://ftp.clark.net/pub/dickey/vile.
The ncurses distribution includes a selection of test programs
(including a few games).
Who's Who and What's What
- The original developers of ncurses are [6]Zeyd Ben-Halim and [7]Eric
- S. Raymond. Ongoing work is being done by [8]Thomas Dickey and
- [9]Jürgen Pfeifer. [10]Florian La Roche acts as the maintainer for the
+ The original developers of ncurses are [8]Zeyd Ben-Halim and [9]Eric
+ S. Raymond. Ongoing work is being done by [10]Thomas Dickey and
+ [11]Jürgen Pfeifer. [12]Thomas Dickey acts as the maintainer for the
Free Software Foundation, which holds the copyright on ncurses.
- Contact the current maintainers at [11]bug-ncurses@gnu.org.
+ Contact the current maintainers at [13]bug-ncurses@gnu.org.
To join the ncurses mailing list, please write email to
bug-ncurses-request@gnu.org containing the line:
and testing of this package.
Beta versions of ncurses and patches to the current release are made
- available at [12]ftp://ftp.clark.net/pub/dickey/ncurses.
+ available at [14]ftp://ftp.clark.net/pub/dickey/ncurses.
Future Plans
The distribution includes and uses a version of the terminfo-format
terminal description file maintained by Eric Raymond.
- [13]http://earthspace.net/~esr/terminfo.
+ [15]http://earthspace.net/~esr/terminfo.
You can find lots of information on terminal-related topics not
- covered in the terminfo file at [14]Richard Shuford's archive.
+ covered in the terminfo file at [16]Richard Shuford's archive.
References
- 1. ftp://prep.ai.mit.edu/pub/gnu
+ 1. ftp://ftp.gnu.org/pub/gnu/ncurses
2. ftp://ftp.clark.net/pub/dickey/ncurses
- 3. ftp://ftp.clark.net/pub/dickey/ded
- 4. ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff
- 5. ftp://ftp.clark.net/pub/dickey/vile
- 6. mailto:zmbenhal@netcom.com
- 7. http://www.ccil.org/~esr/home.html
- 8. mailto:dickey@clark.net
- 9. mailto:Juergen.Pfeifer@T-Online.de
- 10. mailto:florian@gnu.org
- 11. mailto:bug-ncurses@gnu.org
- 12. ftp://ftp.clark.net/pub/dickey/ncurses
- 13. http://earthspace.net/~esr/terminfo
- 14. http://www.cs.utk.edu/~shuford/terminal_index.html
+ 3. http://www.vexus.ca/CDK.html
+ 4. ftp://ftp.clark.net/pub/dickey/cdk
+ 5. ftp://ftp.clark.net/pub/dickey/ded
+ 6. ftp://ftp.akk.uni-karlsruhe.de/pub/news/clients/tin-unoff
+ 7. ftp://ftp.clark.net/pub/dickey/vile
+ 8. mailto:zmbenhal@netcom.com
+ 9. http://www.ccil.org/~esr/home.html
+ 10. mailto:dickey@clark.net
+ 11. mailto:juergen.pfeifer@gmx.net
+ 12. mailto:dickey@clark.net
+ 13. mailto:bug-ncurses@gnu.org
+ 14. ftp://ftp.clark.net/pub/dickey/ncurses
+ 15. http://earthspace.net/~esr/terminfo
+ 16. http://www.cs.utk.edu/~shuford/terminal_index.html
# authorization. #
##############################################################################
#
-# Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+# Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
#
# Version Control
-# $Revision: 1.10 $
+# $Revision: 1.12 $
#
SHELL = /bin/sh
THIS = Makefile
SUBDIRS = @ADA_SUBDIRS@
+CF_MFLAGS = @cf_cv_makeflags@
+@SET_MAKE@
+
all \
sources \
install \
uninstall \
uninstall.libs ::
for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $@) ;\
+ (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
done
clean \
mostlyclean ::
for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $@) ;\
+ (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
done
distclean \
realclean ::
for d in $(SUBDIRS); do \
- (cd $$d ; $(MAKE) $@) ;\
+ (cd $$d ; $(MAKE) $(CF_MFLAGS) $@) ;\
done
rm -f Makefile
-- authorization. --
-------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
-Caveats:
-
- This is the first delivery of this binding. It has not been
- extensively tested. So I declare this as BETA level software,
- although it is delivered with an official release of ncurses.
-
- You should install the ncurses distribution around this binding
- first before you try to run the sample.
-
- This Binding is currently strictly for the GNAT compiler, because
- in one place I use a GNAT specfic runtime module (see doc.)
-
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
The documentation is provided in HTML format in the ./html
subdirectory. The main document is named index.html
+-- $Id: TODO,v 1.4 1999/10/20 09:18:58 tom Exp $
+
-- Intensive testing
Perhaps the delivery of the Beta will help a bit.
-- Documentation
- Like most WEB pages: under continous construction
+ Like most WEB pages: under continuous construction
-- Style cleanup
Comfort purpose
-- Sample program
- Under continous construction (and it's not a WEB page!!!)
+ Under continuous construction (and it's not a WEB page!!!)
--- Make the binding objects a shared libray
+-- Make the binding objects a shared library
They are rather large, so it would make sense, otherwise Ada95
would look too large, although the generated code is as compact
as C or C++. I'll wait a bit until the GNAT people provide some
+++ /dev/null
-##############################################################################
-# Copyright (c) 1998 Free Software Foundation, Inc. #
-# #
-# Permission is hereby granted, free of charge, to any person obtaining a #
-# copy of this software and associated documentation files (the "Software"), #
-# to deal in the Software without restriction, including without limitation #
-# the rights to use, copy, modify, merge, publish, distribute, distribute #
-# with modifications, sublicense, and/or sell copies of the Software, and to #
-# permit persons to whom the Software is furnished to do so, subject to the #
-# following conditions: #
-# #
-# The above copyright notice and this permission notice shall be included in #
-# all copies or substantial portions of the Software. #
-# #
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
-# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
-# DEALINGS IN THE SOFTWARE. #
-# #
-# Except as contained in this notice, the name(s) of the above copyright #
-# holders shall not be used in advertising or otherwise to promote the sale, #
-# use or other dealings in this Software without prior written #
-# authorization. #
-##############################################################################
-#
-# Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
-#
-# Version Control
-# $Revision: 1.13 $
-#
-.SUFFIXES:
-
-SHELL = /bin/sh
-THIS = Makefile
-
-MODEL = ../../@DFT_OBJ_SUBDIR@
-srcdir = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-includedir = @includedir@
-datadir = @datadir@
-ticdir = $(datadir)/terminfo
-ADA_INCLUDE = @ADA_INCLUDE@
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-
-AWK = @AWK@
-LN_S = @LN_S@
-
-CC = @CC@
-CFLAGS = @CFLAGS@
-
-CPPFLAGS = @ACPPFLAGS@ \
- -DHAVE_CONFIG_H -I$(srcdir)
-
-CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
-CFLAGS_NORMAL = $(CCFLAGS)
-CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
-CFLAGS_PROFILE = $(CCFLAGS) -pg
-CFLAGS_SHARED = $(CCFLAGS) @CC_SHARED_OPTS@
-
-CFLAGS_DEFAULT = $(CFLAGS_@DFT_UPR_MODEL@)
-
-LINK = $(CC)
-LDFLAGS = @LDFLAGS@ @LD_MODEL@ @LIBS@
-
-RANLIB = @RANLIB@
-################################################################################
-ADA = @cf_ada_compiler@
-ADAFLAGS = @ADAFLAGS@ -I. -I$(srcdir)
-
-ADAMAKE = @cf_ada_make@
-ADAMAKEFLAGS =
-
-CARGS = -cargs $(ADAFLAGS)
-LARGS =
-
-ALIB = @cf_ada_package@
-ABASE = $(ALIB)-curses
-
-ADA_OBJDIR = ../ada_objects
-OBJDIR = ../objects
-
-LIBALIS=$(ADA_OBJDIR)/$(ALIB).ali \
- $(ADA_OBJDIR)/$(ABASE)-aux.ali \
- $(ADA_OBJDIR)/$(ABASE).ali \
- $(ADA_OBJDIR)/$(ABASE)-mouse.ali \
- $(ADA_OBJDIR)/$(ABASE)-panels.ali \
- $(ADA_OBJDIR)/$(ABASE)-menus.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-alpha.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-alphanumeric.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-intfield.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-numeric.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-regexp.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-ipv4_address.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-user.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-user-choice.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-aux.ali
-
-# Ada Library files for generic packages. Since gnat 3.10 they are
-# also compiled
-GENALIS=$(ADA_OBJDIR)/$(ABASE)-menus-menu_user_data.ali \
- $(ADA_OBJDIR)/$(ABASE)-menus-item_user_data.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-form_user_data.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_user_data.ali \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration-ada.ali \
- $(ADA_OBJDIR)/$(ABASE)-panels-user_data.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-integer_io.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-float_io.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-fixed_io.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-decimal_io.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-enumeration_io.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-modular_io.ali \
- $(ADA_OBJDIR)/$(ABASE)-text_io-complex_io.ali
-
-LIBOBJS=$(ADA_OBJDIR)/$(ALIB).o \
- $(ADA_OBJDIR)/$(ABASE)-aux.o \
- $(ADA_OBJDIR)/$(ABASE).o \
- $(ADA_OBJDIR)/$(ABASE)-mouse.o \
- $(ADA_OBJDIR)/$(ABASE)-panels.o \
- $(ADA_OBJDIR)/$(ABASE)-menus.o \
- $(ADA_OBJDIR)/$(ABASE)-forms.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-alpha.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-alphanumeric.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-intfield.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-numeric.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-regexp.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-ipv4_address.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-user.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-user-choice.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-aux.o
-
-# Ada object files for generic packages. Since gnat 3.10 they are
-# also compiled
-GENOBJS=$(ADA_OBJDIR)/$(ABASE)-menus-menu_user_data.o \
- $(ADA_OBJDIR)/$(ABASE)-menus-item_user_data.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-form_user_data.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_user_data.o \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration-ada.o \
- $(ADA_OBJDIR)/$(ABASE)-panels-user_data.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-integer_io.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-float_io.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-fixed_io.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-decimal_io.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-enumeration_io.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-modular_io.o \
- $(ADA_OBJDIR)/$(ABASE)-text_io-complex_io.o
-
-
-all :: $(LIBALIS) @cf_compile_generics@
- @echo done
-
-sources :
- @
-
-install ::
-install.libs ::
-uninstall ::
-uninstall.libs ::
-
-generics: $(GENALIS)
- @
-
-mostlyclean ::
- rm -f *.o *.ali b_t*.* *.s $(PROGS) a.out core b_*_test.c *.xr[bs] *.a
-
-clean :: mostlyclean
- rm -f $(LIBALIS) $(LIBOBJS)
-
-distclean :: clean
- rm -f Makefile
-
-realclean :: distclean
-
-BASEDEPS=$(ABASE).ads $(srcdir)/$(ABASE)-aux.ads
-
-$(ADA_OBJDIR)/$(ALIB).o: $(srcdir)/$(ALIB).ads
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ALIB).ads
-
-$(ADA_OBJDIR)/$(ALIB).ali: $(ADA_OBJDIR)/$(ALIB).o
- if [ -f $(ALIB).ali ]; then \
- ln -f $(ALIB).ali $@ ;\
- rm -f $(ALIB).ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-aux.o: $(srcdir)/$(ABASE)-aux.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-aux.adb
-
-$(ADA_OBJDIR)/$(ABASE)-aux.ali: $(ADA_OBJDIR)/$(ABASE)-aux.o
- if [ -f $(ABASE)-aux.ali ]; then \
- ln -f $(ABASE)-aux.ali $@ ;\
- rm -f $(ABASE)-aux.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE).o: $(srcdir)/$(ABASE).adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE).adb
-
-$(ADA_OBJDIR)/$(ABASE).ali: $(ADA_OBJDIR)/$(ABASE).o
- if [ -f $(ABASE).ali ]; then \
- ln -f $(ABASE).ali $@ ;\
- rm -f $(ABASE).ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-mouse.o: \
- $(ABASE)-mouse.ads \
- $(srcdir)/$(ABASE)-mouse.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-mouse.adb
-
-$(ADA_OBJDIR)/$(ABASE)-mouse.ali: $(ADA_OBJDIR)/$(ABASE)-mouse.o
- if [ -f $(ABASE)-mouse.ali ]; then \
- ln -f $(ABASE)-mouse.ali $@ ;\
- rm -f $(ABASE)-mouse.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-panels.o: \
- $(ABASE)-panels.ads \
- $(srcdir)/$(ABASE)-panels.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-panels.adb
-
-$(ADA_OBJDIR)/$(ABASE)-panels.ali: $(ADA_OBJDIR)/$(ABASE)-panels.o
- if [ -f $(ABASE)-panels.ali ]; then \
- ln -f $(ABASE)-panels.ali $@ ;\
- rm -f $(ABASE)-panels.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-menus.o: \
- $(ABASE)-menus.ads \
- $(srcdir)/$(ABASE)-menus.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus.adb
-
-$(ADA_OBJDIR)/$(ABASE)-menus.ali: $(ADA_OBJDIR)/$(ABASE)-menus.o
- if [ -f $(ABASE)-menus.ali ]; then \
- ln -f $(ABASE)-menus.ali $@ ;\
- rm -f $(ABASE)-menus.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms.o: \
- $(ABASE)-forms.ads \
- $(srcdir)/$(ABASE)-forms.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms.ali: $(ADA_OBJDIR)/$(ABASE)-forms.o
- if [ -f $(ABASE)-forms.ali ]; then \
- ln -f $(ABASE)-forms.ali $@ ;\
- rm -f $(ABASE)-forms.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types.o: \
- $(ABASE)-forms-field_types.ads \
- $(srcdir)/$(ABASE)-forms-field_types.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types.o
- if [ -f $(ABASE)-forms-field_types.ali ]; then \
- ln -f $(ABASE)-forms-field_types.ali $@ ;\
- rm -f $(ABASE)-forms-field_types.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-alpha.o: \
- $(srcdir)/$(ABASE)-forms-field_types-alpha.ads \
- $(srcdir)/$(ABASE)-forms-field_types-alpha.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-alpha.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-alpha.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-alpha.o
- if [ -f $(ABASE)-forms-field_types-alpha.ali ]; then \
- ln -f $(ABASE)-forms-field_types-alpha.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-alpha.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-alphanumeric.o: \
- $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.ads \
- $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-alphanumeric.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-alphanumeric.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-alphanumeric.o
- if [ -f $(ABASE)-forms-field_types-alphanumeric.ali ]; then \
- ln -f $(ABASE)-forms-field_types-alphanumeric.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-alphanumeric.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-intfield.o: \
- $(srcdir)/$(ABASE)-forms-field_types-intfield.ads \
- $(srcdir)/$(ABASE)-forms-field_types-intfield.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-intfield.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-intfield.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-intfield.o
- if [ -f $(ABASE)-forms-field_types-intfield.ali ]; then \
- ln -f $(ABASE)-forms-field_types-intfield.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-intfield.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-numeric.o: \
- $(srcdir)/$(ABASE)-forms-field_types-numeric.ads \
- $(srcdir)/$(ABASE)-forms-field_types-numeric.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-numeric.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-numeric.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-numeric.o
- if [ -f $(ABASE)-forms-field_types-numeric.ali ]; then \
- ln -f $(ABASE)-forms-field_types-numeric.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-numeric.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-regexp.o: \
- $(srcdir)/$(ABASE)-forms-field_types-regexp.ads \
- $(srcdir)/$(ABASE)-forms-field_types-regexp.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-regexp.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-regexp.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-regexp.o
- if [ -f $(ABASE)-forms-field_types-regexp.ali ]; then \
- ln -f $(ABASE)-forms-field_types-regexp.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-regexp.ali ;\
- fi
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration.o: \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration.ads \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-enumeration.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration.o
- if [ -f $(ABASE)-forms-field_types-enumeration.ali ]; then \
- ln -f $(ABASE)-forms-field_types-enumeration.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-enumeration.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-ipv4_address.o: \
- $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.ads \
- $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-ipv4_address.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-ipv4_address.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-ipv4_address.o
- if [ -f $(ABASE)-forms-field_types-ipv4_address.ali ]; then \
- ln -f $(ABASE)-forms-field_types-ipv4_address.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-ipv4_address.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-user.o: \
- $(srcdir)/$(ABASE)-forms-field_types-user.ads \
- $(srcdir)/$(ABASE)-forms-field_types-user.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-user.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-user.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-user.o
- if [ -f $(ABASE)-forms-field_types-user.ali ]; then \
- ln -f $(ABASE)-forms-field_types-user.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-user.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-user-choice.o: \
- $(srcdir)/$(ABASE)-forms-field_types-user-choice.ads \
- $(srcdir)/$(ABASE)-forms-field_types-user-choice.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-user-choice.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-user-choice.ali: $(ADA_OBJDIR)/$(ABASE)-forms-field_types-user-choice.o
- if [ -f $(ABASE)-forms-field_types-user-choice.ali ]; then \
- ln -f $(ABASE)-forms-field_types-user-choice.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-user-choice.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io.o: \
- $(srcdir)/$(ABASE)-text_io.ads \
- $(srcdir)/$(ABASE)-text_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io.ali: $(ADA_OBJDIR)/$(ABASE)-text_io.o
- if [ -f $(ABASE)-text_io.ali ]; then \
- ln -f $(ABASE)-text_io.ali $@ ;\
- rm -f $(ABASE)-text_io.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-aux.o: \
- $(srcdir)/$(ABASE)-text_io-aux.ads \
- $(srcdir)/$(ABASE)-text_io-aux.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-aux.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-aux.ali: $(ADA_OBJDIR)/$(ABASE)-text_io-aux.o
- if [ -f $(ABASE)-text_io-aux.ali ]; then \
- ln -f $(ABASE)-text_io-aux.ali $@ ;\
- rm -f $(ABASE)-text_io-aux.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-menus-menu_user_data.o: \
- $(ABASE)-menus-menu_user_data.ads \
- $(srcdir)/$(ABASE)-menus-menu_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus-menu_user_data.adb
-
-$(ADA_OBJDIR)/$(ABASE)-menus-menu_user_data.ali: \
- $(ADA_OBJDIR)/$(ABASE)-menus-menu_user_data.o
- if [ -f $(ABASE)-menus-menu_user_data.ali ]; then \
- ln -f $(ABASE)-menus-menu_user_data.ali $@ ;\
- rm -f $(ABASE)-menus-menu_user_data.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-menus-item_user_data.o: \
- $(ABASE)-menus-item_user_data.ads \
- $(srcdir)/$(ABASE)-menus-item_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-menus-item_user_data.adb
-
-$(ADA_OBJDIR)/$(ABASE)-menus-item_user_data.ali: \
- $(ADA_OBJDIR)/$(ABASE)-menus-item_user_data.o
- if [ -f $(ABASE)-menus-item_user_data.ali ]; then \
- ln -f $(ABASE)-menus-item_user_data.ali $@ ;\
- rm -f $(ABASE)-menus-item_user_data.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-form_user_data.o: \
- $(ABASE)-forms-form_user_data.ads \
- $(srcdir)/$(ABASE)-forms-form_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-form_user_data.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-form_user_data.ali: \
- $(ADA_OBJDIR)/$(ABASE)-forms-form_user_data.o
- if [ -f $(ABASE)-forms-form_user_data.ali ]; then \
- ln -f $(ABASE)-forms-form_user_data.ali $@ ;\
- rm -f $(ABASE)-forms-form_user_data.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_user_data.o: \
- $(ABASE)-forms-field_user_data.ads \
- $(srcdir)/$(ABASE)-forms-field_user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_user_data.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_user_data.ali: \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_user_data.o
- if [ -f $(ABASE)-forms-field_user_data.ali ]; then \
- ln -f $(ABASE)-forms-field_user_data.ali $@ ;\
- rm -f $(ABASE)-forms-field_user_data.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration-ada.o: \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.ads \
- $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-forms-field_types-enumeration-ada.adb
-
-$(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration-ada.ali: \
- $(ADA_OBJDIR)/$(ABASE)-forms-field_types-enumeration-ada.o
- if [ -f $(ABASE)-forms-field_types-enumeration-ada.ali ]; then \
- ln -f $(ABASE)-forms-field_types-enumeration-ada.ali $@ ;\
- rm -f $(ABASE)-forms-field_types-enumeration-ada.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-panels-user_data.o: \
- $(ABASE)-panels-user_data.ads \
- $(srcdir)/$(ABASE)-panels-user_data.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-panels-user_data.adb
-
-$(ADA_OBJDIR)/$(ABASE)-panels-user_data.ali: \
- $(ADA_OBJDIR)/$(ABASE)-panels-user_data.o
- if [ -f $(ABASE)-panels-user_data.ali ]; then \
- ln -f $(ABASE)-panels-user_data.ali $@ ;\
- rm -f $(ABASE)-panels-user_data.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-integer_io.o: \
- $(srcdir)/$(ABASE)-text_io-integer_io.ads \
- $(srcdir)/$(ABASE)-text_io-integer_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-integer_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-integer_io.ali: \
- $(ADA_OBJDIR)/$(ABASE)-text_io-integer_io.o
- if [ -f $(ABASE)-text_io-integer_io.ali ]; then \
- ln -f $(ABASE)-text_io-integer_io.ali $@ ;\
- rm -f $(ABASE)-text_io-integer_io.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-float_io.o: \
- $(srcdir)/$(ABASE)-text_io-float_io.ads \
- $(srcdir)/$(ABASE)-text_io-float_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-float_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-float_io.ali: \
- $(ADA_OBJDIR)/$(ABASE)-text_io-float_io.o
- if [ -f $(ABASE)-text_io-float_io.ali ]; then \
- ln -f $(ABASE)-text_io-float_io.ali $@ ;\
- rm -f $(ABASE)-text_io-float_io.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-fixed_io.o: \
- $(srcdir)/$(ABASE)-text_io-fixed_io.ads \
- $(srcdir)/$(ABASE)-text_io-fixed_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-fixed_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-fixed_io.ali: \
- $(ADA_OBJDIR)/$(ABASE)-text_io-fixed_io.o
- if [ -f $(ABASE)-text_io-fixed_io.ali ]; then \
- ln -f $(ABASE)-text_io-fixed_io.ali $@ ;\
- rm -f $(ABASE)-text_io-fixed_io.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-decimal_io.o: \
- $(srcdir)/$(ABASE)-text_io-decimal_io.ads \
- $(srcdir)/$(ABASE)-text_io-decimal_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-decimal_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-decimal_io.ali: \
- $(ADA_OBJDIR)/$(ABASE)-text_io-decimal_io.o
- if [ -f $(ABASE)-text_io-decimal_io.ali ]; then \
- ln -f $(ABASE)-text_io-decimal_io.ali $@ ;\
- rm -f $(ABASE)-text_io-decimal_io.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-enumeration_io.o: \
- $(srcdir)/$(ABASE)-text_io-enumeration_io.ads \
- $(srcdir)/$(ABASE)-text_io-enumeration_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-enumeration_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-enumeration_io.ali: \
- $(ADA_OBJDIR)/$(ABASE)-text_io-enumeration_io.o
- if [ -f $(ABASE)-text_io-enumeration_io.ali ]; then \
- ln -f $(ABASE)-text_io-enumeration_io.ali $@ ;\
- rm -f $(ABASE)-text_io-enumeration_io.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-modular_io.o: \
- $(srcdir)/$(ABASE)-text_io-modular_io.ads \
- $(srcdir)/$(ABASE)-text_io-modular_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-modular_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-modular_io.ali: \
- $(ADA_OBJDIR)/$(ABASE)-text_io-modular_io.o
- if [ -f $(ABASE)-text_io-modular_io.ali ]; then \
- ln -f $(ABASE)-text_io-modular_io.ali $@ ;\
- rm -f $(ABASE)-text_io-modular_io.ali ;\
- fi
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-complex_io.o: \
- $(srcdir)/$(ABASE)-text_io-complex_io.ads \
- $(srcdir)/$(ABASE)-text_io-complex_io.adb $(BASEDEPS)
- $(ADA) $(ADAFLAGS) -c -o $@ $(srcdir)/$(ABASE)-text_io-complex_io.adb
-
-$(ADA_OBJDIR)/$(ABASE)-text_io-complex_io.ali: \
- $(ADA_OBJDIR)/$(ABASE)-text_io-complex_io.o
- if [ -f $(ABASE)-text_io-complex_io.ali ]; then \
- ln -f $(ABASE)-text_io-complex_io.ali $@ ;\
- rm -f $(ABASE)-text_io-complex_io.ali ;\
- fi
# authorization. #
##############################################################################
#
-# Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+# Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
#
# Version Control
-# $Revision: 1.18 $
+# $Revision: 1.27 $
#
.SUFFIXES:
-DHAVE_CONFIG_H -I$(srcdir)
CCFLAGS = $(CPPFLAGS) $(CFLAGS)
-
CFLAGS_NORMAL = $(CCFLAGS)
CFLAGS_DEBUG = $(CCFLAGS) @CC_G_OPT@ -DTRACE
CFLAGS_PROFILE = $(CCFLAGS) -pg
RANLIB = @RANLIB@
-LIB_CURSES = -L ../../lib -lncurses
+LIB_CURSES = -L../../lib -lncurses
M4 = m4
M4FLAGS =
+GENERATE = ./gen '@DFT_ARG_SUFFIX@'
DEL_ADAMODE = sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d'
################################################################################
ALIB = @cf_ada_package@
ABASE = $(ALIB)-curses
-ADA_SRCDIR = ../ada_include
-ADA_OBJDIR = ../ada_objects
+ADA_SRCDIR = ../src
GEN_FILES0 = Base_Defs
ACS_Map \
Linker_Options \
Base_Defs \
+ Window_Offsets \
Version_Info
GEN_FILES2 = Menu_Opt_Rep \
GEN_FILES4 = Mouse_Base_Defs \
Mouse_Event_Rep \
+ Mouse_Events \
Panel_Linker_Options
+GEN_FILES5 = Chtype_Def \
+ Eti_Defs
+
GEN_TARGETS = $(ADA_SRCDIR)/$(ABASE).ads \
+ $(ADA_SRCDIR)/$(ABASE)-aux.ads \
$(ADA_SRCDIR)/$(ABASE)-menus.ads \
$(ADA_SRCDIR)/$(ABASE)-forms.ads \
$(ADA_SRCDIR)/$(ABASE)-mouse.ads \
$(ADA_SRCDIR)/$(ABASE)-panels-user_data.ads
GEN_SRC = $(srcdir)/$(ABASE).ads.m4 \
+ $(srcdir)/$(ABASE)-aux.ads.m4 \
$(srcdir)/$(ABASE)-menus.ads.m4 \
$(srcdir)/$(ABASE)-forms.ads.m4 \
$(srcdir)/$(ABASE)-mouse.ads.m4 \
$(srcdir)/$(ABASE)-panels-user_data.ads.m4
-all: $(ADA_OBJDIR) $(GEN_TARGETS)
+all: $(GEN_TARGETS)
@
sources:
-$(ADA_OBJDIR) \
$(ADA_INCLUDE) \
$(ADA_OBJECTS) :
- $(top_srcdir)/mkinstalldirs $@
+ $(top_srcdir)/mkinstalldirs $(INSTALL_PREFIX)$@
install \
install.libs :: $(ADA_INCLUDE)
- @echo installing package $(ABASE) in $(ADA_INCLUDE)
- @$(top_srcdir)/tar-copy.sh '$(ABASE)[-.]*' $(ADA_SRCDIR) $(ADA_INCLUDE)
- @test $(srcdir) != ./ && $(top_srcdir)/tar-copy.sh '$(ABASE)[-.]*' $(srcdir)/../ada_include $(ADA_INCLUDE)
+ @echo installing package $(ALIB) in $(INSTALL_PREFIX)$(ADA_INCLUDE)
+ @$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(ADA_SRCDIR) $(INSTALL_PREFIX)$(ADA_INCLUDE)
+ @test $(srcdir) != ./ && $(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ad?' $(srcdir)/../src $(INSTALL_PREFIX)$(ADA_INCLUDE)
install \
install.libs :: $(ADA_OBJECTS)
- @echo installing package $(ABASE) in $(ADA_OBJECTS)
- @$(top_srcdir)/tar-copy.sh '$(ABASE)[-.]*' $(ADA_OBJDIR) $(ADA_OBJECTS)
+ @echo installing package $(ALIB) in $(INSTALL_PREFIX)$(ADA_OBJECTS)
+ @chmod a-wx $(ADA_SRCDIR)/*.ali
+ @$(top_srcdir)/tar-copy.sh '$(ALIB)[-.]*.ali' $(ADA_SRCDIR) $(INSTALL_PREFIX)$(ADA_OBJECTS)
+ @chmod u+x $(ADA_SRCDIR)/*.ali
uninstall \
uninstall.libs ::
- @echo removing package $(ABASE) from $(ADA_INCLUDE)
- -@cd $(ADA_INCLUDE) && rm -f $(ABASE)[-.]*
+ @echo removing package $(ALIB) from $(INSTALL_PREFIX)$(ADA_INCLUDE)
+ -@cd $(INSTALL_PREFIX)$(ADA_INCLUDE) && rm -f $(ALIB)[-.]*
uninstall \
uninstall.libs ::
- @echo removing package $(ABASE) from $(ADA_OBJECTS)
- -@cd $(ADA_OBJECTS) && rm -f $(ABASE)[-.]*
+ @echo removing package $(ALIB) from $(INSTALL_PREFIX)$(ADA_OBJECTS)
+ -@cd $(INSTALL_PREFIX)$(ADA_OBJECTS) && rm -f $(ALIB)[-.]*
gen: gen.o
@ECHO_LINK@ $(LINK) $(CFLAGS_NORMAL) gen.o $(LD_FLAGS) -o $@ $(LIB_CURSES)
$(CC) $(CFLAGS_NORMAL) -c -o $@ $(srcdir)/gen.c
Character_Attribute_Set_Rep: gen
- ./gen B A >$@
+ $(GENERATE) B A >$@
Base_Defs: gen
- ./gen B B >$@
+ $(GENERATE) B B >$@
Color_Defs: gen
- ./gen B C >$@
+ $(GENERATE) B C >$@
Key_Definitions: gen
- ./gen B K >$@
+ $(GENERATE) B K >$@
Old_Keys: gen
- ./gen B O >$@
+ $(GENERATE) B O >$@
ACS_Map: gen
- ./gen B M >$@
+ $(GENERATE) B M >$@
AC_Rep: gen
- ./gen B R >$@
+ $(GENERATE) B R >$@
Linker_Options: gen
- ./gen B L >$@
+ $(GENERATE) B L >$@
Version_Info: gen
- ./gen B V >$@
+ $(GENERATE) B V >$@
+
+Window_Offsets: gen
+ $(GENERATE) B D >$@
Menu_Opt_Rep: gen
- ./gen M R >$@
+ $(GENERATE) M R >$@
Menu_Base_Defs: gen
- ./gen M B >$@
+ $(GENERATE) M B >$@
Menu_Linker_Options: gen
- ./gen M L >$@
+ $(GENERATE) M L >$@
Item_Rep: gen
- ./gen M I >$@
+ $(GENERATE) M I >$@
Form_Opt_Rep: gen
- ./gen F R >$@
+ $(GENERATE) F R >$@
Form_Base_Defs: gen
- ./gen F B >$@
+ $(GENERATE) F B >$@
Form_Linker_Options: gen
- ./gen F L >$@
+ $(GENERATE) F L >$@
Field_Rep: gen
- ./gen F I >$@
+ $(GENERATE) F I >$@
Mouse_Base_Defs: gen
- ./gen P B >$@
+ $(GENERATE) P B >$@
Mouse_Event_Rep: gen
- ./gen P M >$@
+ $(GENERATE) P M >$@
+
+Mouse_Events: gen
+ $(GENERATE) B E >$@
Panel_Linker_Options: gen
- ./gen P L >$@
+ $(GENERATE) P L >$@
+
+Chtype_Def: gen
+ $(GENERATE) E C >$@
+
+Eti_Defs: gen
+ $(GENERATE) E E >$@
$(ADA_SRCDIR)/$(ABASE).ads: $(srcdir)/$(ABASE).ads.m4 \
$(GEN_FILES1) $(srcdir)/normal.m4
$(srcdir)/$(ABASE).ads.m4 |\
$(DEL_ADAMODE) >$@
+$(ADA_SRCDIR)/$(ABASE)-aux.ads: $(srcdir)/$(ABASE)-aux.ads.m4 \
+ $(GEN_FILES5) $(srcdir)/normal.m4
+ $(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
+ $(srcdir)/$(ABASE)-aux.ads.m4 |\
+ $(DEL_ADAMODE) >$@
+
$(ADA_SRCDIR)/$(ABASE)-menus.ads: $(srcdir)/$(ABASE)-menus.ads.m4 \
$(GEN_FILES2) $(srcdir)/normal.m4
$(M4) $(M4FLAGS) -DM4MACRO=$(srcdir)/normal.m4 \
-rm -f $(GEN_FILES2)
-rm -f $(GEN_FILES3)
-rm -f $(GEN_FILES4)
+ -rm -f $(GEN_FILES5)
clean :: mostlyclean
-rm -f $(GEN_TARGETS)
****************************************************************************/
/****************************************************************************
- * Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996 *
+ * Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996 *
****************************************************************************/
/*
Version Control
- $Revision: 1.14 $
+ $Revision: 1.29 $
--------------------------------------------------------------------------*/
/*
This program generates various record structures and constants from the
to produce the real source.
*/
+#include <stdlib.h>
+#include <stddef.h>
#include <string.h>
#include <assert.h>
#include <ctype.h>
#define RES_NAME "Reserved"
+static const char *model = "";
static int little_endian = 0;
typedef struct {
const char *name;
- unsigned int attr;
+ unsigned long attr;
} name_attribute_pair;
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;
* We are only dealing with record types which are of 32 or 16
* bit size, i.e. they fit into an (u)int or a (u)short.
*/
-static void gen_reps
+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 len, /* size of the record in bytes */
+ int bias)
{
- int i,l,cnt = 0,low,high;
- int width = strlen(RES_NAME);
- int bias = 0;
- unsigned int a;
- unsigned int mask = 0;
- char *suffix;
+ int i,n,l,cnt = 0,low,high;
+ int width = strlen(RES_NAME) + 3;
+ unsigned long a;
+ unsigned long mask = 0;
- assert (nap);
-
- if (len == sizeof(int)/2)
- {
- bias = little_endian ? 8 * len : 0;
- suffix = " / 2";
- }
- else
- {
- assert(len==sizeof(int));
- suffix = "";
- }
+ assert (nap!=NULL);
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);
- }
- if (cnt != 8*len)
- {
- printf(" %-*s : Boolean;\n",width,RES_NAME);
}
printf(" end record;\n");
printf(" pragma Pack (%s);\n",name);
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);
- }
- if (cnt != 8*len)
- {
- mask = ~mask;
- assert(mask);
- if (little_endian)
- l = 8*len - 1;
- else
- l = 0;
- printf(" %-*s at 0 range %2d .. %2d;\n",width,RES_NAME,l,l);
+ printf(" %-*s at 0 range %2d .. %2d;\n",width,nap[i].name,
+ low-bias,high-bias);
}
+ i = 1; n = cnt;
printf(" end record;\n");
- printf(" for %s'Size use Interfaces.C.int'Size%s;\n", name, suffix);
+ 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, int mask)
+static void chtype_rep (const char *name, attr_t mask)
{
- int x = -1;
- int t = x & 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);
+ printf(" %-5s at 0 range %2d .. %2d;\n",name,low,high);
}
static void gen_chtype_rep(const char *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 Interfaces.C.int'Size;\n",name);
+ printf(" end record;\n for %s'Size use %d;\n",name,8*sizeof(chtype));
printf(" -- Please note: this rep. clause is generated and may be\n");
printf(" -- different on your system.\n");
}
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);
+ printf(" %-7s at 0 range %3d .. %3d;\n",name,low,high);
}
#endif
{(char *)0, 0}
};
- gen_reps (nap, name, sizeof(int)/2);
+ 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++;
+ }
+ }
+ attr = attr >> 1;
+ }
+ gen_reps (nap, name, (len+7)/8, little_endian?start:0);
}
static void gen_menu_opt_rep(const char *name)
#endif
{(char *)0, 0}
};
- gen_reps (nap, name, sizeof(int));
+ gen_reps (nap, name, sizeof(int),0);
}
static void gen_item_opt_rep(const char *name)
{"Selectable", O_SELECTABLE},
#endif
{(char *)0 , 0}
- };
- gen_reps (nap, name, sizeof(int));
+ };
+ gen_reps (nap, name, sizeof(int),0);
}
static void gen_form_opt_rep(const char *name)
#endif
{(char *)0 , 0}
};
- gen_reps (nap, name, sizeof(int));
+ gen_reps (nap, name, sizeof(int),0);
}
/*
#endif
{(char *)0, 0}
};
- gen_reps (nap, name, sizeof(int));
+ gen_reps (nap, name, sizeof(int),0);
}
/*
printf(" %-16s : Special_Key_Code renames %s;\n",old_name,name);
}
}
-
+
/*
* Generate constants for the key codes. When called with mode==0, a
* complete list with nice constant names in proper casing style will
#endif
#ifdef KEY_MOUSE
keydef("Key_Mouse","KEY_MOUSE",KEY_MOUSE,mode);
-#endif
+#endif
#ifdef KEY_RESIZE
keydef("Key_Resize","KEY_RESIZE",KEY_RESIZE,mode);
-#endif
+#endif
}
/*
#endif
}
+
+#define GEN_EVENT(name,value) \
+ printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
+ #name, value)
+
+#define GEN_MEVENT(name) \
+ printf(" %-25s : constant Event_Mask := 8#%011lo#;\n", \
+ #name, name)
+
+static
+void gen_mouse_events(void)
+{
+ mmask_t all1 = 0;
+ mmask_t all2 = 0;
+ mmask_t all3 = 0;
+ mmask_t all4 = 0;
+
+#ifdef BUTTON1_RELEASED
+ GEN_MEVENT(BUTTON1_RELEASED);
+ all1 |= BUTTON1_RELEASED;
+#endif
+#ifdef BUTTON1_PRESSED
+ GEN_MEVENT(BUTTON1_PRESSED);
+ all1 |= BUTTON1_PRESSED;
+#endif
+#ifdef BUTTON1_CLICKED
+ GEN_MEVENT(BUTTON1_CLICKED);
+ all1 |= BUTTON1_CLICKED;
+#endif
+#ifdef BUTTON1_DOUBLE_CLICKED
+ GEN_MEVENT(BUTTON1_DOUBLE_CLICKED);
+ all1 |= BUTTON1_DOUBLE_CLICKED;
+#endif
+#ifdef BUTTON1_TRIPLE_CLICKED
+ GEN_MEVENT(BUTTON1_TRIPLE_CLICKED);
+ all1 |= BUTTON1_TRIPLE_CLICKED;
+#endif
+#ifdef BUTTON1_RESERVED_EVENT
+ GEN_MEVENT(BUTTON1_RESERVED_EVENT);
+ all1 |= BUTTON1_RESERVED_EVENT;
+#endif
+#ifdef BUTTON2_RELEASED
+ GEN_MEVENT(BUTTON2_RELEASED);
+ all2 |= BUTTON2_RELEASED;
+#endif
+#ifdef BUTTON2_PRESSED
+ GEN_MEVENT(BUTTON2_PRESSED);
+ all2 |= BUTTON2_PRESSED;
+#endif
+#ifdef BUTTON2_CLICKED
+ GEN_MEVENT(BUTTON2_CLICKED);
+ all2 |= BUTTON2_CLICKED;
+#endif
+#ifdef BUTTON2_DOUBLE_CLICKED
+ GEN_MEVENT(BUTTON2_DOUBLE_CLICKED);
+ all2 |= BUTTON2_DOUBLE_CLICKED;
+#endif
+#ifdef BUTTON2_TRIPLE_CLICKED
+ GEN_MEVENT(BUTTON2_TRIPLE_CLICKED);
+ all2 |= BUTTON2_TRIPLE_CLICKED;
+#endif
+#ifdef BUTTON2_RESERVED_EVENT
+ GEN_MEVENT(BUTTON2_RESERVED_EVENT);
+ all2 |= BUTTON2_RESERVED_EVENT;
+#endif
+#ifdef BUTTON3_RELEASED
+ GEN_MEVENT(BUTTON3_RELEASED);
+ all3 |= BUTTON3_RELEASED;
+#endif
+#ifdef BUTTON3_PRESSED
+ GEN_MEVENT(BUTTON3_PRESSED);
+ all3 |= BUTTON3_PRESSED;
+#endif
+#ifdef BUTTON3_CLICKED
+ GEN_MEVENT(BUTTON3_CLICKED);
+ all3 |= BUTTON3_CLICKED;
+#endif
+#ifdef BUTTON3_DOUBLE_CLICKED
+ GEN_MEVENT(BUTTON3_DOUBLE_CLICKED);
+ all3 |= BUTTON3_DOUBLE_CLICKED;
+#endif
+#ifdef BUTTON3_TRIPLE_CLICKED
+ GEN_MEVENT(BUTTON3_TRIPLE_CLICKED);
+ all3 |= BUTTON3_TRIPLE_CLICKED;
+#endif
+#ifdef BUTTON3_RESERVED_EVENT
+ GEN_MEVENT(BUTTON3_RESERVED_EVENT);
+ all3 |= BUTTON3_RESERVED_EVENT;
+#endif
+#ifdef BUTTON4_RELEASED
+ GEN_MEVENT(BUTTON4_RELEASED);
+ all4 |= BUTTON4_RELEASED;
+#endif
+#ifdef BUTTON4_PRESSED
+ GEN_MEVENT(BUTTON4_PRESSED);
+ all4 |= BUTTON4_PRESSED;
+#endif
+#ifdef BUTTON4_CLICKED
+ GEN_MEVENT(BUTTON4_CLICKED);
+ all4 |= BUTTON4_CLICKED;
+#endif
+#ifdef BUTTON4_DOUBLE_CLICKED
+ GEN_MEVENT(BUTTON4_DOUBLE_CLICKED);
+ all4 |= BUTTON4_DOUBLE_CLICKED;
+#endif
+#ifdef BUTTON4_TRIPLE_CLICKED
+ GEN_MEVENT(BUTTON4_TRIPLE_CLICKED);
+ all4 |= BUTTON4_TRIPLE_CLICKED;
+#endif
+#ifdef BUTTON4_RESERVED_EVENT
+ GEN_MEVENT(BUTTON4_RESERVED_EVENT);
+ all4 |= BUTTON4_RESERVED_EVENT;
+#endif
+#ifdef BUTTON_CTRL
+ GEN_MEVENT(BUTTON_CTRL);
+#endif
+#ifdef BUTTON_SHIFT
+ GEN_MEVENT(BUTTON_SHIFT);
+#endif
+#ifdef BUTTON_ALT
+ GEN_MEVENT(BUTTON_ALT);
+#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);
+}
+
/*
* Output some comment lines indicating that the file is generated.
* The name parameter is the name of the facility to be used in
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");
+ printf("define(`M4_BIT_ORDER',`%s_Order_First')",
+ little_endian ? "Low":"High");
}
/*
*/
static void gen_linkopts (void)
{
- printf(" pragma Linker_Options (\"-lncurses\");\n");
+ printf(" pragma Linker_Options (\"-lAdaCurses%s\");\n", model);
+ printf(" pragma Linker_Options (\"-lncurses%s\");\n", model);
}
/*
*/
static void gen_menu_linkopts (void)
{
- printf(" pragma Linker_Options (\"-lmenu\");\n");
+ printf(" pragma Linker_Options (\"-lmenu%s\");\n", model);
}
/*
*/
static void gen_form_linkopts (void)
{
- printf(" pragma Linker_Options (\"-lform\");\n");
+ printf(" pragma Linker_Options (\"-lform%s\");\n", model);
}
/*
*/
static void gen_panel_linkopts (void)
{
- printf(" pragma Linker_Options (\"-lpanel\");\n");
+ printf(" pragma Linker_Options (\"-lpanel%s\");\n", model);
}
static void gen_version_info (void)
{
- printf(" NC_Major_Version : constant := %d; -- Major version of ncurses library\n", NCURSES_VERSION_MAJOR);
- printf(" NC_Minor_Version : constant := %d; -- Minor version of ncurses library\n", NCURSES_VERSION_MINOR);
- printf(" NC_Version : constant String := %c%d.%d%c; -- Version of ncurses library\n", '"',NCURSES_VERSION_MAJOR,NCURSES_VERSION_MINOR,'"');
+ 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,'"');
+}
+
+static int
+eti_gen(char*buf, int code, const char* name, int* etimin, int* etimax)
+{
+ sprintf(buf," E_%-16s : constant Eti_Error := %d;\n",name,code);
+ if (code < *etimin)
+ *etimin = code;
+ if (code > *etimax)
+ *etimax = code;
+ return strlen(buf);
+}
+
+#define GEN_OFFSET(member,itype) \
+ if (sizeof(((WINDOW*)0)->member)==sizeof(itype)) { \
+ o = offsetof(WINDOW, member); \
+ if ((o%sizeof(itype) == 0)) { \
+ printf(" Offset%-*s : constant Natural := %2d; -- %s\n", \
+ 8, #member, o/sizeof(itype),#itype); \
+ } \
+ }
+
+static void
+gen_offsets(void)
+{
+ int 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(_scroll,char);
+ s_bool = "char";
+ } else if (sizeof(bool) == sizeof(short)) {
+ GEN_OFFSET(_scroll,short);
+ s_bool = "short";
+ } else if (sizeof(bool) == sizeof(int)) {
+ GEN_OFFSET(_scroll,int);
+ s_bool = "int";
+ }
+ printf(" Sizeof%-*s : constant Natural := %2d; -- %s\n",
+ 8, "_bool",sizeof(bool),"bool");
+ /* In ncurses _maxy and _maxx needs an offset for the "public"
+ * value
+ */
+ printf(" Offset%-*s : constant Natural := %2d; -- %s\n",
+ 8, "_XY",1,"int");
+ printf("\n");
+ printf(" type Curses_Bool is mod 2 ** Interfaces.C.%s'Size;\n",s_bool);
}
/*
* M - Menus
* F - Forms
* P - Pointer Device (Mouse)
+ * E - ETI base definitions
*
* The second character then denotes the specific output that should be
* generated for the selected facility.
if (*s == 0x78)
little_endian = 1;
- if (argc!=3)
+ if (argc!=4)
exit(1);
+ model = *++argv;
switch(argv[1][0])
{
+ /* ---------------------------------------------------------------*/
case 'B': /* The Base facility */
switch(argv[2][0])
{
case 'C': /* generate color constants */
gen_color();
break;
+ case 'D': /* generate displacements of fields in WINDOW struct. */
+ gen_offsets();
+ break;
+ case 'E': /* generate Mouse Event codes */
+ gen_mouse_events();
+ break;
case 'M': /* generate constants for the ACS characters */
gen_acs();
break;
break;
}
break;
+ /* ---------------------------------------------------------------*/
case 'M': /* The Menu facility */
switch(argv[2][0])
{
break;
}
break;
+ /* ---------------------------------------------------------------*/
case 'F': /* The Form facility */
switch(argv[2][0])
{
break;
}
break;
+ /* ---------------------------------------------------------------*/
case 'P': /* The Pointer(=Mouse) facility */
- switch(argv[2][0])
- {
+ switch(argv[2][0]) {
case 'B': /* write some initial comment lines */
mouse_basedefs();
break;
break;
}
break;
+ /* ---------------------------------------------------------------*/
+ case 'E' : /* chtype size detection */
+ switch(argv[2][0]) {
+ 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("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("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(" subtype Eti_Error is C_Int range %d .. %d;\n\n",
+ etimin,etimax);
+ printf(buf);
+ }
+ break;
+ default:
+ break;
+ }
+ break;
+ /* ---------------------------------------------------------------*/
+ case 'V' : /* plain version dump */
+ {
+ switch(argv[2][0]) {
+ case '1': /* major version */
+#ifdef NCURSES_VERSION_MAJOR
+ printf("%d",NCURSES_VERSION_MAJOR);
+#endif
+ break;
+ case '2': /* minor version */
+#ifdef NCURSES_VERSION_MINOR
+ printf("%d",NCURSES_VERSION_MINOR);
+#endif
+ break;
+ case '3': /* patch level */
+#ifdef NCURSES_VERSION_PATCH
+ printf("%d",NCURSES_VERSION_PATCH);
+#endif
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ /* ---------------------------------------------------------------*/
default:
break;
}
return 0;
}
+
-------------------------------------------------------------------------------
+-- -*- ada -*-
+define(`HTMLNAME',`terminal_interface-curses-aux__ads.htm')dnl
+include(M4MACRO)------------------------------------------------------------------------------
-- --
-- GNAT ncurses Binding --
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.8 $
--- Binding Version 00.93
+-- $Revision: 1.13 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
+include(`Base_Defs')
with System;
with Interfaces.C;
with Interfaces.C.Strings; use Interfaces.C.Strings;
with Unchecked_Conversion;
package Terminal_Interface.Curses.Aux is
- pragma Preelaborate (Aux);
+ pragma Preelaborate (Terminal_Interface.Curses.Aux);
- use type Interfaces.C.Int;
+ use type Interfaces.C.int;
- subtype C_Int is Interfaces.C.Int;
- subtype C_Short is Interfaces.C.Short;
- subtype C_Long_Int is Interfaces.C.Long;
- subtype C_Size_T is Interfaces.C.Size_T;
- subtype C_Char_Ptr is Interfaces.C.Strings.Chars_Ptr;
+ subtype C_Int is Interfaces.C.int;
+ subtype C_Short is Interfaces.C.short;
+ subtype C_Long_Int is Interfaces.C.long;
+ subtype C_Size_T is Interfaces.C.size_t;
+ subtype C_UInt is Interfaces.C.unsigned;
+ subtype C_ULong is Interfaces.C.unsigned_long;
+ subtype C_Char_Ptr is Interfaces.C.Strings.chars_ptr;
type C_Void_Ptr is new System.Address;
-
+include(`Chtype_Def')
-- This is how those constants are defined in ncurses. I see them also
-- exactly like this in all ETI implementations I ever tested. So it
-- could be that this is quite general, but please check with your curses.
-- This is critical, because curses sometime mixes boolean returns with
-- returning an error status.
- Curses_Ok : constant C_Int := 0;
- Curses_Err : constant C_Int := -1;
-
- Curses_True : constant C_Int := 1;
- Curses_False : constant C_Int := 0;
-
- subtype Eti_Error is C_Int range -14 .. 0;
- -- Type for error codes returned by the menu and forms subsystem
+ Curses_Ok : constant C_Int := CF_CURSES_OK;
+ Curses_Err : constant C_Int := CF_CURSES_ERR;
- E_Ok : constant Eti_Error := 0;
- E_System_Error : constant Eti_Error := -1;
- E_Bad_Argument : constant Eti_Error := -2;
- E_Posted : constant Eti_Error := -3;
- E_Connected : constant Eti_Error := -4;
- E_Bad_State : constant Eti_Error := -5;
- E_No_Room : constant Eti_Error := -6;
- E_Not_Posted : constant Eti_Error := -7;
- E_Unknown_Command : constant Eti_Error := -8;
- E_No_Match : constant Eti_Error := -9;
- E_Not_Selectable : constant Eti_Error := -10;
- E_Not_Connected : constant Eti_Error := -11;
- E_Request_Denied : constant Eti_Error := -12;
- E_Invalid_Field : constant Eti_Error := -13;
- E_Current : constant Eti_Error := -14;
+ Curses_True : constant C_Int := CF_CURSES_TRUE;
+ Curses_False : constant C_Int := CF_CURSES_FALSE;
+ -- Eti_Error: type for error codes returned by the menu and form subsystem
+include(`Eti_Defs')
procedure Eti_Exception (Code : Eti_Error);
-- Dispatch the error code and raise the appropriate exception
--
--
-- Some helpers
- function CInt_To_Chtype is new
- Unchecked_Conversion (Source => C_Int,
+ function Chtype_To_AttrChar is new
+ Unchecked_Conversion (Source => C_Chtype,
Target => Attributed_Character);
- function Chtype_To_CInt is new
+ function AttrChar_To_Chtype is new
Unchecked_Conversion (Source => Attributed_Character,
- Target => C_Int);
+ Target => C_Chtype);
+
+ function AttrChar_To_AttrType is new
+ Unchecked_Conversion (Source => Attributed_Character,
+ Target => C_AttrType);
+
+ function AttrType_To_AttrChar is new
+ Unchecked_Conversion (Source => C_AttrType,
+ Target => Attributed_Character);
procedure Fill_String (Cp : in chars_ptr;
Str : out String);
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.6 $
--- Binding Version 00.93
+-- $Revision: 1.12 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux;
+with Interfaces.C;
package Terminal_Interface.Curses.Forms.Field_Types is
- pragma Preelaborate (Field_Types);
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
+ use type Interfaces.C.int;
+ subtype C_Int is Interfaces.C.int;
-- MANPAGE(`form_fieldtype.3x')
-- | Most of this is used by the implementations of the child packages.
-- |
private
- use Terminal_Interface.Curses.Aux;
-
type Makearg_Function is access
function (Args : System.Address) return System.Address;
pragma Convention (C, Makearg_Function);
-- |
type Low_Level_Field_Type is
record
- Status : C_Short;
- Ref_Count : C_Long_Int;
+ Status : Interfaces.C.short;
+ Ref_Count : Interfaces.C.long;
Left, Right : System.Address;
Makearg : Makearg_Function;
Copyarg : Copyarg_Function;
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-forms-field_user_data__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.8 $
--- Binding Version 00.93
+-- $Revision: 1.13 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
generic
type User is limited private;
type User_Access is access User;
package Terminal_Interface.Curses.Forms.Field_User_Data is
- pragma Preelaborate (Field_User_Data);
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
-- MANPAGE(`form_field_userptr.3x')
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms-form_user_data_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-forms-form_user_data__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.8 $
--- Binding Version 00.93
+-- $Revision: 1.12 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
generic
type User is limited private;
type User_Access is access User;
package Terminal_Interface.Curses.Forms.Form_User_Data is
- pragma Preelaborate (Form_User_Data);
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
-- MANPAGE(`form_userptr.3x')
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-forms_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-forms__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.14 $
--- Binding Version 00.93
+-- $Revision: 1.23 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
include(`Form_Base_Defs')
with System;
with Interfaces.C;
package Terminal_Interface.Curses.Forms is
- pragma Preelaborate (Forms);
-include(`Form_Linker_Options')
-
+ pragma Preelaborate (Terminal_Interface.Curses.Forms);
+include(`Form_Linker_Options')dnl
+include(`Linker_Options')
Space : Character renames Ada.Characters.Latin_1.Space;
type Field is private;
Center,
Right);
-include(`Field_Rep')
+ pragma Warnings (Off);
+include(`Field_Rep')Dnl
+
+ pragma Warnings (On);
function Default_Field_Options return Field_Option_Set;
-- The initial defaults for the field options.
pragma Inline (Default_Field_Options);
-include(`Form_Opt_Rep')
+ pragma Warnings (Off);
+include(`Form_Opt_Rep')Dnl
+
+ pragma Warnings (On);
function Default_Form_Options return Form_Option_Set;
-- The initial defaults for the form options.
------------------------------------------------------------------------------
private
+ type Field is new System.Storage_Elements.Integer_Address;
+ type Form is new System.Storage_Elements.Integer_Address;
- type Field is new System.Address;
- type Form is new System.Address;
-
- Null_Field : constant Field := Field (System.Null_Address);
- Null_Form : constant Form := Form (System.Null_Address);
+ Null_Field : constant Field := 0;
+ Null_Form : constant Form := 0;
end Terminal_Interface.Curses.Forms;
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus-item_user_data_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-menus-item_user_data__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.7 $
--- Binding Version 00.93
+-- $Revision: 1.12 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
generic
type User is limited private;
type User_Access is access User;
package Terminal_Interface.Curses.Menus.Item_User_Data is
- pragma Preelaborate (Item_User_Data);
+ pragma Preelaborate (Terminal_Interface.Curses.Menus.Item_User_Data);
-- The binding uses the same user pointer for menu items
-- as the low level C implementation. So you can safely
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus-menu_user_data_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-menus-menu_user_data__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.7 $
--- Binding Version 00.93
+-- $Revision: 1.12 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
generic
type User is limited private;
type User_Access is access User;
package Terminal_Interface.Curses.Menus.Menu_User_Data is
- pragma Preelaborate (Menu_User_Data);
+ pragma Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
-- MANPAGE(`menu_userptr.3x')
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-menus_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-menus__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.12 $
--- Binding Version 00.93
+-- $Revision: 1.20 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
include(`Menu_Base_Defs')
with System;
with Ada.Characters.Latin_1;
package Terminal_Interface.Curses.Menus is
- pragma Preelaborate (Menus);
-include(`Menu_Linker_Options')
-
-
+ pragma Preelaborate (Terminal_Interface.Curses.Menus);
+include(`Menu_Linker_Options')dnl
+include(`Linker_Options')
Space : Character renames Ada.Characters.Latin_1.Space;
type Item is private;
--
-- Menu options
--
+ pragma Warnings (Off);
+include(`Menu_Opt_Rep')dnl
-include(`Menu_Opt_Rep')
+ pragma Warnings (On);
function Default_Menu_Options return Menu_Option_Set;
-- Initial default options for a menu.
--
-- Item options
--
-include(`Item_Rep')
+ pragma Warnings (Off);
+include(`Item_Rep')dnl
+
+ pragma Warnings (On);
function Default_Item_Options return Item_Option_Set;
-- Initial default options for an item.
-------------------------------------------------------------------------------
private
- type Item is new System.Address;
- type Menu is new System.Address;
+ type Item is new System.Storage_Elements.Integer_Address;
+ type Menu is new System.Storage_Elements.Integer_Address;
- Null_Item : constant Item := Item (System.Null_Address);
- Null_Menu : constant Menu := Menu (System.Null_Address);
+ Null_Item : constant Item := 0;
+ Null_Menu : constant Menu := 0;
end Terminal_Interface.Curses.Menus;
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-mouse_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-mouse__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.12 $
--- Binding Version 00.93
+-- $Revision: 1.19 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
include(`Mouse_Base_Defs')
with System;
package Terminal_Interface.Curses.Mouse is
- pragma Preelaborate (Mouse);
+ pragma Preelaborate (Terminal_Interface.Curses.Mouse);
-- MANPAGE(`curs_mouse.3x')
-- Please note, that in ncurses-1.9.9e documentation mouse support
Shift, -- Shift Key
Alt); -- ALT Key
+ subtype Real_Buttons is Mouse_Button range Left .. Button4;
+ subtype Modifier_Keys is Mouse_Button range Control .. Alt;
+
type Button_State is (Released,
Pressed,
Clicked,
Double_Clicked,
Triple_Clicked);
+ type Button_States is array (Button_State) of Boolean;
+ pragma Pack (Button_States);
+
+ All_Clicks : constant Button_States := (Clicked .. Triple_Clicked => True,
+ others => False);
+ All_States : constant Button_States := (others => True);
+
type Mouse_Event is private;
-- MANPAGE(`curs_mouse.3x')
-- Return true if a mouse device is supported, false otherwise.
procedure Register_Reportable_Event
- (B : in Mouse_Button;
- S : in Button_State;
- Mask : in out Event_Mask);
+ (Button : in Mouse_Button;
+ State : in Button_State;
+ Mask : in out Event_Mask);
-- Stores the event described by the button and the state in the mask.
-- Before you call this the first time, you should init the mask
-- with the Empty_Mask constant
pragma Inline (Register_Reportable_Event);
+ procedure Register_Reportable_Events
+ (Button : in Mouse_Button;
+ State : in Button_States;
+ Mask : in out Event_Mask);
+ -- Register all events described by the Button and the State bitmap.
+ -- Before you call this the first time, you should init the mask
+ -- with the Empty_Mask constant
+
-- ANCHOR(`mousemask()',`Start_Mouse')
+ -- There is one difference to mousmask(): we return the value of the
+ -- old mask, that means the event mask value before this call.
function Start_Mouse (Mask : Event_Mask := All_Events)
return Event_Mask;
-- AKA
pragma Inline (Start_Mouse);
- procedure End_Mouse;
- -- Terminates the mouse
+ procedure End_Mouse (Mask : in Event_Mask := No_Events);
+ -- Terminates the mouse, restores the specified event mask
pragma Inline (End_Mouse);
-- ANCHOR(`getmouse()',`Get_Mouse')
pragma Inline (Mouse_Interval);
private
- type Event_Mask is new Interfaces.C.int;
- No_Events : constant Event_Mask := 0;
- All_Events : constant Event_Mask := -1;
+ type Event_Mask is new Interfaces.C.unsigned_long;
type Mouse_Event is
record
Id : Integer range Integer (Interfaces.C.short'First) ..
- Integer (Interfaces.C.Short'Last);
+ Integer (Interfaces.C.short'Last);
X, Y, Z : Integer range Integer (Interfaces.C.int'First) ..
Integer (Interfaces.C.int'Last);
Bstate : Event_Mask;
Generation_Bit_Order : constant System.Bit_Order := System.M4_BIT_ORDER;
-- This constant may be different on your system.
+include(`Mouse_Events')
+
+ No_Events : constant Event_Mask := 0;
+ All_Events : constant Event_Mask := ALL_MOUSE_EVENTS;
+
end Terminal_Interface.Curses.Mouse;
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-panels-user_data_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-panels-user_data__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.7 $
--- Binding Version 00.93
+-- $Revision: 1.12 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
generic
type User is limited private;
type User_Access is access all User;
package Terminal_Interface.Curses.Panels.User_Data is
- pragma Preelaborate (User_Data);
+ pragma Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
-- MANPAGE(`panel.3x')
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses-panels_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses-panels__ads.htm')dnl
include(M4MACRO)dnl
------------------------------------------------------------------------------
-- --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.7 $
--- Binding Version 00.93
+-- $Revision: 1.14 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
with System;
package Terminal_Interface.Curses.Panels is
- pragma Preelaborate (Panels);
-include(`Panel_Linker_Options')
-
+ pragma Preelaborate (Terminal_Interface.Curses.Panels);
+include(`Panel_Linker_Options')dnl
+include(`Linker_Options')
type Panel is private;
---------------------------
pragma Inline (Delete);
private
- type Panel is new System.Address;
- Null_Panel : constant Panel := Panel (System.Null_Address);
+ type Panel is new System.Storage_Elements.Integer_Address;
+ Null_Panel : constant Panel := 0;
end Terminal_Interface.Curses.Panels;
-- -*- ada -*-
-define(`HTMLNAME',`terminal_interface-curses_s.html')dnl
+define(`HTMLNAME',`terminal_interface-curses__ads.htm')dnl
include(M4MACRO)------------------------------------------------------------------------------
-- --
-- GNAT ncurses Binding --
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Juergen Pfeifer <Juergen.Pfeifer@T-Online.de> 1996
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
-- Version Control:
--- $Revision: 1.15 $
--- Binding Version 00.93
+-- $Revision: 1.26 $
+-- Binding Version 01.00
------------------------------------------------------------------------------
include(`Base_Defs')
-with System;
+with System.Storage_Elements;
with Interfaces.C; -- We need this for some assertions.
package Terminal_Interface.Curses is
- pragma Preelaborate (Curses);
+ pragma Preelaborate (Terminal_Interface.Curses);
include(`Linker_Options')
include(`Version_Info')
type Window is private;
-- For those who like to use the original key names we produce them were
-- they differ from the original. Please note that they may differ in
-- lower/upper case.
-include(`Old_Keys')
+include(`Old_Keys')dnl
------------------------------------------------------------------------------
-- predefined (see below), although they may not really exist.
include(`Color_Defs')
- type RGB_Value is range 0 .. Integer (Interfaces.C.Short'Last);
+ type RGB_Value is range 0 .. Integer (Interfaces.C.short'Last);
for RGB_Value'Size use Interfaces.C.short'Size;
-- Some system may allow to redefine a color by setting RGB values.
-- the other for the background
include(`Character_Attribute_Set_Rep')
- -- (n)curses uses half of an integer for attributes.
+ -- (n)curses uses all but the lowes 16 Bits for Attributes.
Normal_Video : constant Character_Attribute_Set := (others => False);
type Attributed_Character is
record
- Attr : Character_Attribute_Set := Normal_Video;
- Color : Color_Pair := 0;
- Ch : Character := ' ';
+ Attr : Character_Attribute_Set;
+ Color : Color_Pair;
+ Ch : Character;
end record;
pragma Convention (C, Attributed_Character);
-- This is the counterpart for the chtype in C.
Default_Character : constant Attributed_Character
:= (Ch => Character'First,
Color => Color_Pair'First,
- Attr => Normal_Video);
+ Attr => (others => False)); -- preelaboratable Normal_Video
type Attributed_String is array (Positive range <>) of Attributed_Character;
pragma Pack (Attributed_String);
-- You must use this constants as indices into the ACS_Map array
-- to get the corresponding attributed character at runtime.
--
-include(`ACS_Map')
+include(`ACS_Map')dnl
-- MANPAGE(`curs_initscr.3x')
-- | Not implemented: newterm, set_term, delscreen
-- AKA
pragma Inline (Get_Character_Attribute);
+ -- ANCHOR(`wcolor_set()',`Set_Color')
+ procedure Set_Color (Win : in Window := Standard_Window;
+ Pair : in Color_Pair);
+ -- AKA
+ pragma Inline (Set_Color);
+
-- ANCHOR(`wchgat()',`Change_Attributes')
procedure Change_Attributes
(Win : in Window := Standard_Window;
-- AKA
pragma Inline (Get_Soft_Label_Key_Attributes);
+ -- ANCHOR(`slk_color()',`Set_Soft_Label_Key_Color')
+ procedure Set_Soft_Label_Key_Color (Pair : in Color_Pair);
+ -- AKA
+ pragma Inline (Set_Soft_Label_Key_Color);
+
-- MANPAGE(`keyok.3x')
-- ANCHOR(`keyok()',`Enable_Key')
-- We don't inline this procedure
private
- type Window is new System.Address;
- Null_Window : constant Window := Window (System.Null_Address);
+ type Window is new System.Storage_Elements.Integer_Address;
+ Null_Window : constant Window := 0;
+
+ -- The next constants are generated and may be different on your
+ -- architecture.
+ --
+include(`Window_Offsets')dnl
+ Curses_Bool_False : constant Curses_Bool := 0;
end Terminal_Interface.Curses;
--- /dev/null
+<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
--- /dev/null
+<HTML><HEAD><TITLE>T</TITLE></HEAD>
+<BODY>
+<H2>Files - T</H2>
+<A HREF=../files.htm TARGET=_self>[index]</A>
+<UL COMPACT TYPE=DISC>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-alpha__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-alpha.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-alphanumeric.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-enumeration-ada.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-enumeration__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-enumeration.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-intfield__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-intfield.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-ipv4_address.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-numeric__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-numeric.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-regexp__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-regexp.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-user-choice__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-user-choice.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types-user__ads.htm TARGET=main>terminal_interface-curses-forms-field_types-user.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_types__ads.htm TARGET=main>terminal_interface-curses-forms-field_types.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-field_user_data__ads.htm TARGET=main>terminal_interface-curses-forms-field_user_data.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms-form_user_data__ads.htm TARGET=main>terminal_interface-curses-forms-form_user_data.ads</A>
+<LI><A HREF=../terminal_interface-curses-forms__ads.htm TARGET=main>terminal_interface-curses-forms.ads</A>
+<LI><A HREF=../terminal_interface-curses-menus-item_user_data__ads.htm TARGET=main>terminal_interface-curses-menus-item_user_data.ads</A>
+<LI><A HREF=../terminal_interface-curses-menus-menu_user_data__ads.htm TARGET=main>terminal_interface-curses-menus-menu_user_data.ads</A>
+<LI><A HREF=../terminal_interface-curses-menus__ads.htm TARGET=main>terminal_interface-curses-menus.ads</A>
+<LI><A HREF=../terminal_interface-curses-mouse__ads.htm TARGET=main>terminal_interface-curses-mouse.ads</A>
+<LI><A HREF=../terminal_interface-curses-panels-user_data__ads.htm TARGET=main>terminal_interface-curses-panels-user_data.ads</A>
+<LI><A HREF=../terminal_interface-curses-panels__ads.htm TARGET=main>terminal_interface-curses-panels.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io-complex_io__ads.htm TARGET=main>terminal_interface-curses-text_io-complex_io.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io-decimal_io__ads.htm TARGET=main>terminal_interface-curses-text_io-decimal_io.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io-enumeration_io__ads.htm TARGET=main>terminal_interface-curses-text_io-enumeration_io.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io-fixed_io__ads.htm TARGET=main>terminal_interface-curses-text_io-fixed_io.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io-float_io__ads.htm TARGET=main>terminal_interface-curses-text_io-float_io.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io-integer_io__ads.htm TARGET=main>terminal_interface-curses-text_io-integer_io.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io-modular_io__ads.htm TARGET=main>terminal_interface-curses-text_io-modular_io.ads</A>
+<LI><A HREF=../terminal_interface-curses-text_io__ads.htm TARGET=main>terminal_interface-curses-text_io.ads</A>
+<LI><A HREF=../terminal_interface-curses__ads.htm TARGET=main>terminal_interface-curses.ads</A>
+<LI><A HREF=../terminal_interface__ads.htm TARGET=main>terminal_interface.ads</A>
+</UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<HEAD><TITLE></TITLE></HEAD>
+<BODY>
+<H2 ALIGN=CENTER>Functions/Procedures</H2>
+<A HREF=funcs/A.htm>[A]</A>
+<A HREF=funcs/C.htm>[C]</A>
+<A HREF=funcs/E.htm>[E]</A>
+<A HREF=funcs/F.htm>[F]</A>
+<A HREF=funcs/G.htm>[G]</A>
+<A HREF=funcs/I.htm>[I]</A>
+<A HREF=funcs/L.htm>[L]</A>
+<A HREF=funcs/M.htm>[M]</A>
+<A HREF=funcs/N.htm>[N]</A>
+<A HREF=funcs/P.htm>[P]</A>
+<A HREF=funcs/R.htm>[R]</A>
+<A HREF=funcs/S.htm>[S]</A>
+<A HREF=funcs/T.htm>[T]</A>
+<A HREF=funcs/U.htm>[U]</A>
+<A HREF=funcs/V.htm>[V]</A>
+</BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-field_types-alpha__ads.htm#41_53 TARGET=main>Alpha</A><LI><A HREF=../terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#41_53 TARGET=main>AlphaNumeric</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-forms-field_types-user__ads.htm#63_13 TARGET=main>Character_Check</A><LI><A HREF=../terminal_interface-curses-forms-field_types-user-choice__ads.htm#43_58 TARGET=main>Choice</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-text_io-complex_io__ads.htm#44_17 TARGET=main>Complex_Types</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-field_types__ads.htm#149_13 TARGET=main>C_Builtin_Router</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></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-forms-field_types-enumeration__ads.htm#43_53 TARGET=main>Enumeration</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-field_types-user__ads.htm#56_13 TARGET=main>Field_Check</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></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-text_io__ads.htm#62_13 TARGET=main>Get_Window</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-forms-field_types-intfield__ads.htm#41_53 TARGET=main>IntField</A><LI><A HREF=../terminal_interface-curses-forms-field_types-ipv4_address__ads.htm#41_53 TARGET=main>IPV4_Address</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-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></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-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-forms-field_types-numeric__ads.htm#41_53 TARGET=main>Numeric</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-forms-field_types-user-choice__ads.htm#67_13 TARGET=main>Previous</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-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#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></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-forms-field_types-regexp__ads.htm#41_53 TARGET=main>RegExp</A><LI><A HREF=../terminal_interface-curses-forms-field_types-enumeration__ads.htm#77_14 TARGET=main>Release</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-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-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-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-text_io__ads.htm#59_14 TARGET=main>Set_Window</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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__ads.htm#41_9 TARGET=main>Terminal_Interface</A><LI><A HREF=../terminal_interface-curses-text_io__ads.htm#44_35 TARGET=main>Text_IO</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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-forms-field_types-user__ads.htm#43_53 TARGET=main>User</A></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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></UL></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<HTML>
+<HEAD><TITLE>Source Browser</TITLE></HEAD>
+<FRAMESET COLS='250,*'>
+<NOFRAME>
+<H2 ALIGN=CENTER>Files</H2>
+<A HREF=files/T.htm>[T]</A>
+</UL>
+<HR>
+<H2 ALIGN=CENTER>Functions/Procedures</H2>
+<A HREF=funcs/A.htm>[A]</A>
+<A HREF=funcs/C.htm>[C]</A>
+<A HREF=funcs/E.htm>[E]</A>
+<A HREF=funcs/F.htm>[F]</A>
+<A HREF=funcs/G.htm>[G]</A>
+<A HREF=funcs/I.htm>[I]</A>
+<A HREF=funcs/L.htm>[L]</A>
+<A HREF=funcs/M.htm>[M]</A>
+<A HREF=funcs/N.htm>[N]</A>
+<A HREF=funcs/P.htm>[P]</A>
+<A HREF=funcs/R.htm>[R]</A>
+<A HREF=funcs/S.htm>[S]</A>
+<A HREF=funcs/T.htm>[T]</A>
+<A HREF=funcs/U.htm>[U]</A>
+<A HREF=funcs/V.htm>[V]</A>
+</UL>
+</NOFRAME>
+<FRAMESET ROWS='50%,50%'>
+<FRAME NAME=files SRC=files.htm>
+<FRAME NAME=funcs SRC=funcs.htm>
+</FRAMESET>
+<FRAME NAME=main SRC=main.htm>
+</FRAMESET>
+</HTML>
--- /dev/null
+<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/A.htm>[A]</A>
+<A HREF=funcs/C.htm>[C]</A>
+<A HREF=funcs/E.htm>[E]</A>
+<A HREF=funcs/F.htm>[F]</A>
+<A HREF=funcs/G.htm>[G]</A>
+<A HREF=funcs/I.htm>[I]</A>
+<A HREF=funcs/L.htm>[L]</A>
+<A HREF=funcs/M.htm>[M]</A>
+<A HREF=funcs/N.htm>[N]</A>
+<A HREF=funcs/P.htm>[P]</A>
+<A HREF=funcs/R.htm>[R]</A>
+<A HREF=funcs/S.htm>[S]</A>
+<A HREF=funcs/T.htm>[T]</A>
+<A HREF=funcs/U.htm>[U]</A>
+<A HREF=funcs/V.htm>[V]</A>
+</UL>
+</BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<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>-- --</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>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">Jürgen Pfeifer</A> (<A HREF="mailto:juergen.pfeifer@gmx.net">juergen.pfeifer@gmx.net</A>) 1996 --</EM></FONT>
+<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+<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>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#49_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__adb.htm#44_58">Alpha</A><FONT COLOR=red><A NAME="41_53"></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#49_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>type</b> <FONT COLOR=red><A NAME="44_9">Alpha_Field</A></FONT> <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>record</b>
+ Minimum_Field_Width : 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#57_9">Field</A>;
+ Typ : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#44_9">Alpha_Field</A>);
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-alpha__ads.htm#49_14">Set_Field_Type</A>);
+
+<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.Alpha;
+</PRE></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<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>-- --</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>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">Jürgen Pfeifer</A> (<A HREF="mailto:juergen.pfeifer@gmx.net">juergen.pfeifer@gmx.net</A>) 1996 --</EM></FONT>
+<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+<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>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#49_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__adb.htm#44_58">AlphaNumeric</A><FONT COLOR=red><A NAME="41_53"></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#49_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>type</b> <FONT COLOR=red><A NAME="45_9">AlphaNumeric_Field</A></FONT> <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>record</b>
+ Minimum_Field_Width : 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#57_9">Field</A>;
+ Typ : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#45_9">AlphaNumeric_Field</A>);
+ <b>pragma</b> Inline (<A HREF="terminal_interface-curses-forms-field_types-alphanumeric__ads.htm#50_14">Set_Field_Type</A>);
+
+<b>end</b> Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
+</PRE></BODY></HTML>
\ No newline at end of file
--- /dev/null
+<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>
+<PRE>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<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>-- --</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>-- "Software"), to deal in the Software without restriction, including --</EM></FONT>
+<FONT COLOR=green><EM>-- without limitation the rights to use, copy, modify, merge, publish, --</EM></FONT>
+<FONT COLOR=green><EM>-- distribute, distribute with modifications, sublicense, and/or sell --</EM></FONT>
+<FONT COLOR=green><EM>-- copies of the Software, and to permit persons to whom the Software is --</EM></FONT>
+<FONT COLOR=green><EM>-- furnished to do so, subject to the following conditions: --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- The above copyright notice and this permission notice shall be included --</EM></FONT>
+<FONT COLOR=green><EM>-- in all copies or substantial portions of the Software. --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</EM></FONT>
+<FONT COLOR=green><EM>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</EM></FONT>
+<FONT COLOR=green><EM>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</EM></FONT>
+<FONT COLOR=green><EM>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</EM></FONT>
+<FONT COLOR=green><EM>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</EM></FONT>
+<FONT COLOR=green><EM>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</EM></FONT>
+<FONT COLOR=green><EM>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</EM></FONT>
+<FONT COLOR=green><EM>-- --</EM></FONT>
+<FONT COLOR=green><EM>-- Except as contained in this notice, the name(s) of the above copyright --</EM></FONT>
+<FONT COLOR=green><EM>-- holders shall not be used in advertising or otherwise to promote the --</EM></FONT>
+<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
+<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
+<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
+<FONT COLOR=green><EM>-- <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">Jürgen Pfeifer</A> (<A HREF="mailto:juergen.pfeifer@gmx.net">juergen.pfeifer@gmx.net</A>) 1996 --</EM></FONT>
+<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
+<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>generic</b>
+ <b>type</b> <FONT COLOR=red><A NAME="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#49_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>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#49_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>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#45_13">Create</A><FONT COLOR=red><A NAME="48_13"></A></FONT> (Set : <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>;
+ Case_Sensitive : Boolean := False;
+ Must_Be_Unique : Boolean := False)
+ <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration__ads.htm#62_9">Enumeration_Field</A>;
+
+ <b>function</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm#73_13">Value</A><FONT COLOR=red><A NAME="53_13"></A></FONT> (<FONT COLOR=red><A NAME="53_20">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms__ads.htm#57_9">Field</A>;
+ Buf : <A HREF="terminal_interface-curses-forms__ads.htm#132_9">Buffer_Number</A> := <A HREF="terminal_interface-curses-forms__ads.htm#132_9">Buffer_Number</A>'First) <b>return</b> <A HREF="terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm#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> Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
+</PRE></BODY></HTML>
\ No newline at end of file