From 91e462de27aeecd5b1c8965a6dba078f7a438003 Mon Sep 17 00:00:00 2001 From: "Thomas E. Dickey" Date: Sun, 16 Jan 2022 02:14:52 +0000 Subject: [PATCH] ncurses 6.3 - patch 20220115 + improve checks for valid mouse events when an intermediate mouse state is not part of the mousemask specified by the caller (report by Anton Vidovic, cf: 20111022). + use newer version 1.36 of gnathtml for generating Ada html files. --- Ada95/gen/Makefile.in | 7 +- NEWS | 8 +- VERSION | 2 +- dist.mk | 4 +- doc/html/ada/files.htm | 16 +- doc/html/ada/files/T.htm | 162 +- doc/html/ada/funcs.htm | 58 +- doc/html/ada/funcs/A.htm | 54 +- doc/html/ada/funcs/B.htm | 46 +- doc/html/ada/funcs/C.htm | 122 +- doc/html/ada/funcs/D.htm | 98 +- doc/html/ada/funcs/E.htm | 40 +- doc/html/ada/funcs/F.htm | 114 +- doc/html/ada/funcs/G.htm | 196 +- doc/html/ada/funcs/H.htm | 48 +- doc/html/ada/funcs/I.htm | 106 +- doc/html/ada/funcs/K.htm | 32 +- doc/html/ada/funcs/L.htm | 46 +- doc/html/ada/funcs/M.htm | 106 +- doc/html/ada/funcs/N.htm | 74 +- doc/html/ada/funcs/O.htm | 28 +- doc/html/ada/funcs/P.htm | 122 +- doc/html/ada/funcs/Q.htm | 20 +- doc/html/ada/funcs/R.htm | 82 +- doc/html/ada/funcs/S.htm | 386 +- doc/html/ada/funcs/T.htm | 82 +- doc/html/ada/funcs/U.htm | 50 +- doc/html/ada/funcs/V.htm | 26 +- doc/html/ada/funcs/W.htm | 110 +- doc/html/ada/index.htm | 80 +- doc/html/ada/main.htm | 142 +- .../terminal_interface-curses-aux__adb.htm | 192 +- .../terminal_interface-curses-aux__ads.htm | 230 +- ...ce-curses-forms-field_types-alpha__adb.htm | 120 +- ...ce-curses-forms-field_types-alpha__ads.htm | 112 +- ...es-forms-field_types-alphanumeric__adb.htm | 120 +- ...es-forms-field_types-alphanumeric__ads.htm | 112 +- ...forms-field_types-enumeration-ada__adb.htm | 152 +- ...forms-field_types-enumeration-ada__ads.htm | 124 +- ...ses-forms-field_types-enumeration__adb.htm | 198 +- ...ses-forms-field_types-enumeration__ads.htm | 170 +- ...curses-forms-field_types-intfield__adb.htm | 128 +- ...curses-forms-field_types-intfield__ads.htm | 116 +- ...es-forms-field_types-ipv4_address__adb.htm | 120 +- ...es-forms-field_types-ipv4_address__ads.htm | 110 +- ...-curses-forms-field_types-numeric__adb.htm | 132 +- ...-curses-forms-field_types-numeric__ads.htm | 116 +- ...e-curses-forms-field_types-regexp__adb.htm | 120 +- ...e-curses-forms-field_types-regexp__ads.htm | 114 +- ...ses-forms-field_types-user-choice__adb.htm | 190 +- ...ses-forms-field_types-user-choice__ads.htm | 178 +- ...ace-curses-forms-field_types-user__adb.htm | 218 +- ...ace-curses-forms-field_types-user__ads.htm | 182 +- ...nterface-curses-forms-field_types__adb.htm | 390 +- ...nterface-curses-forms-field_types__ads.htm | 418 +- ...face-curses-forms-field_user_data__adb.htm | 154 +- ...face-curses-forms-field_user_data__ads.htm | 140 +- ...rface-curses-forms-form_user_data__adb.htm | 154 +- ...rface-curses-forms-form_user_data__ads.htm | 140 +- .../terminal_interface-curses-forms__adb.htm | 1492 +++--- .../terminal_interface-curses-forms__ads.htm | 1442 +++--- ...rface-curses-menus-item_user_data__adb.htm | 132 +- ...rface-curses-menus-item_user_data__ads.htm | 150 +- ...rface-curses-menus-menu_user_data__adb.htm | 132 +- ...rface-curses-menus-menu_user_data__ads.htm | 140 +- .../terminal_interface-curses-menus__adb.htm | 1134 ++--- .../terminal_interface-curses-menus__ads.htm | 1262 ++--- .../terminal_interface-curses-mouse__adb.htm | 318 +- .../terminal_interface-curses-mouse__ads.htm | 400 +- ...interface-curses-panels-user_data__adb.htm | 144 +- ...interface-curses-panels-user_data__ads.htm | 140 +- .../terminal_interface-curses-panels__adb.htm | 232 +- .../terminal_interface-curses-panels__ads.htm | 270 +- .../terminal_interface-curses-putwin__adb.htm | 140 +- .../terminal_interface-curses-putwin__ads.htm | 106 +- ...terminal_interface-curses-termcap__adb.htm | 264 +- ...terminal_interface-curses-termcap__ads.htm | 158 +- ...erminal_interface-curses-terminfo__adb.htm | 252 +- ...erminal_interface-curses-terminfo__ads.htm | 158 +- ...inal_interface-curses-text_io-aux__adb.htm | 210 +- ...inal_interface-curses-text_io-aux__ads.htm | 124 +- ...terface-curses-text_io-complex_io__adb.htm | 140 +- ...terface-curses-text_io-complex_io__ads.htm | 132 +- ...terface-curses-text_io-decimal_io__adb.htm | 148 +- ...terface-curses-text_io-decimal_io__ads.htm | 132 +- ...ace-curses-text_io-enumeration_io__adb.htm | 150 +- ...ace-curses-text_io-enumeration_io__ads.htm | 126 +- ...interface-curses-text_io-fixed_io__adb.htm | 148 +- ...interface-curses-text_io-fixed_io__ads.htm | 132 +- ...interface-curses-text_io-float_io__adb.htm | 148 +- ...interface-curses-text_io-float_io__ads.htm | 132 +- ...terface-curses-text_io-integer_io__adb.htm | 138 +- ...terface-curses-text_io-integer_io__ads.htm | 126 +- ...terface-curses-text_io-modular_io__adb.htm | 138 +- ...terface-curses-text_io-modular_io__ads.htm | 126 +- ...terminal_interface-curses-text_io__adb.htm | 478 +- ...terminal_interface-curses-text_io__ads.htm | 230 +- .../terminal_interface-curses-trace__adb.htm | 122 +- .../terminal_interface-curses-trace__ads.htm | 230 +- .../ada/terminal_interface-curses__adb.htm | 3308 +++++++------- .../ada/terminal_interface-curses__ads.htm | 4042 ++++++++--------- ...rminal_interface-curses_constants__ads.htm | 716 +-- doc/html/ada/terminal_interface__ads.htm | 112 +- doc/html/man/adacurses6-config.1.html | 2 +- doc/html/man/captoinfo.1m.html | 2 +- doc/html/man/clear.1.html | 2 +- doc/html/man/curs_mouse.3x.html | 110 +- doc/html/man/form.3x.html | 2 +- doc/html/man/infocmp.1m.html | 2 +- doc/html/man/infotocap.1m.html | 2 +- doc/html/man/menu.3x.html | 2 +- doc/html/man/ncurses.3x.html | 2 +- doc/html/man/ncurses6-config.1.html | 2 +- doc/html/man/panel.3x.html | 2 +- doc/html/man/tabs.1.html | 2 +- doc/html/man/terminfo.5.html | 2 +- doc/html/man/tic.1m.html | 2 +- doc/html/man/toe.1m.html | 2 +- doc/html/man/tput.1.html | 2 +- doc/html/man/tset.1.html | 2 +- man/curs_mouse.3x | 27 +- ncurses/base/lib_mouse.c | 13 +- package/debian-mingw/changelog | 4 +- package/debian-mingw64/changelog | 4 +- package/debian/changelog | 4 +- package/mingw-ncurses.nsi | 4 +- package/mingw-ncurses.spec | 2 +- package/ncurses.spec | 2 +- package/ncursest.spec | 2 +- 129 files changed, 13650 insertions(+), 13625 deletions(-) diff --git a/Ada95/gen/Makefile.in b/Ada95/gen/Makefile.in index ceee5a93..c263581c 100644 --- a/Ada95/gen/Makefile.in +++ b/Ada95/gen/Makefile.in @@ -1,5 +1,5 @@ ############################################################################## -# Copyright 2019-2020,2021 Thomas E. Dickey # +# Copyright 2019-2021,2022 Thomas E. Dickey # # Copyright 1998-2015,2018 Free Software Foundation, Inc. # # # # Permission is hereby granted, free of charge, to any person obtaining a # @@ -30,7 +30,7 @@ # Author: Juergen Pfeifer, 1996 # and: Thomas E. Dickey, 1997 # -# $Id: Makefile.in,v 1.98 2021/12/25 22:34:44 tom Exp $ +# $Id: Makefile.in,v 1.100 2022/01/15 18:20:17 tom Exp $ # .SUFFIXES: @@ -104,7 +104,6 @@ GENERATE = $(PROG_GENERATE) '@USE_ARG_SUFFIX@' DEL_ADAMODE = sed -e '/^\-\-\ \ \-\*\-\ ada\ \-\*\-.*/d' GNATHTML = `type -p gnathtml || type -p gnathtml.pl 2>/dev/null` -GNATHP = www.gnat.com ################################################################################ ALIB = @cf_ada_package@ @@ -342,7 +341,7 @@ adahtml: for f in html/$(ALIB)*.htm*; do \ a=`basename $$f` ; \ sed -e 's/You may also.*body.*//' <$$f |\ - sed -e 's%GNAT%GNAT%g' |\ + sed -e 's%\%GNAT%g' |\ sed -e 's%<A HREF%%g' |\ sed -e 's%#1A\([[:space:]]*NAME="[^"]*"\)#2%%' |\ diff --git a/NEWS b/NEWS index 69229618..eb487423 100644 --- a/NEWS +++ b/NEWS @@ -26,7 +26,7 @@ -- sale, use or other dealings in this Software without prior written -- -- authorization. -- ------------------------------------------------------------------------------- --- $Id: NEWS,v 1.3764 2022/01/01 23:59:36 tom Exp $ +-- $Id: NEWS,v 1.3768 2022/01/16 01:26:12 tom Exp $ ------------------------------------------------------------------------------- This is a log of changes that ncurses has gone through since Zeyd started @@ -46,6 +46,12 @@ See the AUTHORS file for the corresponding full names. Changes through 1.9.9e did not credit all contributions; it is not possible to add this information. +20220115 + + improve checks for valid mouse events when an intermediate mouse + state is not part of the mousemask specified by the caller (report by + Anton Vidovic, cf: 20111022). + + use newer version 1.36 of gnathtml for generating Ada html files. + 20220101 + add section on releasing memory to curs_termcap.3x and curs_terminfo.3x manpages. diff --git a/VERSION b/VERSION index 4a243ffc..b0eb992a 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -5:0:10 6.3 20220101 +5:0:10 6.3 20220115 diff --git a/dist.mk b/dist.mk index f1d77c47..da97a05b 100644 --- a/dist.mk +++ b/dist.mk @@ -26,7 +26,7 @@ # use or other dealings in this Software without prior written # # authorization. # ############################################################################## -# $Id: dist.mk,v 1.1460 2022/01/01 11:48:38 tom Exp $ +# $Id: dist.mk,v 1.1462 2022/01/15 14:00:23 tom Exp $ # Makefile for creating ncurses distributions. # # This only needs to be used directly as a makefile by developers, but @@ -38,7 +38,7 @@ SHELL = /bin/sh # These define the major/minor/patch versions of ncurses. NCURSES_MAJOR = 6 NCURSES_MINOR = 3 -NCURSES_PATCH = 20220101 +NCURSES_PATCH = 20220115 # We don't append the patch to the version, since this only applies to releases VERSION = $(NCURSES_MAJOR).$(NCURSES_MINOR) diff --git a/doc/html/ada/files.htm b/doc/html/ada/files.htm index 49441be9..d48af038 100644 --- a/doc/html/ada/files.htm +++ b/doc/html/ada/files.htm @@ -1,7 +1,7 @@ - - - + + + - - -

Files

-
[T] - + + +

Files

+[T] + diff --git a/doc/html/ada/files/T.htm b/doc/html/ada/files/T.htm index b54027bb..97305067 100644 --- a/doc/html/ada/files/T.htm +++ b/doc/html/ada/files/T.htm @@ -1,83 +1,83 @@ - - -T + + +T - - -

Files - T

-[index] - + + +

Files - T

+[index] + diff --git a/doc/html/ada/funcs.htm b/doc/html/ada/funcs.htm index 903523e2..1ffcef16 100644 --- a/doc/html/ada/funcs.htm +++ b/doc/html/ada/funcs.htm @@ -1,7 +1,7 @@ - - - + + + - - -

Functions/Procedures

-[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] - + + +

Functions/Procedures

+[A] +[B] +[C] +[D] +[E] +[F] +[G] +[H] +[I] +[K] +[L] +[M] +[N] +[O] +[P] +[Q] +[R] +[S] +[T] +[U] +[V] +[W] + diff --git a/doc/html/ada/funcs/A.htm b/doc/html/ada/funcs/A.htm index 3080c76b..c5520758 100644 --- a/doc/html/ada/funcs/A.htm +++ b/doc/html/ada/funcs/A.htm @@ -1,29 +1,29 @@ - - -A + + +A - - -

Functions - A

-[index] - + + +

Functions - A

+[index] + diff --git a/doc/html/ada/funcs/B.htm b/doc/html/ada/funcs/B.htm index 2f3142aa..f8ca69b4 100644 --- a/doc/html/ada/funcs/B.htm +++ b/doc/html/ada/funcs/B.htm @@ -1,25 +1,25 @@ - - -B + + +B - - -

Functions - B

-[index] - + + +

Functions - B

+[index] + diff --git a/doc/html/ada/funcs/C.htm b/doc/html/ada/funcs/C.htm index 9d88f819..8bfb09c6 100644 --- a/doc/html/ada/funcs/C.htm +++ b/doc/html/ada/funcs/C.htm @@ -1,63 +1,63 @@ - - -C + + +C - - -

Functions - C

-[index] - + + +

Functions - C

+[index] + diff --git a/doc/html/ada/funcs/D.htm b/doc/html/ada/funcs/D.htm index d58ec5bd..2c16baa4 100644 --- a/doc/html/ada/funcs/D.htm +++ b/doc/html/ada/funcs/D.htm @@ -1,51 +1,51 @@ - - -D + + +D - - -

Functions - D

-[index] - + + +

Functions - D

+[index] + diff --git a/doc/html/ada/funcs/E.htm b/doc/html/ada/funcs/E.htm index 9504d254..b161c064 100644 --- a/doc/html/ada/funcs/E.htm +++ b/doc/html/ada/funcs/E.htm @@ -1,22 +1,22 @@ - - -E + + +E - - -

Functions - E

-[index] - + + +

Functions - E

+[index] + diff --git a/doc/html/ada/funcs/F.htm b/doc/html/ada/funcs/F.htm index d1914863..9e6bac8f 100644 --- a/doc/html/ada/funcs/F.htm +++ b/doc/html/ada/funcs/F.htm @@ -1,59 +1,59 @@ - - -F + + +F - - -

Functions - F

-[index] - + + +

Functions - F

+[index] + diff --git a/doc/html/ada/funcs/G.htm b/doc/html/ada/funcs/G.htm index 2a329f3c..166fbc1a 100644 --- a/doc/html/ada/funcs/G.htm +++ b/doc/html/ada/funcs/G.htm @@ -1,100 +1,100 @@ - - -G + + +G - - -

Functions - G

-[index] - + + +

Functions - G

+[index] + diff --git a/doc/html/ada/funcs/H.htm b/doc/html/ada/funcs/H.htm index 1809b7b5..c8779374 100644 --- a/doc/html/ada/funcs/H.htm +++ b/doc/html/ada/funcs/H.htm @@ -1,26 +1,26 @@ - - -H + + +H - - -

Functions - H

-[index] - + + +

Functions - H

+[index] + diff --git a/doc/html/ada/funcs/I.htm b/doc/html/ada/funcs/I.htm index e563c559..97c5e524 100644 --- a/doc/html/ada/funcs/I.htm +++ b/doc/html/ada/funcs/I.htm @@ -1,55 +1,55 @@ - - -I + + +I - - -

Functions - I

-[index] - + + +

Functions - I

+[index] + diff --git a/doc/html/ada/funcs/K.htm b/doc/html/ada/funcs/K.htm index a243874f..47e68353 100644 --- a/doc/html/ada/funcs/K.htm +++ b/doc/html/ada/funcs/K.htm @@ -1,18 +1,18 @@ - - -K + + +K - - -

Functions - K

-[index] - + + +

Functions - K

+[index] + diff --git a/doc/html/ada/funcs/L.htm b/doc/html/ada/funcs/L.htm index 2720063c..b5929e6b 100644 --- a/doc/html/ada/funcs/L.htm +++ b/doc/html/ada/funcs/L.htm @@ -1,25 +1,25 @@ - - -L + + +L - - -

Functions - L

-[index] - + + +

Functions - L

+[index] + diff --git a/doc/html/ada/funcs/M.htm b/doc/html/ada/funcs/M.htm index 68b1d515..00d10119 100644 --- a/doc/html/ada/funcs/M.htm +++ b/doc/html/ada/funcs/M.htm @@ -1,55 +1,55 @@ - - -M + + +M - - -

Functions - M

-[index] - + + +

Functions - M

+[index] + diff --git a/doc/html/ada/funcs/N.htm b/doc/html/ada/funcs/N.htm index 861f17a2..cf130060 100644 --- a/doc/html/ada/funcs/N.htm +++ b/doc/html/ada/funcs/N.htm @@ -1,39 +1,39 @@ - - -N + + +N - - -

Functions - N

-[index] - + + +

Functions - N

+[index] + diff --git a/doc/html/ada/funcs/O.htm b/doc/html/ada/funcs/O.htm index 77311503..6ade14a5 100644 --- a/doc/html/ada/funcs/O.htm +++ b/doc/html/ada/funcs/O.htm @@ -1,16 +1,16 @@ - - -O + + +O - - -

Functions - O

-[index] - + + +

Functions - O

+[index] + diff --git a/doc/html/ada/funcs/P.htm b/doc/html/ada/funcs/P.htm index f34fe5a9..d52c66dc 100644 --- a/doc/html/ada/funcs/P.htm +++ b/doc/html/ada/funcs/P.htm @@ -1,63 +1,63 @@ - - -P + + +P - - -

Functions - P

-[index] - + + +

Functions - P

+[index] + diff --git a/doc/html/ada/funcs/Q.htm b/doc/html/ada/funcs/Q.htm index 7810b959..bcfee70d 100644 --- a/doc/html/ada/funcs/Q.htm +++ b/doc/html/ada/funcs/Q.htm @@ -1,12 +1,12 @@ - - -Q + + +Q - - -

Functions - Q

-[index] - + + +

Functions - Q

+[index] + diff --git a/doc/html/ada/funcs/R.htm b/doc/html/ada/funcs/R.htm index 128f8e25..b4af87ec 100644 --- a/doc/html/ada/funcs/R.htm +++ b/doc/html/ada/funcs/R.htm @@ -1,43 +1,43 @@ - - -R + + +R - - -

Functions - R

-[index] - + + +

Functions - R

+[index] + diff --git a/doc/html/ada/funcs/S.htm b/doc/html/ada/funcs/S.htm index 937584d6..86dad7f4 100644 --- a/doc/html/ada/funcs/S.htm +++ b/doc/html/ada/funcs/S.htm @@ -1,195 +1,195 @@ - - -S + + +S - - -

Functions - S

-[index] - + + +

Functions - S

+[index] + diff --git a/doc/html/ada/funcs/T.htm b/doc/html/ada/funcs/T.htm index f9e814b0..acedebee 100644 --- a/doc/html/ada/funcs/T.htm +++ b/doc/html/ada/funcs/T.htm @@ -1,43 +1,43 @@ - - -T + + +T - - -

Functions - T

-[index] - + + +

Functions - T

+[index] + diff --git a/doc/html/ada/funcs/U.htm b/doc/html/ada/funcs/U.htm index 6c5a5fe6..8a6d40de 100644 --- a/doc/html/ada/funcs/U.htm +++ b/doc/html/ada/funcs/U.htm @@ -1,27 +1,27 @@ - - -U + + +U - - -

Functions - U

-[index] - + + +

Functions - U

+[index] + diff --git a/doc/html/ada/funcs/V.htm b/doc/html/ada/funcs/V.htm index 45edc6ae..26099734 100644 --- a/doc/html/ada/funcs/V.htm +++ b/doc/html/ada/funcs/V.htm @@ -1,15 +1,15 @@ - - -V + + +V - - -

Functions - V

-[index] - + + +

Functions - V

+[index] + diff --git a/doc/html/ada/funcs/W.htm b/doc/html/ada/funcs/W.htm index 926ec196..8bf0c83f 100644 --- a/doc/html/ada/funcs/W.htm +++ b/doc/html/ada/funcs/W.htm @@ -1,57 +1,57 @@ - - -W + + +W - - -

Functions - W

-[index] - + + +

Functions - W

+[index] + diff --git a/doc/html/ada/index.htm b/doc/html/ada/index.htm index b0a6a84e..2f7801ef 100644 --- a/doc/html/ada/index.htm +++ b/doc/html/ada/index.htm @@ -1,42 +1,42 @@ - - -Source Browser + + +Source Browser - - - -<H2 ALIGN=CENTER>Files</H2> -<A HREF="files/T.htm">[T]</A> -<HR> -<H2 ALIGN=CENTER>Functions/Procedures</H2> -<A HREF="funcs/A.htm">[A]</A> -<A HREF="funcs/B.htm">[B]</A> -<A HREF="funcs/C.htm">[C]</A> -<A HREF="funcs/D.htm">[D]</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/H.htm">[H]</A> -<A HREF="funcs/I.htm">[I]</A> -<A HREF="funcs/K.htm">[K]</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/O.htm">[O]</A> -<A HREF="funcs/P.htm">[P]</A> -<A HREF="funcs/Q.htm">[Q]</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> -<A HREF="funcs/W.htm">[W]</A> - - - - - - - - + + + +<h2 align="center">Files</h2> +<a href="files/T.htm">[T]</a> +<hr> +<h2 align="center">Functions/Procedures</h2> +<a href="funcs/A.htm">[A]</a> +<a href="funcs/B.htm">[B]</a> +<a href="funcs/C.htm">[C]</a> +<a href="funcs/D.htm">[D]</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/H.htm">[H]</a> +<a href="funcs/I.htm">[I]</a> +<a href="funcs/K.htm">[K]</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/O.htm">[O]</a> +<a href="funcs/P.htm">[P]</a> +<a href="funcs/Q.htm">[Q]</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> +<a href="funcs/W.htm">[W]</a> + + + + + + + + diff --git a/doc/html/ada/main.htm b/doc/html/ada/main.htm index e4475a56..43087122 100644 --- a/doc/html/ada/main.htm +++ b/doc/html/ada/main.htm @@ -1,7 +1,7 @@ - - - + + + - - -

[No frame version is here]

Files

-[T] -

Functions/Procedures

-[A] -[B] -[C] -[D] -[E] -[F] -[G] -[H] -[I] -[K] -[L] -[M] -[N] -[O] -[P] -[Q] -[R] -[S] -[T] -[U] -[V] -[W] -
+ + +

[No frame version is here]

Files

+[T] +

Functions/Procedures

+[A] +[B] +[C] +[D] +[E] +[F] +[G] +[H] +[I] +[K] +[L] +[M] +[N] +[O] +[P] +[Q] +[R] +[S] +[T] +[U] +[V] +[W] +
You should start your browsing with one of these files: - - + + diff --git a/doc/html/ada/terminal_interface-curses-aux__adb.htm b/doc/html/ada/terminal_interface-curses-aux__adb.htm index 9e2272bd..61ea3de6 100644 --- a/doc/html/ada/terminal_interface-curses-aux__adb.htm +++ b/doc/html/ada/terminal_interface-curses-aux__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-aux.adb + + +terminal_interface-curses-aux.adb - - -

File : terminal_interface-curses-aux.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Aux                       --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Aux is
-   --
-   --  Some helpers
-   procedure Fill_String (Cp  : chars_ptr;
-                          Str : out String)
+
+
+

File : terminal_interface-curses-aux.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Aux                       --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package body Terminal_Interface.Curses.Aux is
+   --
+   --  Some helpers
+   procedure Fill_String (Cp  : chars_ptr;
+                          Str : out String)
    is
-      --  Fill the string with the characters referenced by the
-      --  chars_ptr.
-      --
-      Len : Natural;
+      --  Fill the string with the characters referenced by the
+      --  chars_ptr.
+      --
+      Len : Natural;
    begin
-      if Cp /= Null_Ptr then
-         Len := Natural (Strlen (Cp));
-         if Str'Length < Len then
+      if Cp /= Null_Ptr then
+         Len := Natural (Strlen (Cp));
+         if Str'Length < Len then
             raise Constraint_Error;
          end if;
          declare
-            S : String (1 .. Len);
+            S : String (1 .. Len);
          begin
-            S := Value (Cp);
-            Str (Str'First .. (Str'First + Len - 1)) := S (S'Range);
+            S := Value (Cp);
+            Str (Str'First .. (Str'First + Len - 1)) := S (S'Range);
          end;
       else
-         Len := 0;
+         Len := 0;
       end if;
 
-      if Len < Str'Length then
-         Str ((Str'First + Len) .. Str'Last) := (others => ' ');
+      if Len < Str'Length then
+         Str ((Str'First + Len) .. Str'Last) := (others => ' ');
       end if;
 
-   end Fill_String;
+   end Fill_String;
 
-   function Fill_String (Cp : chars_ptr) return String
+   function Fill_String (Cp : chars_ptr) return String
    is
-      Len : Natural;
+      Len : Natural;
    begin
-      if Cp /= Null_Ptr then
-         Len := Natural (Strlen (Cp));
-         if Len = 0 then
+      if Cp /= Null_Ptr then
+         Len := Natural (Strlen (Cp));
+         if Len = 0 then
             return "";
          else
             declare
-               S : String (1 .. Len);
+               S : String (1 .. Len);
             begin
-               Fill_String (Cp, S);
-               return S;
+               Fill_String (Cp, S);
+               return S;
             end;
          end if;
       else
          return "";
       end if;
-   end Fill_String;
+   end Fill_String;
 
-   procedure Eti_Exception (Code : Eti_Error)
+   procedure Eti_Exception (Code : Eti_Error)
    is
    begin
-      case Code is
-         when E_Ok              => null;
-         when E_System_Error    => raise Eti_System_Error;
-         when E_Bad_Argument    => raise Eti_Bad_Argument;
-         when E_Posted          => raise Eti_Posted;
-         when E_Connected       => raise Eti_Connected;
-         when E_Bad_State       => raise Eti_Bad_State;
-         when E_No_Room         => raise Eti_No_Room;
-         when E_Not_Posted      => raise Eti_Not_Posted;
-         when E_Unknown_Command => raise Eti_Unknown_Command;
-         when E_No_Match        => raise Eti_No_Match;
-         when E_Not_Selectable  => raise Eti_Not_Selectable;
-         when E_Not_Connected   => raise Eti_Not_Connected;
-         when E_Request_Denied  => raise Eti_Request_Denied;
-         when E_Invalid_Field   => raise Eti_Invalid_Field;
-         when E_Current         => raise Eti_Current;
+      case Code is
+         when E_Ok              => null;
+         when E_System_Error    => raise Eti_System_Error;
+         when E_Bad_Argument    => raise Eti_Bad_Argument;
+         when E_Posted          => raise Eti_Posted;
+         when E_Connected       => raise Eti_Connected;
+         when E_Bad_State       => raise Eti_Bad_State;
+         when E_No_Room         => raise Eti_No_Room;
+         when E_Not_Posted      => raise Eti_Not_Posted;
+         when E_Unknown_Command => raise Eti_Unknown_Command;
+         when E_No_Match        => raise Eti_No_Match;
+         when E_Not_Selectable  => raise Eti_Not_Selectable;
+         when E_Not_Connected   => raise Eti_Not_Connected;
+         when E_Request_Denied  => raise Eti_Request_Denied;
+         when E_Invalid_Field   => raise Eti_Invalid_Field;
+         when E_Current         => raise Eti_Current;
       end case;
-   end Eti_Exception;
+   end Eti_Exception;
 
-end Terminal_Interface.Curses.Aux;
-
+end Terminal_Interface.Curses.Aux; +
diff --git a/doc/html/ada/terminal_interface-curses-aux__ads.htm b/doc/html/ada/terminal_interface-curses-aux__ads.htm index 3022236c..b5397196 100644 --- a/doc/html/ada/terminal_interface-curses-aux__ads.htm +++ b/doc/html/ada/terminal_interface-curses-aux__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-aux.ads + + +terminal_interface-curses-aux.ads - - -

File : terminal_interface-curses-aux.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                       Terminal_Interface.Curses.Aux                      --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1998-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.25 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-aux.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                       Terminal_Interface.Curses.Aux                      --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1998-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.25 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System;
-with Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
 
-package Terminal_Interface.Curses.Aux is
-   pragma Preelaborate (Terminal_Interface.Curses.Aux);
+package Terminal_Interface.Curses.Aux is
+   pragma Preelaborate (Terminal_Interface.Curses.Aux);
 
-   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;
+   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;
 
-   --  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 := Curses_Constants.OK;
-   Curses_Err   : constant C_Int := Curses_Constants.ERR;
+   --  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 := Curses_Constants.OK;
+   Curses_Err   : constant C_Int := Curses_Constants.ERR;
 
-   Curses_True  : constant C_Int := Curses_Constants.TRUE;
-   Curses_False : constant C_Int := Curses_Constants.FALSE;
+   Curses_True  : constant C_Int := Curses_Constants.TRUE;
+   Curses_False : constant C_Int := Curses_Constants.FALSE;
 
-   --  Eti_Error: type for error codes returned by the menu and form subsystem
-   type Eti_Error is
-     (E_Current,
-      E_Invalid_Field,
-      E_Request_Denied,
-      E_Not_Connected,
-      E_Not_Selectable,
-      E_No_Match,
-      E_Unknown_Command,
-      E_Not_Posted,
-      E_No_Room,
-      E_Bad_State,
-      E_Connected,
-      E_Posted,
-      E_Bad_Argument,
-      E_System_Error,
-      E_Ok);
+   --  Eti_Error: type for error codes returned by the menu and form subsystem
+   type Eti_Error is
+     (E_Current,
+      E_Invalid_Field,
+      E_Request_Denied,
+      E_Not_Connected,
+      E_Not_Selectable,
+      E_No_Match,
+      E_Unknown_Command,
+      E_Not_Posted,
+      E_No_Room,
+      E_Bad_State,
+      E_Connected,
+      E_Posted,
+      E_Bad_Argument,
+      E_System_Error,
+      E_Ok);
 
-   procedure Eti_Exception (Code : Eti_Error);
-   --  Do nothing if Code = E_Ok.
-   --  Else dispatch the error code and raise the appropriate exception.
+   procedure Eti_Exception (Code : Eti_Error);
+   --  Do nothing if Code = E_Ok.
+   --  Else dispatch the error code and raise the appropriate exception.
 
-   procedure Fill_String (Cp  : chars_ptr;
-                          Str : out String);
-   --  Fill the Str parameter with the string denoted by the chars_ptr
-   --  C-Style string.
+   procedure Fill_String (Cp  : chars_ptr;
+                          Str : out String);
+   --  Fill the Str parameter with the string denoted by the chars_ptr
+   --  C-Style string.
 
-   function Fill_String (Cp : chars_ptr) return String;
-   --  Same but as function.
+   function Fill_String (Cp : chars_ptr) return String;
+   --  Same but as function.
 
 private
-   for Eti_Error'Size use C_Int'Size;
-   pragma Convention (C, Eti_Error);
-   for Eti_Error use
-     (E_Current         => Curses_Constants.E_CURRENT,
-      E_Invalid_Field   => Curses_Constants.E_INVALID_FIELD,
-      E_Request_Denied  => Curses_Constants.E_REQUEST_DENIED,
-      E_Not_Connected   => Curses_Constants.E_NOT_CONNECTED,
-      E_Not_Selectable  => Curses_Constants.E_NOT_SELECTABLE,
-      E_No_Match        => Curses_Constants.E_NO_MATCH,
-      E_Unknown_Command => Curses_Constants.E_UNKNOWN_COMMAND,
-      E_Not_Posted      => Curses_Constants.E_NOT_POSTED,
-      E_No_Room         => Curses_Constants.E_NO_ROOM,
-      E_Bad_State       => Curses_Constants.E_BAD_STATE,
-      E_Connected       => Curses_Constants.E_CONNECTED,
-      E_Posted          => Curses_Constants.E_POSTED,
-      E_Bad_Argument    => Curses_Constants.E_BAD_ARGUMENT,
-      E_System_Error    => Curses_Constants.E_SYSTEM_ERROR,
-      E_Ok              => Curses_Constants.E_OK);
-end Terminal_Interface.Curses.Aux;
-
+ for Eti_Error'Size use C_Int'Size; + pragma Convention (C, Eti_Error); + for Eti_Error use + (E_Current => Curses_Constants.E_CURRENT, + E_Invalid_Field => Curses_Constants.E_INVALID_FIELD, + E_Request_Denied => Curses_Constants.E_REQUEST_DENIED, + E_Not_Connected => Curses_Constants.E_NOT_CONNECTED, + E_Not_Selectable => Curses_Constants.E_NOT_SELECTABLE, + E_No_Match => Curses_Constants.E_NO_MATCH, + E_Unknown_Command => Curses_Constants.E_UNKNOWN_COMMAND, + E_Not_Posted => Curses_Constants.E_NOT_POSTED, + E_No_Room => Curses_Constants.E_NO_ROOM, + E_Bad_State => Curses_Constants.E_BAD_STATE, + E_Connected => Curses_Constants.E_CONNECTED, + E_Posted => Curses_Constants.E_POSTED, + E_Bad_Argument => Curses_Constants.E_BAD_ARGUMENT, + E_System_Error => Curses_Constants.E_SYSTEM_ERROR, + E_Ok => Curses_Constants.E_OK); +end Terminal_Interface.Curses.Aux; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm index f7952f6f..6c51ab7d 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-alpha.adb + + +terminal_interface-curses-forms-field_types-alpha.adb - - -

File : terminal_interface-curses-forms-field_types-alpha.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---              Terminal_Interface.Curses.Forms.Field_Types.Alpha           --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.14 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types-alpha.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--              Terminal_Interface.Curses.Forms.Field_Types.Alpha           --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.14 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.Alpha is
+package body Terminal_Interface.Curses.Forms.Field_Types.Alpha is
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Alpha_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Alpha_Field)
    is
-      function Set_Fld_Type (F    : Field := Fld;
-                             Arg1 : C_Int) return Eti_Error;
+      function Set_Fld_Type (F    : Field := Fld;
+                             Arg1 : C_Int) return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_alpha");
 
    begin
-      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width)));
-      Wrap_Builtin (Fld, Typ);
-   end Set_Field_Type;
+      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width)));
+      Wrap_Builtin (Fld, Typ);
+   end Set_Field_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Alpha; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm index f2d18975..88ad718c 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alpha__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-alpha.ads + + +terminal_interface-curses-forms-field_types-alpha.ads - - -

File : terminal_interface-curses-forms-field_types-alpha.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---              Terminal_Interface.Curses.Forms.Field_Types.Alpha           --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.Alpha is
-   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Alpha);
+
+
+

File : terminal_interface-curses-forms-field_types-alpha.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--              Terminal_Interface.Curses.Forms.Field_Types.Alpha           --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.Alpha is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Alpha);
 
-   type Alpha_Field is new Field_Type
+   type Alpha_Field is new Field_Type
      with record
-        Minimum_Field_Width : Natural := 0;
+        Minimum_Field_Width : Natural := 0;
      end record;
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Alpha_Field);
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Alpha_Field);
    pragma Inline (Set_Field_Type);
 
-end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Alpha; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm index ac3a10cc..7e759e6c 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-alphanumeric.adb + + +terminal_interface-curses-forms-field_types-alphanumeric.adb - - -

File : terminal_interface-curses-forms-field_types-alphanumeric.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---          Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric        --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.14 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types-alphanumeric.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--          Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric        --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.14 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
+package body Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : AlphaNumeric_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : AlphaNumeric_Field)
    is
-      function Set_Fld_Type (F    : Field := Fld;
-                             Arg1 : C_Int) return Eti_Error;
+      function Set_Fld_Type (F    : Field := Fld;
+                             Arg1 : C_Int) return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_alnum");
 
    begin
-      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width)));
-      Wrap_Builtin (Fld, Typ);
-   end Set_Field_Type;
+      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width)));
+      Wrap_Builtin (Fld, Typ);
+   end Set_Field_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
-
+end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm index 4c398efe..73cdb40e 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-alphanumeric__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-alphanumeric.ads + + +terminal_interface-curses-forms-field_types-alphanumeric.ads - - -

File : terminal_interface-curses-forms-field_types-alphanumeric.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---          Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric        --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
+
+
+

File : terminal_interface-curses-forms-field_types-alphanumeric.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--          Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric        --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
    pragma Preelaborate
-     (Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric);
+     (Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric);
 
-   type AlphaNumeric_Field is new Field_Type
+   type AlphaNumeric_Field is new Field_Type
      with record
-        Minimum_Field_Width : Natural := 0;
+        Minimum_Field_Width : Natural := 0;
      end record;
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : AlphaNumeric_Field);
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : AlphaNumeric_Field);
    pragma Inline (Set_Field_Type);
 
-end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
-
+end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm index 96d61f66..acd17292 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-enumeration-ada.adb + + +terminal_interface-curses-forms-field_types-enumeration-ada.adb - - -

File : terminal_interface-curses-forms-field_types-enumeration-ada.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---         Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada      --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2004,2011 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms-field_types-enumeration-ada.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--         Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada      --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2004,2011 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Characters.Handling; use Ada.Characters.Handling;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
+package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
 
-   function Create (Set            : Type_Set := Mixed_Case;
-                    Case_Sensitive : Boolean  := False;
-                    Must_Be_Unique : Boolean  := False)
-                    return Enumeration_Field
+   function Create (Set            : Type_Set := Mixed_Case;
+                    Case_Sensitive : Boolean  := False;
+                    Must_Be_Unique : Boolean  := False)
+                    return Enumeration_Field
    is
-      I : Enumeration_Info (T'Pos (T'Last) - T'Pos (T'First) + 1);
-      J : Positive := 1;
+      I : Enumeration_Info (T'Pos (T'Last) - T'Pos (T'First) + 1);
+      J : Positive := 1;
    begin
-      I.Case_Sensitive := Case_Sensitive;
-      I.Match_Must_Be_Unique := Must_Be_Unique;
+      I.Case_Sensitive := Case_Sensitive;
+      I.Match_Must_Be_Unique := Must_Be_Unique;
 
-      for E in T'Range loop
-         I.Names (J) := new String'(T'Image (E));
-         --  The Image attribute defaults to upper case, so we have to handle
-         --  only the other ones...
-         if Set /= Upper_Case then
-            I.Names (J).all := To_Lower (I.Names (J).all);
-            if Set = Mixed_Case then
-               I.Names (J).all (I.Names (J).all'First) :=
-                 To_Upper (I.Names (J).all (I.Names (J).all'First));
+      for E in T'Range loop
+         I.Names (J) := new String'(T'Image (E));
+         --  The Image attribute defaults to upper case, so we have to handle
+         --  only the other ones...
+         if Set /= Upper_Case then
+            I.Names (J).all := To_Lower (I.Names (J).all);
+            if Set = Mixed_Case then
+               I.Names (J).all (I.Names (J).all'First) :=
+                 To_Upper (I.Names (J).all (I.Names (J).all'First));
             end if;
          end if;
-         J := J + 1;
+         J := J + 1;
       end loop;
 
-      return Create (I, True);
-   end Create;
+      return Create (I, True);
+   end Create;
 
-   function Value (Fld : Field;
-                   Buf : Buffer_Number := Buffer_Number'First) return T
+   function Value (Fld : Field;
+                   Buf : Buffer_Number := Buffer_Number'First) return T
    is
    begin
-      return T'Value (Get_Buffer (Fld, Buf));
-   end Value;
+      return T'Value (Get_Buffer (Fld, Buf));
+   end Value;
 
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm index 07d74605..9ec8c265 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration-ada__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-enumeration-ada.ads + + +terminal_interface-curses-forms-field_types-enumeration-ada.ads - - -

File : terminal_interface-curses-forms-field_types-enumeration-ada.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---         Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada      --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2002,2003 Free Software Foundation, Inc.                  --
---                                                                          --
--- Permission is hereby granted, free of charge, to any person obtaining a  --
--- copy of this software and associated documentation files (the            --
--- "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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms-field_types-enumeration-ada.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--         Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada      --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2002,2003 Free Software Foundation, Inc.                  --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 generic
-   type T is (<>);
+   type T is (<>);
 
-package Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
+package Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
    pragma Preelaborate
-     (Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada);
+     (Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada);
 
-   function Create (Set            : Type_Set := Mixed_Case;
-                    Case_Sensitive : Boolean  := False;
-                    Must_Be_Unique : Boolean  := False)
-                    return Enumeration_Field;
+   function Create (Set            : Type_Set := Mixed_Case;
+                    Case_Sensitive : Boolean  := False;
+                    Must_Be_Unique : Boolean  := False)
+                    return Enumeration_Field;
 
-   function Value (Fld : Field;
-                   Buf : Buffer_Number := Buffer_Number'First) return T;
-   --  Translate the content of the fields buffer - indicated by the
-   --  buffer number - into an enumeration value. If the buffer is empty
-   --  or the content is invalid, a Constraint_Error is raises.
+   function Value (Fld : Field;
+                   Buf : Buffer_Number := Buffer_Number'First) return T;
+   --  Translate the content of the fields buffer - indicated by the
+   --  buffer number - into an enumeration value. If the buffer is empty
+   --  or the content is invalid, a Constraint_Error is raises.
 
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm index e2881d97..1747221a 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-enumeration.adb + + +terminal_interface-curses-forms-field_types-enumeration.adb - - -

File : terminal_interface-curses-forms-field_types-enumeration.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---          Terminal_Interface.Curses.Forms.Field_Types.Enumeration         --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms-field_types-enumeration.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--          Terminal_Interface.Curses.Forms.Field_Types.Enumeration         --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
+package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
 
-   function Create (Info               : Enumeration_Info;
-                    Auto_Release_Names : Boolean := False)
-                    return Enumeration_Field
+   function Create (Info               : Enumeration_Info;
+                    Auto_Release_Names : Boolean := False)
+                    return Enumeration_Field
    is
       procedure Release_String is
         new Ada.Unchecked_Deallocation (String,
-                                        String_Access);
-      E : Enumeration_Field;
-      L : constant size_t := 1 + size_t (Info.C);
-      S : String_Access;
+                                        String_Access);
+      E : Enumeration_Field;
+      L : constant size_t := 1 + size_t (Info.C);
+      S : String_Access;
    begin
-      E.Case_Sensitive       := Info.Case_Sensitive;
-      E.Match_Must_Be_Unique := Info.Match_Must_Be_Unique;
-      E.Arr := new chars_ptr_array (size_t (1) .. L);
-      for I in 1 .. Positive (L - 1) loop
-         if Info.Names (I) = null then
-            raise Form_Exception;
+      E.Case_Sensitive       := Info.Case_Sensitive;
+      E.Match_Must_Be_Unique := Info.Match_Must_Be_Unique;
+      E.Arr := new chars_ptr_array (size_t (1) .. L);
+      for I in 1 .. Positive (L - 1) loop
+         if Info.Names (I) = null then
+            raise Form_Exception;
          end if;
-         E.Arr.all (size_t (I)) := New_String (Info.Names (I).all);
-         if Auto_Release_Names then
-            S := Info.Names (I);
-            Release_String (S);
+         E.Arr.all (size_t (I)) := New_String (Info.Names (I).all);
+         if Auto_Release_Names then
+            S := Info.Names (I);
+            Release_String (S);
          end if;
       end loop;
-      E.Arr.all (L) := Null_Ptr;
-      return E;
-   end Create;
+      E.Arr.all (L) := Null_Ptr;
+      return E;
+   end Create;
 
-   procedure Release (Enum : in out Enumeration_Field)
+   procedure Release (Enum : in out Enumeration_Field)
    is
-      I : size_t := 0;
-      P : chars_ptr;
+      I : size_t := 0;
+      P : chars_ptr;
    begin
       loop
-         P := Enum.Arr.all (I);
-         exit when P = Null_Ptr;
-         Free (P);
-         Enum.Arr.all (I) := Null_Ptr;
-         I := I + 1;
+         P := Enum.Arr.all (I);
+         exit when P = Null_Ptr;
+         Free (P);
+         Enum.Arr.all (I) := Null_Ptr;
+         I := I + 1;
       end loop;
-      Enum.Arr := null;
-   end Release;
+      Enum.Arr := null;
+   end Release;
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Enumeration_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Enumeration_Field)
    is
-      function Set_Fld_Type (F    : Field := Fld;
-                             Arg1 : chars_ptr_array;
-                             Arg2 : C_Int;
-                             Arg3 : C_Int) return Eti_Error;
+      function Set_Fld_Type (F    : Field := Fld;
+                             Arg1 : chars_ptr_array;
+                             Arg2 : C_Int;
+                             Arg3 : C_Int) return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_enum");
 
    begin
-      if Typ.Arr = null then
-         raise Form_Exception;
+      if Typ.Arr = null then
+         raise Form_Exception;
       end if;
-      Eti_Exception
-        (Set_Fld_Type
-           (Arg1 => Typ.Arr.all,
-            Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
-            Arg3 => C_Int (Boolean'Pos (Typ.Match_Must_Be_Unique))));
-      Wrap_Builtin (Fld, Typ, C_Choice_Router);
-   end Set_Field_Type;
+      Eti_Exception
+        (Set_Fld_Type
+           (Arg1 => Typ.Arr.all,
+            Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
+            Arg3 => C_Int (Boolean'Pos (Typ.Match_Must_Be_Unique))));
+      Wrap_Builtin (Fld, Typ, C_Choice_Router);
+   end Set_Field_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm index 7a4bfbee..21719dbd 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-enumeration__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-enumeration.ads + + +terminal_interface-curses-forms-field_types-enumeration.ads - - -

File : terminal_interface-curses-forms-field_types-enumeration.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---           Terminal_Interface.Curses.Forms.Field_Types.Enumeration        --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.15 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C.Strings;
+
+
+

File : terminal_interface-curses-forms-field_types-enumeration.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--           Terminal_Interface.Curses.Forms.Field_Types.Enumeration        --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.15 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C.Strings;
 
-package Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
+package Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
    pragma Preelaborate
-     (Terminal_Interface.Curses.Forms.Field_Types.Enumeration);
+     (Terminal_Interface.Curses.Forms.Field_Types.Enumeration);
 
-   type String_Access is access String;
+   type String_Access is access String;
 
-   --  Type_Set is used by the child package Ada
-   type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
+   --  Type_Set is used by the child package Ada
+   type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
 
    type Enum_Array is array (Positive range <>)
-     of String_Access;
+     of String_Access;
 
-   type Enumeration_Info (C : Positive) is
+   type Enumeration_Info (C : Positive) is
       record
-         Case_Sensitive       : Boolean := False;
-         Match_Must_Be_Unique : Boolean := False;
-         Names                : Enum_Array (1 .. C);
+         Case_Sensitive       : Boolean := False;
+         Match_Must_Be_Unique : Boolean := False;
+         Names                : Enum_Array (1 .. C);
       end record;
 
-   type Enumeration_Field is new Field_Type with private;
+   type Enumeration_Field is new Field_Type with private;
 
-   function Create (Info : Enumeration_Info;
-                    Auto_Release_Names : Boolean := False)
-                    return Enumeration_Field;
-   --  Make an fieldtype from the info. Enumerations are special, because
-   --  they normally don't copy the enum values into a private store, so
-   --  we have to care for the lifetime of the info we provide.
-   --  The Auto_Release_Names flag may be used to automatically releases
-   --  the strings in the Names array of the Enumeration_Info.
+   function Create (Info : Enumeration_Info;
+                    Auto_Release_Names : Boolean := False)
+                    return Enumeration_Field;
+   --  Make an fieldtype from the info. Enumerations are special, because
+   --  they normally don't copy the enum values into a private store, so
+   --  we have to care for the lifetime of the info we provide.
+   --  The Auto_Release_Names flag may be used to automatically releases
+   --  the strings in the Names array of the Enumeration_Info.
 
-   function Make_Enumeration_Type (Info : Enumeration_Info;
-                                   Auto_Release_Names : Boolean := False)
-                                   return Enumeration_Field renames Create;
+   function Make_Enumeration_Type (Info : Enumeration_Info;
+                                   Auto_Release_Names : Boolean := False)
+                                   return Enumeration_Field renames Create;
 
-   procedure Release (Enum : in out Enumeration_Field);
-   --  But we may want to release the field to release the memory allocated
-   --  by it internally. After that the Enumeration field is no longer usable.
+   procedure Release (Enum : in out Enumeration_Field);
+   --  But we may want to release the field to release the memory allocated
+   --  by it internally. After that the Enumeration field is no longer usable.
 
-   --  The next type definitions are all ncurses extensions. They are typically
-   --  not available in other curses implementations.
+   --  The next type definitions are all ncurses extensions. They are typically
+   --  not available in other curses implementations.
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Enumeration_Field);
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Enumeration_Field);
    pragma Inline (Set_Field_Type);
 
 private
-   type CPA_Access is access Interfaces.C.Strings.chars_ptr_array;
+   type CPA_Access is access Interfaces.C.Strings.chars_ptr_array;
 
-   type Enumeration_Field is new Field_Type with
+   type Enumeration_Field is new Field_Type with
       record
-         Case_Sensitive       : Boolean := False;
-         Match_Must_Be_Unique : Boolean := False;
-         Arr                  : CPA_Access := null;
+         Case_Sensitive       : Boolean := False;
+         Match_Must_Be_Unique : Boolean := False;
+         Arr                  : CPA_Access := null;
       end record;
 
-end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm index 3569f015..6ff20e89 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-intfield.adb + + +terminal_interface-curses-forms-field_types-intfield.adb - - -

File : terminal_interface-curses-forms-field_types-intfield.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---            Terminal_Interface.Curses.Forms.Field_Types.IntField          --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.14 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types-intfield.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--            Terminal_Interface.Curses.Forms.Field_Types.IntField          --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.14 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.IntField is
+package body Terminal_Interface.Curses.Forms.Field_Types.IntField is
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Integer_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Integer_Field)
    is
-      function Set_Fld_Type (F    : Field := Fld;
-                             Arg1 : C_Int;
-                             Arg2 : C_Long_Int;
-                             Arg3 : C_Long_Int) return Eti_Error;
+      function Set_Fld_Type (F    : Field := Fld;
+                             Arg1 : C_Int;
+                             Arg2 : C_Long_Int;
+                             Arg3 : C_Long_Int) return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_integer");
 
    begin
-      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
-                                   Arg2 => C_Long_Int (Typ.Lower_Limit),
-                                   Arg3 => C_Long_Int (Typ.Upper_Limit)));
-      Wrap_Builtin (Fld, Typ);
-   end Set_Field_Type;
+      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
+                                   Arg2 => C_Long_Int (Typ.Lower_Limit),
+                                   Arg3 => C_Long_Int (Typ.Upper_Limit)));
+      Wrap_Builtin (Fld, Typ);
+   end Set_Field_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.IntField;
-
+end Terminal_Interface.Curses.Forms.Field_Types.IntField; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm index 23311684..91151756 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-intfield__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-intfield.ads + + +terminal_interface-curses-forms-field_types-intfield.ads - - -

File : terminal_interface-curses-forms-field_types-intfield.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---            Terminal_Interface.Curses.Forms.Field_Types.IntField          --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.IntField is
-   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.IntField);
+
+
+

File : terminal_interface-curses-forms-field_types-intfield.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--            Terminal_Interface.Curses.Forms.Field_Types.IntField          --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.IntField is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.IntField);
 
-   type Integer_Field is new Field_Type with
+   type Integer_Field is new Field_Type with
       record
-         Precision   : Natural;
-         Lower_Limit : Integer;
-         Upper_Limit : Integer;
+         Precision   : Natural;
+         Lower_Limit : Integer;
+         Upper_Limit : Integer;
       end record;
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Integer_Field);
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Integer_Field);
    pragma Inline (Set_Field_Type);
 
-end Terminal_Interface.Curses.Forms.Field_Types.IntField;
-
+end Terminal_Interface.Curses.Forms.Field_Types.IntField; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm index 540733b3..e433d752 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-ipv4_address.adb + + +terminal_interface-curses-forms-field_types-ipv4_address.adb - - -

File : terminal_interface-curses-forms-field_types-ipv4_address.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---          Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address        --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.14 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types-ipv4_address.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--          Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address        --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.14 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
+package body Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Internet_V4_Address_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Internet_V4_Address_Field)
    is
-      function Set_Fld_Type (F : Field := Fld)
-                             return Eti_Error;
+      function Set_Fld_Type (F : Field := Fld)
+                             return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_ipv4");
 
    begin
-      Eti_Exception (Set_Fld_Type);
-      Wrap_Builtin (Fld, Typ);
-   end Set_Field_Type;
+      Eti_Exception (Set_Fld_Type);
+      Wrap_Builtin (Fld, Typ);
+   end Set_Field_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
-
+end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm index 0e829670..5ace0d50 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-ipv4_address__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-ipv4_address.ads + + +terminal_interface-curses-forms-field_types-ipv4_address.ads - - -

File : terminal_interface-curses-forms-field_types-ipv4_address.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---          Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address        --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
+
+
+

File : terminal_interface-curses-forms-field_types-ipv4_address.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--          Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address        --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
    pragma Preelaborate
-     (Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address);
+     (Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address);
 
-   type Internet_V4_Address_Field is new Field_Type with null record;
+   type Internet_V4_Address_Field is new Field_Type with null record;
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Internet_V4_Address_Field);
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Internet_V4_Address_Field);
    pragma Inline (Set_Field_Type);
 
-end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
-
+end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm index f4902163..11b48eb2 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-numeric.adb + + +terminal_interface-curses-forms-field_types-numeric.adb - - -

File : terminal_interface-curses-forms-field_types-numeric.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---            Terminal_Interface.Curses.Forms.Field_Types.Numeric           --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.15 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types-numeric.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--            Terminal_Interface.Curses.Forms.Field_Types.Numeric           --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.15 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.Numeric is
+package body Terminal_Interface.Curses.Forms.Field_Types.Numeric is
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Numeric_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Numeric_Field)
    is
-      type Double is new Interfaces.C.double;
+      type Double is new Interfaces.C.double;
 
-      function Set_Fld_Type (F    : Field := Fld;
-                             Arg1 : C_Int;
-                             Arg2 : Double;
-                             Arg3 : Double) return Eti_Error;
+      function Set_Fld_Type (F    : Field := Fld;
+                             Arg1 : C_Int;
+                             Arg2 : Double;
+                             Arg3 : Double) return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_numeric");
 
    begin
-      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
-                                   Arg2 => Double (Typ.Lower_Limit),
-                                   Arg3 => Double (Typ.Upper_Limit)));
-      Wrap_Builtin (Fld, Typ);
-   end Set_Field_Type;
+      Eti_Exception (Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
+                                   Arg2 => Double (Typ.Lower_Limit),
+                                   Arg3 => Double (Typ.Upper_Limit)));
+      Wrap_Builtin (Fld, Typ);
+   end Set_Field_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.Numeric;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Numeric; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm index 0d33c272..0dddc360 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-numeric__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-numeric.ads + + +terminal_interface-curses-forms-field_types-numeric.ads - - -

File : terminal_interface-curses-forms-field_types-numeric.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---             Terminal_Interface.Curses.Forms.Field_Types.Numeric          --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.Numeric is
-   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Numeric);
+
+
+

File : terminal_interface-curses-forms-field_types-numeric.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--             Terminal_Interface.Curses.Forms.Field_Types.Numeric          --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.Numeric is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Numeric);
 
-   type Numeric_Field is new Field_Type with
+   type Numeric_Field is new Field_Type with
       record
-         Precision   : Natural;
-         Lower_Limit : Float;
-         Upper_Limit : Float;
+         Precision   : Natural;
+         Lower_Limit : Float;
+         Upper_Limit : Float;
       end record;
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Numeric_Field);
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Numeric_Field);
    pragma Inline (Set_Field_Type);
 
-end Terminal_Interface.Curses.Forms.Field_Types.Numeric;
-
+end Terminal_Interface.Curses.Forms.Field_Types.Numeric; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm index abdd97f4..a8936f5c 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-regexp.adb + + +terminal_interface-curses-forms-field_types-regexp.adb - - -

File : terminal_interface-curses-forms-field_types-regexp.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---             Terminal_Interface.Curses.Forms.Field_Types.RegExp           --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C; use Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types-regexp.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--             Terminal_Interface.Curses.Forms.Field_Types.RegExp           --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C; use Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.RegExp is
+package body Terminal_Interface.Curses.Forms.Field_Types.RegExp is
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Regular_Expression_Field)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Regular_Expression_Field)
    is
-      function Set_Ftyp (F    : Field := Fld;
-                         Arg1 : char_array) return Eti_Error;
+      function Set_Ftyp (F    : Field := Fld;
+                         Arg1 : char_array) return Eti_Error;
       pragma Import (C, Set_Ftyp, "set_field_type_regexp");
 
    begin
-      Eti_Exception (Set_Ftyp (Arg1 => To_C (Typ.Regular_Expression.all)));
-      Wrap_Builtin (Fld, Typ);
-   end Set_Field_Type;
+      Eti_Exception (Set_Ftyp (Arg1 => To_C (Typ.Regular_Expression.all)));
+      Wrap_Builtin (Fld, Typ);
+   end Set_Field_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
-
+end Terminal_Interface.Curses.Forms.Field_Types.RegExp; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm index 4dd1784d..19f903da 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-regexp__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-regexp.ads + + +terminal_interface-curses-forms-field_types-regexp.ads - - -

File : terminal_interface-curses-forms-field_types-regexp.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---              Terminal_Interface.Curses.Forms.Field_Types.RegExp          --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface.Curses.Forms.Field_Types.RegExp is
-   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.RegExp);
+
+
+

File : terminal_interface-curses-forms-field_types-regexp.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--              Terminal_Interface.Curses.Forms.Field_Types.RegExp          --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.RegExp is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.RegExp);
 
-   type String_Access is access String;
+   type String_Access is access String;
 
-   type Regular_Expression_Field is new Field_Type with
+   type Regular_Expression_Field is new Field_Type with
       record
-         Regular_Expression : String_Access;
+         Regular_Expression : String_Access;
       end record;
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : Regular_Expression_Field);
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : Regular_Expression_Field);
    pragma Inline (Set_Field_Type);
 
-end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
-
+end Terminal_Interface.Curses.Forms.Field_Types.RegExp; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm index a78ae91d..b9f797a8 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-user-choice.adb + + +terminal_interface-curses-forms-field_types-user-choice.adb - - -

File : terminal_interface-curses-forms-field_types-user-choice.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---          Terminal_Interface.Curses.Forms.Field_Types.User.Choice         --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.21 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms-field_types-user-choice.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--          Terminal_Interface.Curses.Forms.Field_Types.User.Choice         --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.21 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System.Address_To_Access_Conversions;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
+package body Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
 
    package Argument_Conversions is
-      new System.Address_To_Access_Conversions (Argument);
+      new System.Address_To_Access_Conversions (Argument);
 
-   function Generic_Next (Fld : Field;
-                          Usr : System.Address) return Curses_Bool
+   function Generic_Next (Fld : Field;
+                          Usr : System.Address) return Curses_Bool
    is
-      Result : Boolean;
-      Udf    : constant User_Defined_Field_Type_With_Choice_Access :=
-        User_Defined_Field_Type_With_Choice_Access
-        (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
+      Result : Boolean;
+      Udf    : constant User_Defined_Field_Type_With_Choice_Access :=
+        User_Defined_Field_Type_With_Choice_Access
+        (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
    begin
-      Result := Next (Fld, Udf.all);
-      return Curses_Bool (Boolean'Pos (Result));
-   end Generic_Next;
+      Result := Next (Fld, Udf.all);
+      return Curses_Bool (Boolean'Pos (Result));
+   end Generic_Next;
 
-   function Generic_Prev (Fld : Field;
-                          Usr : System.Address) return Curses_Bool
+   function Generic_Prev (Fld : Field;
+                          Usr : System.Address) return Curses_Bool
    is
-      Result : Boolean;
-      Udf    : constant User_Defined_Field_Type_With_Choice_Access :=
-        User_Defined_Field_Type_With_Choice_Access
-        (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
+      Result : Boolean;
+      Udf    : constant User_Defined_Field_Type_With_Choice_Access :=
+        User_Defined_Field_Type_With_Choice_Access
+        (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
    begin
-      Result := Previous (Fld, Udf.all);
-      return Curses_Bool (Boolean'Pos (Result));
-   end Generic_Prev;
+      Result := Previous (Fld, Udf.all);
+      return Curses_Bool (Boolean'Pos (Result));
+   end Generic_Prev;
 
-   --  -----------------------------------------------------------------------
-   --
-   function C_Generic_Choice return C_Field_Type
+   --  -----------------------------------------------------------------------
+   --
+   function C_Generic_Choice return C_Field_Type
    is
-      Res : Eti_Error;
-      T   : C_Field_Type;
+      Res : Eti_Error;
+      T   : C_Field_Type;
    begin
-      if M_Generic_Choice = Null_Field_Type then
-         T := New_Fieldtype (Generic_Field_Check'Access,
-                             Generic_Char_Check'Access);
-         if T = Null_Field_Type then
-            raise Form_Exception;
+      if M_Generic_Choice = Null_Field_Type then
+         T := New_Fieldtype (Generic_Field_Check'Access,
+                             Generic_Char_Check'Access);
+         if T = Null_Field_Type then
+            raise Form_Exception;
          else
-            Res := Set_Fieldtype_Arg (T,
-                                      Make_Arg'Access,
-                                      Copy_Arg'Access,
-                                      Free_Arg'Access);
-            Eti_Exception (Res);
+            Res := Set_Fieldtype_Arg (T,
+                                      Make_Arg'Access,
+                                      Copy_Arg'Access,
+                                      Free_Arg'Access);
+            Eti_Exception (Res);
 
-            Res := Set_Fieldtype_Choice (T,
-                                         Generic_Next'Access,
-                                         Generic_Prev'Access);
-            Eti_Exception (Res);
+            Res := Set_Fieldtype_Choice (T,
+                                         Generic_Next'Access,
+                                         Generic_Prev'Access);
+            Eti_Exception (Res);
          end if;
-         M_Generic_Choice := T;
+         M_Generic_Choice := T;
       end if;
-      pragma Assert (M_Generic_Choice /= Null_Field_Type);
-      return M_Generic_Choice;
-   end C_Generic_Choice;
+      pragma Assert (M_Generic_Choice /= Null_Field_Type);
+      return M_Generic_Choice;
+   end C_Generic_Choice;
 
-end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
-
+end Terminal_Interface.Curses.Forms.Field_Types.User.Choice; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm index 7dd786e6..74a65889 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user-choice__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-user-choice.ads + + +terminal_interface-curses-forms-field_types-user-choice.ads - - -

File : terminal_interface-curses-forms-field_types-user-choice.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---           Terminal_Interface.Curses.Forms.Field_Types.User.Choice        --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2008,2011 Free 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, 1996
---  Version Control:
---  @Revision: 1.15 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
+
+
+

File : terminal_interface-curses-forms-field_types-user-choice.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--           Terminal_Interface.Curses.Forms.Field_Types.User.Choice        --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2008,2011 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.15 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
 
-package Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
+package Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
    pragma Preelaborate
-     (Terminal_Interface.Curses.Forms.Field_Types.User.Choice);
+     (Terminal_Interface.Curses.Forms.Field_Types.User.Choice);
 
-   subtype C_Int is Interfaces.C.int;
+   subtype C_Int is Interfaces.C.int;
 
-   type User_Defined_Field_Type_With_Choice is abstract new
-     User_Defined_Field_Type with null record;
-   --  This is the root of the mechanism we use to create field types in
-   --  Ada95 that allow the prev/next mechanism. You should your own type
-   --  derive from this one and implement the Field_Check, Character_Check
-   --  Next and Previous functions for your own type.
+   type User_Defined_Field_Type_With_Choice is abstract new
+     User_Defined_Field_Type with null record;
+   --  This is the root of the mechanism we use to create field types in
+   --  Ada95 that allow the prev/next mechanism. You should your own type
+   --  derive from this one and implement the Field_Check, Character_Check
+   --  Next and Previous functions for your own type.
 
-   type User_Defined_Field_Type_With_Choice_Access is access all
-     User_Defined_Field_Type_With_Choice'Class;
+   type User_Defined_Field_Type_With_Choice_Access is access all
+     User_Defined_Field_Type_With_Choice'Class;
 
-   function Next
-     (Fld : Field;
-      Typ : User_Defined_Field_Type_With_Choice) return Boolean
+   function Next
+     (Fld : Field;
+      Typ : User_Defined_Field_Type_With_Choice) return Boolean
       is abstract;
-   --  If True is returned, the function successfully generated a next
-   --  value into the fields buffer.
+   --  If True is returned, the function successfully generated a next
+   --  value into the fields buffer.
 
-   function Previous
-     (Fld : Field;
-      Typ : User_Defined_Field_Type_With_Choice) return Boolean
+   function Previous
+     (Fld : Field;
+      Typ : User_Defined_Field_Type_With_Choice) return Boolean
       is abstract;
-   --  If True is returned, the function successfully generated a previous
-   --  value into the fields buffer.
+   --  If True is returned, the function successfully generated a previous
+   --  value into the fields buffer.
 
-   --  +----------------------------------------------------------------------
-   --  | Private Part.
-   --  |
+   --  +----------------------------------------------------------------------
+   --  | Private Part.
+   --  |
 private
-   function C_Generic_Choice return C_Field_Type;
+   function C_Generic_Choice return C_Field_Type;
 
-   function Generic_Next (Fld : Field;
-                          Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Generic_Next);
-   --  This is the generic next Choice_Function for the low-level fieldtype
-   --  representing all the User_Defined_Field_Type derivatives. It routes
-   --  the call to the Next implementation for the type.
+   function Generic_Next (Fld : Field;
+                          Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Generic_Next);
+   --  This is the generic next Choice_Function for the low-level fieldtype
+   --  representing all the User_Defined_Field_Type derivatives. It routes
+   --  the call to the Next implementation for the type.
 
-   function Generic_Prev (Fld : Field;
-                          Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Generic_Prev);
-   --  This is the generic prev Choice_Function for the low-level fieldtype
-   --  representing all the User_Defined_Field_Type derivatives. It routes
-   --  the call to the Previous implementation for the type.
+   function Generic_Prev (Fld : Field;
+                          Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Generic_Prev);
+   --  This is the generic prev Choice_Function for the low-level fieldtype
+   --  representing all the User_Defined_Field_Type derivatives. It routes
+   --  the call to the Previous implementation for the type.
 
-end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
-
+end Terminal_Interface.Curses.Forms.Field_Types.User.Choice; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm index 333957eb..066df299 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-user.adb + + +terminal_interface-curses-forms-field_types-user.adb - - -

File : terminal_interface-curses-forms-field_types-user.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---              Terminal_Interface.Curses.Forms.Field_Types.User            --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.24 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms-field_types-user.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--              Terminal_Interface.Curses.Forms.Field_Types.User            --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.24 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System.Address_To_Access_Conversions;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Field_Types.User is
+package body Terminal_Interface.Curses.Forms.Field_Types.User is
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : User_Defined_Field_Type)
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : User_Defined_Field_Type)
    is
-      function Allocate_Arg (T : User_Defined_Field_Type'Class)
-                             return Argument_Access;
+      function Allocate_Arg (T : User_Defined_Field_Type'Class)
+                             return Argument_Access;
 
-      function Set_Fld_Type (F    : Field := Fld;
-                             Cft  : C_Field_Type := C_Generic_Type;
-                             Arg1 : Argument_Access)
-                             return Eti_Error;
+      function Set_Fld_Type (F    : Field := Fld;
+                             Cft  : C_Field_Type := C_Generic_Type;
+                             Arg1 : Argument_Access)
+                             return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_user");
 
-      function Allocate_Arg (T : User_Defined_Field_Type'Class)
-                             return Argument_Access
+      function Allocate_Arg (T : User_Defined_Field_Type'Class)
+                             return Argument_Access
       is
-         Ptr : constant Field_Type_Access
-             := new User_Defined_Field_Type'Class'(T);
+         Ptr : constant Field_Type_Access
+             := new User_Defined_Field_Type'Class'(T);
       begin
-         return new Argument'(Usr => System.Null_Address,
-                              Typ => Ptr,
-                              Cft => Null_Field_Type);
-      end Allocate_Arg;
+         return new Argument'(Usr => System.Null_Address,
+                              Typ => Ptr,
+                              Cft => Null_Field_Type);
+      end Allocate_Arg;
 
    begin
-      Eti_Exception (Set_Fld_Type (Arg1 => Allocate_Arg (Typ)));
-   end Set_Field_Type;
+      Eti_Exception (Set_Fld_Type (Arg1 => Allocate_Arg (Typ)));
+   end Set_Field_Type;
 
    package Argument_Conversions is
-      new System.Address_To_Access_Conversions (Argument);
+      new System.Address_To_Access_Conversions (Argument);
 
-   function Generic_Field_Check (Fld : Field;
-                                 Usr : System.Address) return Curses_Bool
+   function Generic_Field_Check (Fld : Field;
+                                 Usr : System.Address) return Curses_Bool
    is
-      Result : Boolean;
-      Udf    : constant User_Defined_Field_Type_Access :=
-        User_Defined_Field_Type_Access
-          (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
+      Result : Boolean;
+      Udf    : constant User_Defined_Field_Type_Access :=
+        User_Defined_Field_Type_Access
+          (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
    begin
-      Result := Field_Check (Fld, Udf.all);
-      return Curses_Bool (Boolean'Pos (Result));
-   end Generic_Field_Check;
+      Result := Field_Check (Fld, Udf.all);
+      return Curses_Bool (Boolean'Pos (Result));
+   end Generic_Field_Check;
 
-   function Generic_Char_Check (Ch  : C_Int;
-                                Usr : System.Address) return Curses_Bool
+   function Generic_Char_Check (Ch  : C_Int;
+                                Usr : System.Address) return Curses_Bool
    is
-      Result : Boolean;
-      Udf    : constant User_Defined_Field_Type_Access :=
-        User_Defined_Field_Type_Access
-          (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
+      Result : Boolean;
+      Udf    : constant User_Defined_Field_Type_Access :=
+        User_Defined_Field_Type_Access
+          (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
    begin
-      Result := Character_Check (Character'Val (Ch), Udf.all);
-      return Curses_Bool (Boolean'Pos (Result));
-   end Generic_Char_Check;
+      Result := Character_Check (Character'Val (Ch), Udf.all);
+      return Curses_Bool (Boolean'Pos (Result));
+   end Generic_Char_Check;
 
-   --  -----------------------------------------------------------------------
-   --
-   function C_Generic_Type return C_Field_Type
+   --  -----------------------------------------------------------------------
+   --
+   function C_Generic_Type return C_Field_Type
    is
-      Res : Eti_Error;
-      T   : C_Field_Type;
+      Res : Eti_Error;
+      T   : C_Field_Type;
    begin
-      if M_Generic_Type = Null_Field_Type then
-         T := New_Fieldtype (Generic_Field_Check'Access,
-                             Generic_Char_Check'Access);
-         if T = Null_Field_Type then
-            raise Form_Exception;
+      if M_Generic_Type = Null_Field_Type then
+         T := New_Fieldtype (Generic_Field_Check'Access,
+                             Generic_Char_Check'Access);
+         if T = Null_Field_Type then
+            raise Form_Exception;
          else
-            Res := Set_Fieldtype_Arg (T,
-                                      Make_Arg'Access,
-                                      Copy_Arg'Access,
-                                      Free_Arg'Access);
-            Eti_Exception (Res);
+            Res := Set_Fieldtype_Arg (T,
+                                      Make_Arg'Access,
+                                      Copy_Arg'Access,
+                                      Free_Arg'Access);
+            Eti_Exception (Res);
          end if;
-         M_Generic_Type := T;
+         M_Generic_Type := T;
       end if;
-      pragma Assert (M_Generic_Type /= Null_Field_Type);
-      return M_Generic_Type;
-   end C_Generic_Type;
+      pragma Assert (M_Generic_Type /= Null_Field_Type);
+      return M_Generic_Type;
+   end C_Generic_Type;
 
-end Terminal_Interface.Curses.Forms.Field_Types.User;
-
+end Terminal_Interface.Curses.Forms.Field_Types.User; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm index 1b753bb5..71902837 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types-user.ads + + +terminal_interface-curses-forms-field_types-user.ads - - -

File : terminal_interface-curses-forms-field_types-user.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Forms.Field_Types.User           --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2009,2011 Free 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, 1996
---  Version Control:
---  @Revision: 1.16 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
+
+
+

File : terminal_interface-curses-forms-field_types-user.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Forms.Field_Types.User           --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2009,2011 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.16 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
 
-package Terminal_Interface.Curses.Forms.Field_Types.User is
-   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.User);
-   subtype C_Int is Interfaces.C.int;
+package Terminal_Interface.Curses.Forms.Field_Types.User is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.User);
+   subtype C_Int is Interfaces.C.int;
 
-   type User_Defined_Field_Type is abstract new Field_Type with null record;
-   --  This is the root of the mechanism we use to create field types in
-   --  Ada95. You should your own type derive from this one and implement
-   --  the Field_Check and Character_Check functions for your own type.
+   type User_Defined_Field_Type is abstract new Field_Type with null record;
+   --  This is the root of the mechanism we use to create field types in
+   --  Ada95. You should your own type derive from this one and implement
+   --  the Field_Check and Character_Check functions for your own type.
 
-   type User_Defined_Field_Type_Access is access all
-     User_Defined_Field_Type'Class;
+   type User_Defined_Field_Type_Access is access all
+     User_Defined_Field_Type'Class;
 
-   function Field_Check
-     (Fld : Field;
-      Typ : User_Defined_Field_Type) return Boolean
+   function Field_Check
+     (Fld : Field;
+      Typ : User_Defined_Field_Type) return Boolean
       is abstract;
-   --  If True is returned, the field is considered valid, otherwise it is
-   --  invalid.
+   --  If True is returned, the field is considered valid, otherwise it is
+   --  invalid.
 
-   function Character_Check
-     (Ch  : Character;
-      Typ : User_Defined_Field_Type) return Boolean
+   function Character_Check
+     (Ch  : Character;
+      Typ : User_Defined_Field_Type) return Boolean
       is abstract;
-   --  If True is returned, the character is considered as valid for the
-   --  field, otherwise as invalid.
+   --  If True is returned, the character is considered as valid for the
+   --  field, otherwise as invalid.
 
-   procedure Set_Field_Type (Fld : Field;
-                             Typ : User_Defined_Field_Type);
-   --  This should work for all types derived from User_Defined_Field_Type.
-   --  No need to reimplement it for your derived type.
+   procedure Set_Field_Type (Fld : Field;
+                             Typ : User_Defined_Field_Type);
+   --  This should work for all types derived from User_Defined_Field_Type.
+   --  No need to reimplement it for your derived type.
 
-   --  +----------------------------------------------------------------------
-   --  | Private Part.
-   --  | Used by the Choice child package.
+   --  +----------------------------------------------------------------------
+   --  | Private Part.
+   --  | Used by the Choice child package.
 private
-   function C_Generic_Type   return C_Field_Type;
+   function C_Generic_Type   return C_Field_Type;
 
-   function Generic_Field_Check (Fld : Field;
-                                 Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Generic_Field_Check);
-   --  This is the generic Field_Check_Function for the low-level fieldtype
-   --  representing all the User_Defined_Field_Type derivatives. It routes
-   --  the call to the Field_Check implementation for the type.
+   function Generic_Field_Check (Fld : Field;
+                                 Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Generic_Field_Check);
+   --  This is the generic Field_Check_Function for the low-level fieldtype
+   --  representing all the User_Defined_Field_Type derivatives. It routes
+   --  the call to the Field_Check implementation for the type.
 
-   function Generic_Char_Check (Ch  : C_Int;
-                                Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Generic_Char_Check);
-   --  This is the generic Char_Check_Function for the low-level fieldtype
-   --  representing all the User_Defined_Field_Type derivatives. It routes
-   --  the call to the Character_Check implementation for the type.
+   function Generic_Char_Check (Ch  : C_Int;
+                                Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Generic_Char_Check);
+   --  This is the generic Char_Check_Function for the low-level fieldtype
+   --  representing all the User_Defined_Field_Type derivatives. It routes
+   --  the call to the Character_Check implementation for the type.
 
-end Terminal_Interface.Curses.Forms.Field_Types.User;
-
+end Terminal_Interface.Curses.Forms.Field_Types.User; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm index 35cc0dfc..c028825d 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types.adb + + +terminal_interface-curses-forms-field_types.adb - - -

File : terminal_interface-curses-forms-field_types.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                 Terminal_Interface.Curses.Forms.Field_Types              --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.29 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                 Terminal_Interface.Curses.Forms.Field_Types              --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.29 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 with Ada.Unchecked_Deallocation;
 with System.Address_To_Access_Conversions;
 
---  |
---  |=====================================================================
---  | man page form_fieldtype.3x
---  |=====================================================================
---  |
-package body Terminal_Interface.Curses.Forms.Field_Types is
+--  |
+--  |=====================================================================
+--  | man page form_fieldtype.3x
+--  |=====================================================================
+--  |
+package body Terminal_Interface.Curses.Forms.Field_Types is
 
    use type System.Address;
 
    package Argument_Conversions is
-      new System.Address_To_Access_Conversions (Argument);
+      new System.Address_To_Access_Conversions (Argument);
 
-   function Get_Fieldtype (F : Field) return C_Field_Type;
+   function Get_Fieldtype (F : Field) return C_Field_Type;
    pragma Import (C, Get_Fieldtype, "field_type");
 
-   function Get_Arg (F : Field) return System.Address;
+   function Get_Arg (F : Field) return System.Address;
    pragma Import (C, Get_Arg, "field_arg");
-   --  |
-   --  |=====================================================================
-   --  | man page form_field_validation.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   function Get_Type (Fld : Field) return Field_Type_Access
+   --  |
+   --  |=====================================================================
+   --  | man page form_field_validation.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   function Get_Type (Fld : Field) return Field_Type_Access
    is
-      Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
-      Arg : Argument_Access;
+      Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
+      Arg : Argument_Access;
    begin
-      if Low_Level = Null_Field_Type then
+      if Low_Level = Null_Field_Type then
          return null;
       else
-         if Low_Level = M_Builtin_Router or else
-            Low_Level = M_Generic_Type or else
-            Low_Level = M_Choice_Router or else
-            Low_Level = M_Generic_Choice
+         if Low_Level = M_Builtin_Router or else
+            Low_Level = M_Generic_Type or else
+            Low_Level = M_Choice_Router or else
+            Low_Level = M_Generic_Choice
          then
-            Arg := Argument_Access
-         (Argument_Conversions.To_Pointer (Get_Arg (Fld)));
-            if Arg = null then
-               raise Form_Exception;
+            Arg := Argument_Access
+         (Argument_Conversions.To_Pointer (Get_Arg (Fld)));
+            if Arg = null then
+               raise Form_Exception;
             else
-               return Arg.all.Typ;
+               return Arg.all.Typ;
             end if;
          else
-            raise Form_Exception;
+            raise Form_Exception;
          end if;
       end if;
-   end Get_Type;
+   end Get_Type;
 
-   function Copy_Arg (Usr : System.Address) return System.Address
+   function Copy_Arg (Usr : System.Address) return System.Address
    is
    begin
-      return Usr;
-   end Copy_Arg;
+      return Usr;
+   end Copy_Arg;
 
-   procedure Free_Arg (Usr : System.Address)
+   procedure Free_Arg (Usr : System.Address)
    is
       procedure Free_Type is new Ada.Unchecked_Deallocation
-        (Field_Type'Class, Field_Type_Access);
+        (Field_Type'Class, Field_Type_Access);
       procedure Freeargs is new Ada.Unchecked_Deallocation
-        (Argument, Argument_Access);
+        (Argument, Argument_Access);
 
-      To_Be_Free : Argument_Access
-   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
-      Low_Level  : C_Field_Type;
+      To_Be_Free : Argument_Access
+   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
+      Low_Level  : C_Field_Type;
    begin
-      if To_Be_Free /= null then
-         if To_Be_Free.all.Usr /= System.Null_Address then
-            Low_Level := To_Be_Free.all.Cft;
-            if Low_Level.all.Freearg /= null then
-               Low_Level.all.Freearg (To_Be_Free.all.Usr);
+      if To_Be_Free /= null then
+         if To_Be_Free.all.Usr /= System.Null_Address then
+            Low_Level := To_Be_Free.all.Cft;
+            if Low_Level.all.Freearg /= null then
+               Low_Level.all.Freearg (To_Be_Free.all.Usr);
             end if;
          end if;
-         if To_Be_Free.all.Typ /= null then
-            Free_Type (To_Be_Free.all.Typ);
+         if To_Be_Free.all.Typ /= null then
+            Free_Type (To_Be_Free.all.Typ);
          end if;
-         Freeargs (To_Be_Free);
+         Freeargs (To_Be_Free);
       end if;
-   end Free_Arg;
+   end Free_Arg;
 
-   procedure Wrap_Builtin (Fld : Field;
-                           Typ : Field_Type'Class;
-                           Cft : C_Field_Type := C_Builtin_Router)
+   procedure Wrap_Builtin (Fld : Field;
+                           Typ : Field_Type'Class;
+                           Cft : C_Field_Type := C_Builtin_Router)
    is
-      Usr_Arg   : constant System.Address := Get_Arg (Fld);
-      Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
-      Arg : Argument_Access;
-      function Set_Fld_Type (F    : Field := Fld;
-                             Cf   : C_Field_Type := Cft;
-                             Arg1 : Argument_Access) return Eti_Error;
+      Usr_Arg   : constant System.Address := Get_Arg (Fld);
+      Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
+      Arg : Argument_Access;
+      function Set_Fld_Type (F    : Field := Fld;
+                             Cf   : C_Field_Type := Cft;
+                             Arg1 : Argument_Access) return Eti_Error;
       pragma Import (C, Set_Fld_Type, "set_field_type_user");
 
    begin
-      pragma Assert (Low_Level /= Null_Field_Type);
-      if Cft /= C_Builtin_Router and then Cft /= C_Choice_Router then
-         raise Form_Exception;
+      pragma Assert (Low_Level /= Null_Field_Type);
+      if Cft /= C_Builtin_Router and then Cft /= C_Choice_Router then
+         raise Form_Exception;
       else
-         Arg := new Argument'(Usr => System.Null_Address,
-                              Typ => new Field_Type'Class'(Typ),
-                              Cft => Get_Fieldtype (Fld));
-         if Usr_Arg /= System.Null_Address then
-            if Low_Level.all.Copyarg /= null then
-               Arg.all.Usr := Low_Level.all.Copyarg (Usr_Arg);
+         Arg := new Argument'(Usr => System.Null_Address,
+                              Typ => new Field_Type'Class'(Typ),
+                              Cft => Get_Fieldtype (Fld));
+         if Usr_Arg /= System.Null_Address then
+            if Low_Level.all.Copyarg /= null then
+               Arg.all.Usr := Low_Level.all.Copyarg (Usr_Arg);
             else
-               Arg.all.Usr := Usr_Arg;
+               Arg.all.Usr := Usr_Arg;
             end if;
          end if;
 
-         Eti_Exception (Set_Fld_Type (Arg1 => Arg));
+         Eti_Exception (Set_Fld_Type (Arg1 => Arg));
       end if;
-   end Wrap_Builtin;
+   end Wrap_Builtin;
 
-   function Field_Check_Router (Fld : Field;
-                                Usr : System.Address) return Curses_Bool
+   function Field_Check_Router (Fld : Field;
+                                Usr : System.Address) return Curses_Bool
    is
-      Arg  : constant Argument_Access
-   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
+      Arg  : constant Argument_Access
+   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
    begin
-      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
-                     and then Arg.all.Typ /= null);
-      if Arg.all.Cft.all.Fcheck /= null then
-         return Arg.all.Cft.all.Fcheck (Fld, Arg.all.Usr);
+      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
+                     and then Arg.all.Typ /= null);
+      if Arg.all.Cft.all.Fcheck /= null then
+         return Arg.all.Cft.all.Fcheck (Fld, Arg.all.Usr);
       else
          return 1;
       end if;
-   end Field_Check_Router;
+   end Field_Check_Router;
 
-   function Char_Check_Router (Ch  : C_Int;
-                               Usr : System.Address) return Curses_Bool
+   function Char_Check_Router (Ch  : C_Int;
+                               Usr : System.Address) return Curses_Bool
    is
-      Arg  : constant Argument_Access
-   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
+      Arg  : constant Argument_Access
+   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
    begin
-      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
-                     and then Arg.all.Typ /= null);
-      if Arg.all.Cft.all.Ccheck /= null then
-         return Arg.all.Cft.all.Ccheck (Ch, Arg.all.Usr);
+      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
+                     and then Arg.all.Typ /= null);
+      if Arg.all.Cft.all.Ccheck /= null then
+         return Arg.all.Cft.all.Ccheck (Ch, Arg.all.Usr);
       else
          return 1;
       end if;
-   end Char_Check_Router;
+   end Char_Check_Router;
 
-   function Next_Router (Fld : Field;
-                         Usr : System.Address) return Curses_Bool
+   function Next_Router (Fld : Field;
+                         Usr : System.Address) return Curses_Bool
    is
-      Arg  : constant Argument_Access
-   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
+      Arg  : constant Argument_Access
+   := Argument_Access (Argument_Conversions.To_Pointer (Usr));
    begin
-      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
-                     and then Arg.all.Typ /= null);
-      if Arg.all.Cft.all.Next /= null then
-         return Arg.all.Cft.all.Next (Fld, Arg.all.Usr);
+      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
+                     and then Arg.all.Typ /= null);
+      if Arg.all.Cft.all.Next /= null then
+         return Arg.all.Cft.all.Next (Fld, Arg.all.Usr);
       else
          return 1;
       end if;
-   end Next_Router;
+   end Next_Router;
 
-   function Prev_Router (Fld : Field;
-                         Usr : System.Address) return Curses_Bool
+   function Prev_Router (Fld : Field;
+                         Usr : System.Address) return Curses_Bool
    is
-      Arg  : constant Argument_Access :=
-               Argument_Access (Argument_Conversions.To_Pointer (Usr));
+      Arg  : constant Argument_Access :=
+               Argument_Access (Argument_Conversions.To_Pointer (Usr));
    begin
-      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
-                     and then Arg.all.Typ /= null);
-      if Arg.all.Cft.all.Prev /= null then
-         return Arg.all.Cft.all.Prev (Fld, Arg.all.Usr);
+      pragma Assert (Arg /= null and then Arg.all.Cft /= Null_Field_Type
+                     and then Arg.all.Typ /= null);
+      if Arg.all.Cft.all.Prev /= null then
+         return Arg.all.Cft.all.Prev (Fld, Arg.all.Usr);
       else
          return 1;
       end if;
-   end Prev_Router;
+   end Prev_Router;
 
-   --  -----------------------------------------------------------------------
-   --
-   function C_Builtin_Router return C_Field_Type
+   --  -----------------------------------------------------------------------
+   --
+   function C_Builtin_Router return C_Field_Type
    is
-      T   : C_Field_Type;
+      T   : C_Field_Type;
    begin
-      if M_Builtin_Router = Null_Field_Type then
-         T := New_Fieldtype (Field_Check_Router'Access,
-                             Char_Check_Router'Access);
-         if T = Null_Field_Type then
-            raise Form_Exception;
+      if M_Builtin_Router = Null_Field_Type then
+         T := New_Fieldtype (Field_Check_Router'Access,
+                             Char_Check_Router'Access);
+         if T = Null_Field_Type then
+            raise Form_Exception;
          else
-            Eti_Exception (Set_Fieldtype_Arg (T,
-                                              Make_Arg'Access,
-                                              Copy_Arg'Access,
-                                              Free_Arg'Access));
+            Eti_Exception (Set_Fieldtype_Arg (T,
+                                              Make_Arg'Access,
+                                              Copy_Arg'Access,
+                                              Free_Arg'Access));
          end if;
-         M_Builtin_Router := T;
+         M_Builtin_Router := T;
       end if;
-      pragma Assert (M_Builtin_Router /= Null_Field_Type);
-      return M_Builtin_Router;
-   end C_Builtin_Router;
+      pragma Assert (M_Builtin_Router /= Null_Field_Type);
+      return M_Builtin_Router;
+   end C_Builtin_Router;
 
-   --  -----------------------------------------------------------------------
-   --
-   function C_Choice_Router return C_Field_Type
+   --  -----------------------------------------------------------------------
+   --
+   function C_Choice_Router return C_Field_Type
    is
-      T   : C_Field_Type;
+      T   : C_Field_Type;
    begin
-      if M_Choice_Router = Null_Field_Type then
-         T := New_Fieldtype (Field_Check_Router'Access,
-                             Char_Check_Router'Access);
-         if T = Null_Field_Type then
-            raise Form_Exception;
+      if M_Choice_Router = Null_Field_Type then
+         T := New_Fieldtype (Field_Check_Router'Access,
+                             Char_Check_Router'Access);
+         if T = Null_Field_Type then
+            raise Form_Exception;
          else
-            Eti_Exception (Set_Fieldtype_Arg (T,
-                                              Make_Arg'Access,
-                                              Copy_Arg'Access,
-                                              Free_Arg'Access));
+            Eti_Exception (Set_Fieldtype_Arg (T,
+                                              Make_Arg'Access,
+                                              Copy_Arg'Access,
+                                              Free_Arg'Access));
 
-            Eti_Exception (Set_Fieldtype_Choice (T,
-                                                 Next_Router'Access,
-                                                 Prev_Router'Access));
+            Eti_Exception (Set_Fieldtype_Choice (T,
+                                                 Next_Router'Access,
+                                                 Prev_Router'Access));
          end if;
-         M_Choice_Router := T;
+         M_Choice_Router := T;
       end if;
-      pragma Assert (M_Choice_Router /= Null_Field_Type);
-      return M_Choice_Router;
-   end C_Choice_Router;
+      pragma Assert (M_Choice_Router /= Null_Field_Type);
+      return M_Choice_Router;
+   end C_Choice_Router;
 
-end Terminal_Interface.Curses.Forms.Field_Types;
-
+end Terminal_Interface.Curses.Forms.Field_Types; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm index 470231ee..1970dd4e 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_types__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_types.ads + + +terminal_interface-curses-forms-field_types.ads - - -

File : terminal_interface-curses-forms-field_types.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                 Terminal_Interface.Curses.Forms.Field_Types              --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1998-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.21 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_types.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                 Terminal_Interface.Curses.Forms.Field_Types              --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1998-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.21 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux;
 
-package Terminal_Interface.Curses.Forms.Field_Types is
-   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
-   subtype C_Int is Interfaces.C.int;
+package Terminal_Interface.Curses.Forms.Field_Types is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
+   subtype C_Int is Interfaces.C.int;
 
-   --  |=====================================================================
-   --  | Man page form_fieldtype.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page form_fieldtype.3x
+   --  |=====================================================================
 
-   type Field_Type is abstract tagged null record;
-   --  Abstract base type for all field types. A concrete field type
-   --  is an extension that adds some data elements describing formats or
-   --  boundary values for the type and validation routines.
-   --  For the builtin low-level fieldtypes, the validation routines are
-   --  already defined by the low-level C library.
-   --  The builtin types like Alpha or AlphaNumeric etc. are defined in
-   --  child packages of this package. You may use one of them as example
-   --  how to create you own child packages for low-level field types that
-   --  you may have already written in C.
+   type Field_Type is abstract tagged null record;
+   --  Abstract base type for all field types. A concrete field type
+   --  is an extension that adds some data elements describing formats or
+   --  boundary values for the type and validation routines.
+   --  For the builtin low-level fieldtypes, the validation routines are
+   --  already defined by the low-level C library.
+   --  The builtin types like Alpha or AlphaNumeric etc. are defined in
+   --  child packages of this package. You may use one of them as example
+   --  how to create you own child packages for low-level field types that
+   --  you may have already written in C.
 
-   type Field_Type_Access is access all Field_Type'Class;
+   type Field_Type_Access is access all Field_Type'Class;
 
-   --  |
-   procedure Set_Field_Type (Fld      : Field;
-                             Fld_Type : Field_Type) is abstract;
-   --  AKA: set_field_type()
-   --  But: we hide the vararg mechanism of the C interface. You always
-   --       have to pass a single Field_Type parameter.
+   --  |
+   procedure Set_Field_Type (Fld      : Field;
+                             Fld_Type : Field_Type) is abstract;
+   --  AKA: set_field_type()
+   --  But: we hide the vararg mechanism of the C interface. You always
+   --       have to pass a single Field_Type parameter.
 
-   --  ---------------------------------------------------------------------
+   --  ---------------------------------------------------------------------
 
-   --  |=====================================================================
-   --  | Man page form_field_validation.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page form_field_validation.3x
+   --  |=====================================================================
 
-   --  |
-   function Get_Type (Fld : Field) return Field_Type_Access;
-   --  AKA: field_type()
-   --  AKA: field_arg()
-   --  In Ada95 we can combine these. If you try to retrieve the field type
-   --  that is not defined as extension of the abstract tagged type above,
-   --  you will raise a Form_Exception.
-   --  This is not inlined
+   --  |
+   function Get_Type (Fld : Field) return Field_Type_Access;
+   --  AKA: field_type()
+   --  AKA: field_arg()
+   --  In Ada95 we can combine these. If you try to retrieve the field type
+   --  that is not defined as extension of the abstract tagged type above,
+   --  you will raise a Form_Exception.
+   --  This is not inlined
 
-   --  +----------------------------------------------------------------------
-   --  | Private Part.
-   --  | Most of this is used by the implementations of the child packages.
-   --  |
+   --  +----------------------------------------------------------------------
+   --  | Private Part.
+   --  | Most of this is used by the implementations of the child packages.
+   --  |
 private
-   type Makearg_Function is access
-     function (Args : System.Address) return System.Address;
-   pragma Convention (C, Makearg_Function);
+   type Makearg_Function is access
+     function (Args : System.Address) return System.Address;
+   pragma Convention (C, Makearg_Function);
 
-   type Copyarg_Function is access
-     function (Usr : System.Address) return System.Address;
-   pragma Convention (C, Copyarg_Function);
+   type Copyarg_Function is access
+     function (Usr : System.Address) return System.Address;
+   pragma Convention (C, Copyarg_Function);
 
-   type Freearg_Function is access
-     procedure (Usr : System.Address);
-   pragma Convention (C, Freearg_Function);
+   type Freearg_Function is access
+     procedure (Usr : System.Address);
+   pragma Convention (C, Freearg_Function);
 
-   type Field_Check_Function is access
-     function (Fld : Field; Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Field_Check_Function);
+   type Field_Check_Function is access
+     function (Fld : Field; Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Field_Check_Function);
 
-   type Char_Check_Function is access
-     function (Ch : C_Int; Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Char_Check_Function);
+   type Char_Check_Function is access
+     function (Ch : C_Int; Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Char_Check_Function);
 
-   type Choice_Function is access
-     function (Fld : Field; Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Choice_Function);
+   type Choice_Function is access
+     function (Fld : Field; Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Choice_Function);
 
-   --  +----------------------------------------------------------------------
-   --  | This must be in sync with the FIELDTYPE structure in form.h
-   --  |
-   type Low_Level_Field_Type is
+   --  +----------------------------------------------------------------------
+   --  | This must be in sync with the FIELDTYPE structure in form.h
+   --  |
+   type Low_Level_Field_Type is
       record
-         Status :              Interfaces.C.unsigned_short;
-         Ref_Count :           Interfaces.C.long;
-         Left, Right :         System.Address;
-         Makearg :             Makearg_Function;
-         Copyarg :             Copyarg_Function;
-         Freearg :             Freearg_Function;
-         Fcheck :              Field_Check_Function;
-         Ccheck :              Char_Check_Function;
-         Next, Prev :          Choice_Function;
+         Status :              Interfaces.C.unsigned_short;
+         Ref_Count :           Interfaces.C.long;
+         Left, Right :         System.Address;
+         Makearg :             Makearg_Function;
+         Copyarg :             Copyarg_Function;
+         Freearg :             Freearg_Function;
+         Fcheck :              Field_Check_Function;
+         Ccheck :              Char_Check_Function;
+         Next, Prev :          Choice_Function;
       end record;
-   pragma Convention (C, Low_Level_Field_Type);
-   type C_Field_Type is access all Low_Level_Field_Type;
+   pragma Convention (C, Low_Level_Field_Type);
+   type C_Field_Type is access all Low_Level_Field_Type;
 
-   Null_Field_Type   : constant C_Field_Type := null;
+   Null_Field_Type   : constant C_Field_Type := null;
 
-   --  +----------------------------------------------------------------------
-   --  | This four low-level fieldtypes are the ones associated with
-   --  | fieldtypes handled by this binding. Any other low-level fieldtype
-   --  | will result in a Form_Exception is function Get_Type.
-   --  |
-   M_Generic_Type   : C_Field_Type := null;
-   M_Generic_Choice : C_Field_Type := null;
-   M_Builtin_Router : C_Field_Type := null;
-   M_Choice_Router  : C_Field_Type := null;
+   --  +----------------------------------------------------------------------
+   --  | This four low-level fieldtypes are the ones associated with
+   --  | fieldtypes handled by this binding. Any other low-level fieldtype
+   --  | will result in a Form_Exception is function Get_Type.
+   --  |
+   M_Generic_Type   : C_Field_Type := null;
+   M_Generic_Choice : C_Field_Type := null;
+   M_Builtin_Router : C_Field_Type := null;
+   M_Choice_Router  : C_Field_Type := null;
 
-   --  Two wrapper functions to access those low-level fieldtypes defined
-   --  in this package.
-   function C_Builtin_Router return C_Field_Type;
-   function C_Choice_Router  return C_Field_Type;
+   --  Two wrapper functions to access those low-level fieldtypes defined
+   --  in this package.
+   function C_Builtin_Router return C_Field_Type;
+   function C_Choice_Router  return C_Field_Type;
 
-   procedure Wrap_Builtin (Fld : Field;
-                           Typ : Field_Type'Class;
-                           Cft : C_Field_Type := C_Builtin_Router);
-   --  This procedure has to be called by the Set_Field_Type implementation
-   --  for builtin low-level fieldtypes to replace it by an Ada95
-   --  conformant Field_Type object.
-   --  The parameter Cft must be C_Builtin_Router for regular low-level
-   --  fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for
-   --  low-level fieldtypes witch choice functions (like TYP_ENUM).
-   --  Any other value will raise a Form_Exception.
+   procedure Wrap_Builtin (Fld : Field;
+                           Typ : Field_Type'Class;
+                           Cft : C_Field_Type := C_Builtin_Router);
+   --  This procedure has to be called by the Set_Field_Type implementation
+   --  for builtin low-level fieldtypes to replace it by an Ada95
+   --  conformant Field_Type object.
+   --  The parameter Cft must be C_Builtin_Router for regular low-level
+   --  fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for
+   --  low-level fieldtypes witch choice functions (like TYP_ENUM).
+   --  Any other value will raise a Form_Exception.
 
-   function Make_Arg (Args : System.Address) return System.Address;
+   function Make_Arg (Args : System.Address) return System.Address;
    pragma Import (C, Make_Arg, "void_star_make_arg");
-   --  This is the Makearg_Function for the internal low-level types
-   --  introduced by this binding.
+   --  This is the Makearg_Function for the internal low-level types
+   --  introduced by this binding.
 
-   function Copy_Arg (Usr : System.Address) return System.Address;
-   pragma Convention (C, Copy_Arg);
-   --  This is the Copyarg_Function for the internal low-level types
-   --  introduced by this binding.
+   function Copy_Arg (Usr : System.Address) return System.Address;
+   pragma Convention (C, Copy_Arg);
+   --  This is the Copyarg_Function for the internal low-level types
+   --  introduced by this binding.
 
-   procedure Free_Arg (Usr : System.Address);
-   pragma Convention (C, Free_Arg);
-   --  This is the Freearg_Function for the internal low-level types
-   --  introduced by this binding.
+   procedure Free_Arg (Usr : System.Address);
+   pragma Convention (C, Free_Arg);
+   --  This is the Freearg_Function for the internal low-level types
+   --  introduced by this binding.
 
-   function Field_Check_Router (Fld : Field;
-                                Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Field_Check_Router);
-   --  This is the Field_Check_Function for the internal low-level types
-   --  introduced to wrap the low-level types by a Field_Type derived
-   --  type. It routes the call to the corresponding low-level validation
-   --  function.
+   function Field_Check_Router (Fld : Field;
+                                Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Field_Check_Router);
+   --  This is the Field_Check_Function for the internal low-level types
+   --  introduced to wrap the low-level types by a Field_Type derived
+   --  type. It routes the call to the corresponding low-level validation
+   --  function.
 
-   function Char_Check_Router (Ch : C_Int;
-                               Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Char_Check_Router);
-   --  This is the Char_Check_Function for the internal low-level types
-   --  introduced to wrap the low-level types by a Field_Type derived
-   --  type. It routes the call to the corresponding low-level validation
-   --  function.
+   function Char_Check_Router (Ch : C_Int;
+                               Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Char_Check_Router);
+   --  This is the Char_Check_Function for the internal low-level types
+   --  introduced to wrap the low-level types by a Field_Type derived
+   --  type. It routes the call to the corresponding low-level validation
+   --  function.
 
-   function Next_Router (Fld : Field;
-                         Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Next_Router);
-   --  This is the Choice_Function for the internal low-level types
-   --  introduced to wrap the low-level types by a Field_Type derived
-   --  type. It routes the call to the corresponding low-level next_choice
-   --  function.
+   function Next_Router (Fld : Field;
+                         Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Next_Router);
+   --  This is the Choice_Function for the internal low-level types
+   --  introduced to wrap the low-level types by a Field_Type derived
+   --  type. It routes the call to the corresponding low-level next_choice
+   --  function.
 
-   function Prev_Router (Fld : Field;
-                         Usr : System.Address) return Curses_Bool;
-   pragma Convention (C, Prev_Router);
-   --  This is the Choice_Function for the internal low-level types
-   --  introduced to wrap the low-level types by a Field_Type derived
-   --  type. It routes the call to the corresponding low-level prev_choice
-   --  function.
+   function Prev_Router (Fld : Field;
+                         Usr : System.Address) return Curses_Bool;
+   pragma Convention (C, Prev_Router);
+   --  This is the Choice_Function for the internal low-level types
+   --  introduced to wrap the low-level types by a Field_Type derived
+   --  type. It routes the call to the corresponding low-level prev_choice
+   --  function.
 
-   --  This is the Argument structure maintained by all low-level field types
-   --  introduced by this binding.
-   type Argument is record
-      Typ : Field_Type_Access;   --  the Field_Type creating this record
-      Usr : System.Address;      --  original arg for builtin low-level types
-      Cft : C_Field_Type;        --  the original low-level type
+   --  This is the Argument structure maintained by all low-level field types
+   --  introduced by this binding.
+   type Argument is record
+      Typ : Field_Type_Access;   --  the Field_Type creating this record
+      Usr : System.Address;      --  original arg for builtin low-level types
+      Cft : C_Field_Type;        --  the original low-level type
    end record;
-   type Argument_Access is access all Argument;
+   type Argument_Access is access all Argument;
 
-   --  +----------------------------------------------------------------------
-   --  |
-   --  | Some Imports of libform routines to deal with low-level fieldtypes.
-   --  |
-   function New_Fieldtype (Fcheck : Field_Check_Function;
-                           Ccheck : Char_Check_Function)
-     return C_Field_Type;
+   --  +----------------------------------------------------------------------
+   --  |
+   --  | Some Imports of libform routines to deal with low-level fieldtypes.
+   --  |
+   function New_Fieldtype (Fcheck : Field_Check_Function;
+                           Ccheck : Char_Check_Function)
+     return C_Field_Type;
    pragma Import (C, New_Fieldtype, "new_fieldtype");
 
-   function Set_Fieldtype_Arg (Cft : C_Field_Type;
-                               Mak : Makearg_Function := Make_Arg'Access;
-                               Cop : Copyarg_Function := Copy_Arg'Access;
-                               Fre : Freearg_Function := Free_Arg'Access)
-     return Aux.Eti_Error;
+   function Set_Fieldtype_Arg (Cft : C_Field_Type;
+                               Mak : Makearg_Function := Make_Arg'Access;
+                               Cop : Copyarg_Function := Copy_Arg'Access;
+                               Fre : Freearg_Function := Free_Arg'Access)
+     return Aux.Eti_Error;
    pragma Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
 
-   function Set_Fieldtype_Choice (Cft : C_Field_Type;
-                                  Next, Prev : Choice_Function)
-     return Aux.Eti_Error;
+   function Set_Fieldtype_Choice (Cft : C_Field_Type;
+                                  Next, Prev : Choice_Function)
+     return Aux.Eti_Error;
    pragma Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");
 
-end Terminal_Interface.Curses.Forms.Field_Types;
-
+end Terminal_Interface.Curses.Forms.Field_Types; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm index 3b07add0..a0c5a41a 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_user_data__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_user_data.adb + + +terminal_interface-curses-forms-field_user_data.adb - - -

File : terminal_interface-curses-forms-field_user_data.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Forms.Field_User_Data            --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1999-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.17 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use  Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-field_user_data.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Forms.Field_User_Data            --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1999-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.17 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use  Terminal_Interface.Curses.Aux;
 
---  |
---  |=====================================================================
---  | man page form_field_userptr.3x
---  |=====================================================================
---  |
-package body Terminal_Interface.Curses.Forms.Field_User_Data is
-   --  |
-   --  |
-   --  |
-   procedure Set_User_Data (Fld  : Field;
-                            Data : User_Access)
+--  |
+--  |=====================================================================
+--  | man page form_field_userptr.3x
+--  |=====================================================================
+--  |
+package body Terminal_Interface.Curses.Forms.Field_User_Data is
+   --  |
+   --  |
+   --  |
+   procedure Set_User_Data (Fld  : Field;
+                            Data : User_Access)
    is
-      function Set_Field_Userptr (Fld : Field;
-                                  Usr : User_Access) return Eti_Error;
+      function Set_Field_Userptr (Fld : Field;
+                                  Usr : User_Access) return Eti_Error;
       pragma Import (C, Set_Field_Userptr, "set_field_userptr");
 
    begin
-      Eti_Exception (Set_Field_Userptr (Fld, Data));
-   end Set_User_Data;
-   --  |
-   --  |
-   --  |
-   function Get_User_Data (Fld  : Field) return User_Access
+      Eti_Exception (Set_Field_Userptr (Fld, Data));
+   end Set_User_Data;
+   --  |
+   --  |
+   --  |
+   function Get_User_Data (Fld  : Field) return User_Access
    is
-      function Field_Userptr (Fld : Field) return User_Access;
+      function Field_Userptr (Fld : Field) return User_Access;
       pragma Import (C, Field_Userptr, "field_userptr");
    begin
-      return Field_Userptr (Fld);
-   end Get_User_Data;
+      return Field_Userptr (Fld);
+   end Get_User_Data;
 
-   procedure Get_User_Data (Fld  : Field;
-                            Data : out User_Access)
+   procedure Get_User_Data (Fld  : Field;
+                            Data : out User_Access)
    is
    begin
-      Data := Get_User_Data (Fld);
-   end Get_User_Data;
+      Data := Get_User_Data (Fld);
+   end Get_User_Data;
 
-end Terminal_Interface.Curses.Forms.Field_User_Data;
-
+end Terminal_Interface.Curses.Forms.Field_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm index 7321fc4a..d1a467cc 100644 --- a/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-field_user_data__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-field_user_data.ads + + +terminal_interface-curses-forms-field_user_data.ads - - -

File : terminal_interface-curses-forms-field_user_data.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Forms.Field_User_Data            --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.17 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms-field_user_data.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Forms.Field_User_Data            --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.17 @
+--  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 (Terminal_Interface.Curses.Forms.Field_User_Data);
+   type User is limited private;
+   type User_Access is access User;
+package Terminal_Interface.Curses.Forms.Field_User_Data is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_User_Data);
 
-   --  |=====================================================================
-   --  | Man page form_field_userptr.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page form_field_userptr.3x
+   --  |=====================================================================
 
-   --  |
-   procedure Set_User_Data (Fld  : Field;
-                            Data : User_Access);
-   --  AKA: set_field_userptr
-   pragma Inline (Set_User_Data);
+   --  |
+   procedure Set_User_Data (Fld  : Field;
+                            Data : User_Access);
+   --  AKA: set_field_userptr
+   pragma Inline (Set_User_Data);
 
-   --  |
-   procedure Get_User_Data (Fld  : Field;
-                            Data : out User_Access);
-   --  AKA: field_userptr
+   --  |
+   procedure Get_User_Data (Fld  : Field;
+                            Data : out User_Access);
+   --  AKA: field_userptr
 
-   --  |
-   function Get_User_Data (Fld  : Field) return User_Access;
-   --  AKA: field_userptr
-   --  Sama as function
+   --  |
+   function Get_User_Data (Fld  : Field) return User_Access;
+   --  AKA: field_userptr
+   --  Sama as function
    pragma Inline (Get_User_Data);
 
-end Terminal_Interface.Curses.Forms.Field_User_Data;
-
+end Terminal_Interface.Curses.Forms.Field_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm index 5a885ffb..fbb0b5c7 100644 --- a/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms-form_user_data__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-form_user_data.adb + + +terminal_interface-curses-forms-form_user_data.adb - - -

File : terminal_interface-curses-forms-form_user_data.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                Terminal_Interface.Curses.Forms.Form_User_Data            --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1999-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.17 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
---  |
---  |=====================================================================
---  | man page form__userptr.3x
---  |=====================================================================
---  |
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-forms-form_user_data.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                Terminal_Interface.Curses.Forms.Form_User_Data            --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1999-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.17 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+--  |
+--  |=====================================================================
+--  | man page form__userptr.3x
+--  |=====================================================================
+--  |
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms.Form_User_Data is
+package body Terminal_Interface.Curses.Forms.Form_User_Data is
 
-   --  |
-   --  |
-   --  |
-   procedure Set_User_Data (Frm  : Form;
-                            Data : User_Access)
+   --  |
+   --  |
+   --  |
+   procedure Set_User_Data (Frm  : Form;
+                            Data : User_Access)
    is
-      function Set_Form_Userptr (Frm  : Form;
-                                 Data : User_Access)  return Eti_Error;
+      function Set_Form_Userptr (Frm  : Form;
+                                 Data : User_Access)  return Eti_Error;
       pragma Import (C, Set_Form_Userptr, "set_form_userptr");
 
    begin
-      Eti_Exception (Set_Form_Userptr (Frm, Data));
-   end Set_User_Data;
-   --  |
-   --  |
-   --  |
-   function Get_User_Data (Frm  : Form) return User_Access
+      Eti_Exception (Set_Form_Userptr (Frm, Data));
+   end Set_User_Data;
+   --  |
+   --  |
+   --  |
+   function Get_User_Data (Frm  : Form) return User_Access
    is
-      function Form_Userptr (Frm : Form) return User_Access;
+      function Form_Userptr (Frm : Form) return User_Access;
       pragma Import (C, Form_Userptr, "form_userptr");
    begin
-      return Form_Userptr (Frm);
-   end Get_User_Data;
+      return Form_Userptr (Frm);
+   end Get_User_Data;
 
-   procedure Get_User_Data (Frm  : Form;
-                            Data : out User_Access)
+   procedure Get_User_Data (Frm  : Form;
+                            Data : out User_Access)
    is
    begin
-      Data := Get_User_Data (Frm);
-   end Get_User_Data;
+      Data := Get_User_Data (Frm);
+   end Get_User_Data;
 
-end Terminal_Interface.Curses.Forms.Form_User_Data;
-
+end Terminal_Interface.Curses.Forms.Form_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm index 915dd0ac..c6baf65b 100644 --- a/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms-form_user_data__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms-form_user_data.ads + + +terminal_interface-curses-forms-form_user_data.ads - - -

File : terminal_interface-curses-forms-form_user_data.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                Terminal_Interface.Curses.Forms.Form_User_Data            --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.16 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms-form_user_data.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                Terminal_Interface.Curses.Forms.Form_User_Data            --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.16 @
+--  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 (Terminal_Interface.Curses.Forms.Form_User_Data);
+   type User is limited private;
+   type User_Access is access User;
+package Terminal_Interface.Curses.Forms.Form_User_Data is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms.Form_User_Data);
 
-   --  |=====================================================================
-   --  | Man page form_userptr.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page form_userptr.3x
+   --  |=====================================================================
 
-   --  |
-   procedure Set_User_Data (Frm  : Form;
-                            Data : User_Access);
-   --  AKA: set_form_userptr
-   pragma Inline (Set_User_Data);
+   --  |
+   procedure Set_User_Data (Frm  : Form;
+                            Data : User_Access);
+   --  AKA: set_form_userptr
+   pragma Inline (Set_User_Data);
 
-   --  |
-   procedure Get_User_Data (Frm  : Form;
-                            Data : out User_Access);
-   --  AKA: form_userptr
+   --  |
+   procedure Get_User_Data (Frm  : Form;
+                            Data : out User_Access);
+   --  AKA: form_userptr
 
-   --  |
-   function Get_User_Data (Frm  : Form) return User_Access;
-   --  AKA: form_userptr
-   --  Same as function
+   --  |
+   function Get_User_Data (Frm  : Form) return User_Access;
+   --  AKA: form_userptr
+   --  Same as function
    pragma Inline (Get_User_Data);
 
-end Terminal_Interface.Curses.Forms.Form_User_Data;
-
+end Terminal_Interface.Curses.Forms.Form_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-forms__adb.htm b/doc/html/ada/terminal_interface-curses-forms__adb.htm index 7820c331..3f22b40d 100644 --- a/doc/html/ada/terminal_interface-curses-forms__adb.htm +++ b/doc/html/ada/terminal_interface-curses-forms__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms.adb + + +terminal_interface-curses-forms.adb - - -

File : terminal_interface-curses-forms.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Forms                     --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.33 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Forms                     --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.33 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
 
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Interfaces.C.Pointers;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Interfaces.C.Pointers;
 
-with Terminal_Interface.Curses.Aux;
+with Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Forms is
+package body Terminal_Interface.Curses.Forms is
 
-   use Terminal_Interface.Curses.Aux;
+   use Terminal_Interface.Curses.Aux;
 
-   type C_Field_Array is array (Natural range <>) of aliased Field;
+   type C_Field_Array is array (Natural range <>) of aliased Field;
    package F_Array is new
-     Interfaces.C.Pointers (Natural, Field, C_Field_Array, Null_Field);
+     Interfaces.C.Pointers (Natural, Field, C_Field_Array, Null_Field);
 
-------------------------------------------------------------------------------
-   --  |
-   --  |
-   --  |
-   --  subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
+------------------------------------------------------------------------------
+   --  |
+   --  |
+   --  |
+   --  subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
 
-   procedure Request_Name (Key  : Form_Request_Code;
-                                Name : out String)
+   procedure Request_Name (Key  : Form_Request_Code;
+                                Name : out String)
    is
-      function Form_Request_Name (Key : C_Int) return chars_ptr;
+      function Form_Request_Name (Key : C_Int) return chars_ptr;
       pragma Import (C, Form_Request_Name, "form_request_name");
    begin
-      Fill_String (Form_Request_Name (C_Int (Key)), Name);
-   end Request_Name;
+      Fill_String (Form_Request_Name (C_Int (Key)), Name);
+   end Request_Name;
 
-   function Request_Name (Key : Form_Request_Code) return String
+   function Request_Name (Key : Form_Request_Code) return String
    is
-      function Form_Request_Name (Key : C_Int) return chars_ptr;
+      function Form_Request_Name (Key : C_Int) return chars_ptr;
       pragma Import (C, Form_Request_Name, "form_request_name");
    begin
-      return Fill_String (Form_Request_Name (C_Int (Key)));
-   end Request_Name;
-------------------------------------------------------------------------------
-   --  |
-   --  |
-   --  |
-   --  |
-   --  |=====================================================================
-   --  | man page form_field_new.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   function Create (Height       : Line_Count;
-                    Width        : Column_Count;
-                    Top          : Line_Position;
-                    Left         : Column_Position;
-                    Off_Screen   : Natural := 0;
-                    More_Buffers : Buffer_Number := Buffer_Number'First)
-                    return Field
+      return Fill_String (Form_Request_Name (C_Int (Key)));
+   end Request_Name;
+------------------------------------------------------------------------------
+   --  |
+   --  |
+   --  |
+   --  |
+   --  |=====================================================================
+   --  | man page form_field_new.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   function Create (Height       : Line_Count;
+                    Width        : Column_Count;
+                    Top          : Line_Position;
+                    Left         : Column_Position;
+                    Off_Screen   : Natural := 0;
+                    More_Buffers : Buffer_Number := Buffer_Number'First)
+                    return Field
    is
-      function Newfield (H, W, T, L, O, M : C_Int) return Field;
+      function Newfield (H, W, T, L, O, M : C_Int) return Field;
       pragma Import (C, Newfield, "new_field");
-      Fld : constant Field := Newfield (C_Int (Height), C_Int (Width),
-                                        C_Int (Top), C_Int (Left),
-                                        C_Int (Off_Screen),
-                                        C_Int (More_Buffers));
+      Fld : constant Field := Newfield (C_Int (Height), C_Int (Width),
+                                        C_Int (Top), C_Int (Left),
+                                        C_Int (Off_Screen),
+                                        C_Int (More_Buffers));
    begin
-      if Fld = Null_Field then
-         raise Form_Exception;
+      if Fld = Null_Field then
+         raise Form_Exception;
       end if;
-      return Fld;
-   end Create;
---  |
---  |
---  |
-   procedure Delete (Fld : in out Field)
+      return Fld;
+   end Create;
+--  |
+--  |
+--  |
+   procedure Delete (Fld : in out Field)
    is
-      function Free_Field (Fld : Field) return Eti_Error;
+      function Free_Field (Fld : Field) return Eti_Error;
       pragma Import (C, Free_Field, "free_field");
 
    begin
-      Eti_Exception (Free_Field (Fld));
-      Fld := Null_Field;
-   end Delete;
-   --  |
-   --  |
-   --  |
-   function Duplicate (Fld  : Field;
-                       Top  : Line_Position;
-                       Left : Column_Position) return Field
+      Eti_Exception (Free_Field (Fld));
+      Fld := Null_Field;
+   end Delete;
+   --  |
+   --  |
+   --  |
+   function Duplicate (Fld  : Field;
+                       Top  : Line_Position;
+                       Left : Column_Position) return Field
    is
-      function Dup_Field (Fld  : Field;
-                          Top  : C_Int;
-                          Left : C_Int) return Field;
+      function Dup_Field (Fld  : Field;
+                          Top  : C_Int;
+                          Left : C_Int) return Field;
       pragma Import (C, Dup_Field, "dup_field");
 
-      F : constant Field := Dup_Field (Fld,
-                                       C_Int (Top),
-                                       C_Int (Left));
+      F : constant Field := Dup_Field (Fld,
+                                       C_Int (Top),
+                                       C_Int (Left));
    begin
-      if F = Null_Field then
-         raise Form_Exception;
+      if F = Null_Field then
+         raise Form_Exception;
       end if;
-      return F;
-   end Duplicate;
-   --  |
-   --  |
-   --  |
-   function Link (Fld  : Field;
-                  Top  : Line_Position;
-                  Left : Column_Position) return Field
+      return F;
+   end Duplicate;
+   --  |
+   --  |
+   --  |
+   function Link (Fld  : Field;
+                  Top  : Line_Position;
+                  Left : Column_Position) return Field
    is
-      function Lnk_Field (Fld  : Field;
-                          Top  : C_Int;
-                          Left : C_Int) return Field;
+      function Lnk_Field (Fld  : Field;
+                          Top  : C_Int;
+                          Left : C_Int) return Field;
       pragma Import (C, Lnk_Field, "link_field");
 
-      F : constant Field := Lnk_Field (Fld,
-                                       C_Int (Top),
-                                       C_Int (Left));
+      F : constant Field := Lnk_Field (Fld,
+                                       C_Int (Top),
+                                       C_Int (Left));
    begin
-      if F = Null_Field then
-         raise Form_Exception;
+      if F = Null_Field then
+         raise Form_Exception;
       end if;
-      return F;
-   end Link;
-   --  |
-   --  |=====================================================================
-   --  | man page form_field_just.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Justification (Fld  : Field;
-                                Just : Field_Justification := None)
+      return F;
+   end Link;
+   --  |
+   --  |=====================================================================
+   --  | man page form_field_just.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Justification (Fld  : Field;
+                                Just : Field_Justification := None)
    is
-      function Set_Field_Just (Fld  : Field;
-                               Just : C_Int) return Eti_Error;
+      function Set_Field_Just (Fld  : Field;
+                               Just : C_Int) return Eti_Error;
       pragma Import (C, Set_Field_Just, "set_field_just");
 
    begin
-      Eti_Exception (Set_Field_Just (Fld,
-                                     C_Int (Field_Justification'Pos (Just))));
-   end Set_Justification;
-   --  |
-   --  |
-   --  |
-   function Get_Justification (Fld : Field) return Field_Justification
+      Eti_Exception (Set_Field_Just (Fld,
+                                     C_Int (Field_Justification'Pos (Just))));
+   end Set_Justification;
+   --  |
+   --  |
+   --  |
+   function Get_Justification (Fld : Field) return Field_Justification
    is
-      function Field_Just (Fld : Field) return C_Int;
+      function Field_Just (Fld : Field) return C_Int;
       pragma Import (C, Field_Just, "field_just");
    begin
-      return Field_Justification'Val (Field_Just (Fld));
-   end Get_Justification;
-   --  |
-   --  |=====================================================================
-   --  | man page form_field_buffer.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Buffer
-     (Fld    : Field;
-      Buffer : Buffer_Number := Buffer_Number'First;
-      Str    : String)
+      return Field_Justification'Val (Field_Just (Fld));
+   end Get_Justification;
+   --  |
+   --  |=====================================================================
+   --  | man page form_field_buffer.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Buffer
+     (Fld    : Field;
+      Buffer : Buffer_Number := Buffer_Number'First;
+      Str    : String)
    is
-      function Set_Fld_Buffer (Fld    : Field;
-                                 Bufnum : C_Int;
-                                 S      : char_array)
-        return Eti_Error;
+      function Set_Fld_Buffer (Fld    : Field;
+                                 Bufnum : C_Int;
+                                 S      : char_array)
+        return Eti_Error;
       pragma Import (C, Set_Fld_Buffer, "set_field_buffer");
 
    begin
-      Eti_Exception (Set_Fld_Buffer (Fld, C_Int (Buffer), To_C (Str)));
-   end Set_Buffer;
-   --  |
-   --  |
-   --  |
-   procedure Get_Buffer
-     (Fld    : Field;
-      Buffer : Buffer_Number := Buffer_Number'First;
-      Str    : out String)
+      Eti_Exception (Set_Fld_Buffer (Fld, C_Int (Buffer), To_C (Str)));
+   end Set_Buffer;
+   --  |
+   --  |
+   --  |
+   procedure Get_Buffer
+     (Fld    : Field;
+      Buffer : Buffer_Number := Buffer_Number'First;
+      Str    : out String)
    is
-      function Field_Buffer (Fld : Field;
-                             B   : C_Int) return chars_ptr;
+      function Field_Buffer (Fld : Field;
+                             B   : C_Int) return chars_ptr;
       pragma Import (C, Field_Buffer, "field_buffer");
    begin
-      Fill_String (Field_Buffer (Fld, C_Int (Buffer)), Str);
-   end Get_Buffer;
+      Fill_String (Field_Buffer (Fld, C_Int (Buffer)), Str);
+   end Get_Buffer;
 
-   function Get_Buffer
-     (Fld    : Field;
-      Buffer : Buffer_Number := Buffer_Number'First) return String
+   function Get_Buffer
+     (Fld    : Field;
+      Buffer : Buffer_Number := Buffer_Number'First) return String
    is
-      function Field_Buffer (Fld : Field;
-                             B   : C_Int) return chars_ptr;
+      function Field_Buffer (Fld : Field;
+                             B   : C_Int) return chars_ptr;
       pragma Import (C, Field_Buffer, "field_buffer");
    begin
-      return Fill_String (Field_Buffer (Fld, C_Int (Buffer)));
-   end Get_Buffer;
-   --  |
-   --  |
-   --  |
-   procedure Set_Status (Fld    : Field;
-                         Status : Boolean := True)
+      return Fill_String (Field_Buffer (Fld, C_Int (Buffer)));
+   end Get_Buffer;
+   --  |
+   --  |
+   --  |
+   procedure Set_Status (Fld    : Field;
+                         Status : Boolean := True)
    is
-      function Set_Fld_Status (Fld : Field;
-                               St  : C_Int) return Eti_Error;
+      function Set_Fld_Status (Fld : Field;
+                               St  : C_Int) return Eti_Error;
       pragma Import (C, Set_Fld_Status, "set_field_status");
 
    begin
-      if Set_Fld_Status (Fld, Boolean'Pos (Status)) /= E_Ok then
-         raise Form_Exception;
+      if Set_Fld_Status (Fld, Boolean'Pos (Status)) /= E_Ok then
+         raise Form_Exception;
       end if;
-   end Set_Status;
-   --  |
-   --  |
-   --  |
-   function Changed (Fld : Field) return Boolean
+   end Set_Status;
+   --  |
+   --  |
+   --  |
+   function Changed (Fld : Field) return Boolean
    is
-      function Field_Status (Fld : Field) return C_Int;
+      function Field_Status (Fld : Field) return C_Int;
       pragma Import (C, Field_Status, "field_status");
 
-      Res : constant C_Int := Field_Status (Fld);
+      Res : constant C_Int := Field_Status (Fld);
    begin
-      if Res = Curses_False then
+      if Res = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Changed;
-   --  |
-   --  |
-   --  |
-   procedure Set_Maximum_Size (Fld : Field;
-                               Max : Natural := 0)
+   end Changed;
+   --  |
+   --  |
+   --  |
+   procedure Set_Maximum_Size (Fld : Field;
+                               Max : Natural := 0)
    is
-      function Set_Field_Max (Fld : Field;
-                              M   : C_Int) return Eti_Error;
+      function Set_Field_Max (Fld : Field;
+                              M   : C_Int) return Eti_Error;
       pragma Import (C, Set_Field_Max, "set_max_field");
 
    begin
-      Eti_Exception (Set_Field_Max (Fld, C_Int (Max)));
-   end Set_Maximum_Size;
-   --  |
-   --  |=====================================================================
-   --  | man page form_field_opts.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Options (Fld     : Field;
-                          Options : Field_Option_Set)
+      Eti_Exception (Set_Field_Max (Fld, C_Int (Max)));
+   end Set_Maximum_Size;
+   --  |
+   --  |=====================================================================
+   --  | man page form_field_opts.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Options (Fld     : Field;
+                          Options : Field_Option_Set)
    is
-      function Set_Field_Opts (Fld : Field;
-                               Opt : Field_Option_Set) return Eti_Error;
+      function Set_Field_Opts (Fld : Field;
+                               Opt : Field_Option_Set) return Eti_Error;
       pragma Import (C, Set_Field_Opts, "set_field_opts");
 
    begin
-      Eti_Exception (Set_Field_Opts (Fld, Options));
-   end Set_Options;
-   --  |
-   --  |
-   --  |
-   procedure Switch_Options (Fld     : Field;
-                             Options : Field_Option_Set;
-                             On      : Boolean := True)
+      Eti_Exception (Set_Field_Opts (Fld, Options));
+   end Set_Options;
+   --  |
+   --  |
+   --  |
+   procedure Switch_Options (Fld     : Field;
+                             Options : Field_Option_Set;
+                             On      : Boolean := True)
    is
-      function Field_Opts_On (Fld : Field;
-                              Opt : Field_Option_Set) return Eti_Error;
+      function Field_Opts_On (Fld : Field;
+                              Opt : Field_Option_Set) return Eti_Error;
       pragma Import (C, Field_Opts_On, "field_opts_on");
-      function Field_Opts_Off (Fld : Field;
-                               Opt : Field_Option_Set) return Eti_Error;
+      function Field_Opts_Off (Fld : Field;
+                               Opt : Field_Option_Set) return Eti_Error;
       pragma Import (C, Field_Opts_Off, "field_opts_off");
 
    begin
-      if On then
-         Eti_Exception (Field_Opts_On (Fld, Options));
+      if On then
+         Eti_Exception (Field_Opts_On (Fld, Options));
       else
-         Eti_Exception (Field_Opts_Off (Fld, Options));
+         Eti_Exception (Field_Opts_Off (Fld, Options));
       end if;
-   end Switch_Options;
-   --  |
-   --  |
-   --  |
-   procedure Get_Options (Fld     : Field;
-                          Options : out Field_Option_Set)
+   end Switch_Options;
+   --  |
+   --  |
+   --  |
+   procedure Get_Options (Fld     : Field;
+                          Options : out Field_Option_Set)
    is
-      function Field_Opts (Fld : Field) return Field_Option_Set;
+      function Field_Opts (Fld : Field) return Field_Option_Set;
       pragma Import (C, Field_Opts, "field_opts");
 
    begin
-      Options := Field_Opts (Fld);
-   end Get_Options;
-   --  |
-   --  |
-   --  |
-   function Get_Options (Fld : Field := Null_Field)
-                         return Field_Option_Set
+      Options := Field_Opts (Fld);
+   end Get_Options;
+   --  |
+   --  |
+   --  |
+   function Get_Options (Fld : Field := Null_Field)
+                         return Field_Option_Set
    is
-      Fos : Field_Option_Set;
+      Fos : Field_Option_Set;
    begin
-      Get_Options (Fld, Fos);
-      return Fos;
-   end Get_Options;
-   --  |
-   --  |=====================================================================
-   --  | man page form_field_attributes.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Foreground
-     (Fld   : Field;
-      Fore  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First)
+      Get_Options (Fld, Fos);
+      return Fos;
+   end Get_Options;
+   --  |
+   --  |=====================================================================
+   --  | man page form_field_attributes.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Foreground
+     (Fld   : Field;
+      Fore  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First)
    is
-      function Set_Field_Fore (Fld  : Field;
-                               Attr : Attributed_Character) return Eti_Error;
+      function Set_Field_Fore (Fld  : Field;
+                               Attr : Attributed_Character) return Eti_Error;
       pragma Import (C, Set_Field_Fore, "set_field_fore");
 
    begin
-      Eti_Exception (Set_Field_Fore (Fld, (Ch    => Character'First,
-                                           Color => Color,
-                                           Attr  => Fore)));
-   end Set_Foreground;
-   --  |
-   --  |
-   --  |
-   procedure Foreground (Fld  : Field;
-                         Fore : out Character_Attribute_Set)
+      Eti_Exception (Set_Field_Fore (Fld, (Ch    => Character'First,
+                                           Color => Color,
+                                           Attr  => Fore)));
+   end Set_Foreground;
+   --  |
+   --  |
+   --  |
+   procedure Foreground (Fld  : Field;
+                         Fore : out Character_Attribute_Set)
    is
-      function Field_Fore (Fld : Field) return Attributed_Character;
+      function Field_Fore (Fld : Field) return Attributed_Character;
       pragma Import (C, Field_Fore, "field_fore");
    begin
-      Fore := Field_Fore (Fld).Attr;
-   end Foreground;
+      Fore := Field_Fore (Fld).Attr;
+   end Foreground;
 
-   procedure Foreground (Fld   : Field;
-                         Fore  : out Character_Attribute_Set;
-                         Color : out Color_Pair)
+   procedure Foreground (Fld   : Field;
+                         Fore  : out Character_Attribute_Set;
+                         Color : out Color_Pair)
    is
-      function Field_Fore (Fld : Field) return Attributed_Character;
+      function Field_Fore (Fld : Field) return Attributed_Character;
       pragma Import (C, Field_Fore, "field_fore");
    begin
-      Fore  := Field_Fore (Fld).Attr;
-      Color := Field_Fore (Fld).Color;
-   end Foreground;
-   --  |
-   --  |
-   --  |
-   procedure Set_Background
-     (Fld   : Field;
-      Back  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First)
+      Fore  := Field_Fore (Fld).Attr;
+      Color := Field_Fore (Fld).Color;
+   end Foreground;
+   --  |
+   --  |
+   --  |
+   procedure Set_Background
+     (Fld   : Field;
+      Back  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First)
    is
-      function Set_Field_Back (Fld  : Field;
-                               Attr : Attributed_Character) return Eti_Error;
+      function Set_Field_Back (Fld  : Field;
+                               Attr : Attributed_Character) return Eti_Error;
       pragma Import (C, Set_Field_Back, "set_field_back");
 
    begin
-      Eti_Exception (Set_Field_Back (Fld, (Ch    => Character'First,
-                                           Color => Color,
-                                           Attr  => Back)));
-   end Set_Background;
-   --  |
-   --  |
-   --  |
-   procedure Background (Fld  : Field;
-                         Back : out Character_Attribute_Set)
+      Eti_Exception (Set_Field_Back (Fld, (Ch    => Character'First,
+                                           Color => Color,
+                                           Attr  => Back)));
+   end Set_Background;
+   --  |
+   --  |
+   --  |
+   procedure Background (Fld  : Field;
+                         Back : out Character_Attribute_Set)
    is
-      function Field_Back (Fld : Field) return Attributed_Character;
+      function Field_Back (Fld : Field) return Attributed_Character;
       pragma Import (C, Field_Back, "field_back");
    begin
-      Back := Field_Back (Fld).Attr;
-   end Background;
+      Back := Field_Back (Fld).Attr;
+   end Background;
 
-   procedure Background (Fld   : Field;
-                         Back  : out Character_Attribute_Set;
-                         Color : out Color_Pair)
+   procedure Background (Fld   : Field;
+                         Back  : out Character_Attribute_Set;
+                         Color : out Color_Pair)
    is
-      function Field_Back (Fld : Field) return Attributed_Character;
+      function Field_Back (Fld : Field) return Attributed_Character;
       pragma Import (C, Field_Back, "field_back");
    begin
-      Back  := Field_Back (Fld).Attr;
-      Color := Field_Back (Fld).Color;
-   end Background;
-   --  |
-   --  |
-   --  |
-   procedure Set_Pad_Character (Fld : Field;
-                                Pad : Character := Space)
+      Back  := Field_Back (Fld).Attr;
+      Color := Field_Back (Fld).Color;
+   end Background;
+   --  |
+   --  |
+   --  |
+   procedure Set_Pad_Character (Fld : Field;
+                                Pad : Character := Space)
    is
-      function Set_Field_Pad (Fld : Field;
-                              Ch  : C_Int) return Eti_Error;
+      function Set_Field_Pad (Fld : Field;
+                              Ch  : C_Int) return Eti_Error;
       pragma Import (C, Set_Field_Pad, "set_field_pad");
 
    begin
-      Eti_Exception (Set_Field_Pad (Fld,
-                                    C_Int (Character'Pos (Pad))));
-   end Set_Pad_Character;
-   --  |
-   --  |
-   --  |
-   procedure Pad_Character (Fld : Field;
-                            Pad : out Character)
+      Eti_Exception (Set_Field_Pad (Fld,
+                                    C_Int (Character'Pos (Pad))));
+   end Set_Pad_Character;
+   --  |
+   --  |
+   --  |
+   procedure Pad_Character (Fld : Field;
+                            Pad : out Character)
    is
-      function Field_Pad (Fld : Field) return C_Int;
+      function Field_Pad (Fld : Field) return C_Int;
       pragma Import (C, Field_Pad, "field_pad");
    begin
-      Pad := Character'Val (Field_Pad (Fld));
-   end Pad_Character;
-   --  |
-   --  |=====================================================================
-   --  | man page form_field_info.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Info (Fld                : Field;
-                   Lines              : out Line_Count;
-                   Columns            : out Column_Count;
-                   First_Row          : out Line_Position;
-                   First_Column       : out Column_Position;
-                   Off_Screen         : out Natural;
-                   Additional_Buffers : out Buffer_Number)
+      Pad := Character'Val (Field_Pad (Fld));
+   end Pad_Character;
+   --  |
+   --  |=====================================================================
+   --  | man page form_field_info.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Info (Fld                : Field;
+                   Lines              : out Line_Count;
+                   Columns            : out Column_Count;
+                   First_Row          : out Line_Position;
+                   First_Column       : out Column_Position;
+                   Off_Screen         : out Natural;
+                   Additional_Buffers : out Buffer_Number)
    is
-      type C_Int_Access is access all C_Int;
-      function Fld_Info (Fld : Field;
-                         L, C, Fr, Fc, Os, Ab : C_Int_Access)
-                         return Eti_Error;
+      type C_Int_Access is access all C_Int;
+      function Fld_Info (Fld : Field;
+                         L, C, Fr, Fc, Os, Ab : C_Int_Access)
+                         return Eti_Error;
       pragma Import (C, Fld_Info, "field_info");
 
-      L, C, Fr, Fc, Os, Ab : aliased C_Int;
+      L, C, Fr, Fc, Os, Ab : aliased C_Int;
    begin
-      Eti_Exception (Fld_Info (Fld,
-                               L'Access, C'Access,
-                               Fr'Access, Fc'Access,
-                               Os'Access, Ab'Access));
-      Lines              := Line_Count (L);
-      Columns            := Column_Count (C);
-      First_Row          := Line_Position (Fr);
-      First_Column       := Column_Position (Fc);
-      Off_Screen         := Natural (Os);
-      Additional_Buffers := Buffer_Number (Ab);
-   end Info;
---  |
---  |
---  |
-   procedure Dynamic_Info (Fld     : Field;
-                           Lines   : out Line_Count;
-                           Columns : out Column_Count;
-                           Max     : out Natural)
+      Eti_Exception (Fld_Info (Fld,
+                               L'Access, C'Access,
+                               Fr'Access, Fc'Access,
+                               Os'Access, Ab'Access));
+      Lines              := Line_Count (L);
+      Columns            := Column_Count (C);
+      First_Row          := Line_Position (Fr);
+      First_Column       := Column_Position (Fc);
+      Off_Screen         := Natural (Os);
+      Additional_Buffers := Buffer_Number (Ab);
+   end Info;
+--  |
+--  |
+--  |
+   procedure Dynamic_Info (Fld     : Field;
+                           Lines   : out Line_Count;
+                           Columns : out Column_Count;
+                           Max     : out Natural)
    is
-      type C_Int_Access is access all C_Int;
-      function Dyn_Info (Fld : Field; L, C, M : C_Int_Access) return Eti_Error;
+      type C_Int_Access is access all C_Int;
+      function Dyn_Info (Fld : Field; L, C, M : C_Int_Access) return Eti_Error;
       pragma Import (C, Dyn_Info, "dynamic_field_info");
 
-      L, C, M : aliased C_Int;
+      L, C, M : aliased C_Int;
    begin
-      Eti_Exception (Dyn_Info (Fld,
-                               L'Access, C'Access,
-                               M'Access));
-      Lines   := Line_Count (L);
-      Columns := Column_Count (C);
-      Max     := Natural (M);
-   end Dynamic_Info;
-   --  |
-   --  |=====================================================================
-   --  | man page form_win.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Window (Frm : Form;
-                         Win : Window)
+      Eti_Exception (Dyn_Info (Fld,
+                               L'Access, C'Access,
+                               M'Access));
+      Lines   := Line_Count (L);
+      Columns := Column_Count (C);
+      Max     := Natural (M);
+   end Dynamic_Info;
+   --  |
+   --  |=====================================================================
+   --  | man page form_win.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Window (Frm : Form;
+                         Win : Window)
    is
-      function Set_Form_Win (Frm : Form;
-                             Win : Window) return Eti_Error;
+      function Set_Form_Win (Frm : Form;
+                             Win : Window) return Eti_Error;
       pragma Import (C, Set_Form_Win, "set_form_win");
 
    begin
-      Eti_Exception (Set_Form_Win (Frm, Win));
-   end Set_Window;
-   --  |
-   --  |
-   --  |
-   function Get_Window (Frm : Form) return Window
+      Eti_Exception (Set_Form_Win (Frm, Win));
+   end Set_Window;
+   --  |
+   --  |
+   --  |
+   function Get_Window (Frm : Form) return Window
    is
-      function Form_Win (Frm : Form) return Window;
+      function Form_Win (Frm : Form) return Window;
       pragma Import (C, Form_Win, "form_win");
 
-      W : constant Window := Form_Win (Frm);
+      W : constant Window := Form_Win (Frm);
    begin
-      return W;
-   end Get_Window;
-   --  |
-   --  |
-   --  |
-   procedure Set_Sub_Window (Frm : Form;
-                             Win : Window)
+      return W;
+   end Get_Window;
+   --  |
+   --  |
+   --  |
+   procedure Set_Sub_Window (Frm : Form;
+                             Win : Window)
    is
-      function Set_Form_Sub (Frm : Form;
-                             Win : Window) return Eti_Error;
+      function Set_Form_Sub (Frm : Form;
+                             Win : Window) return Eti_Error;
       pragma Import (C, Set_Form_Sub, "set_form_sub");
 
    begin
-      Eti_Exception (Set_Form_Sub (Frm, Win));
-   end Set_Sub_Window;
-   --  |
-   --  |
-   --  |
-   function Get_Sub_Window (Frm : Form) return Window
+      Eti_Exception (Set_Form_Sub (Frm, Win));
+   end Set_Sub_Window;
+   --  |
+   --  |
+   --  |
+   function Get_Sub_Window (Frm : Form) return Window
    is
-      function Form_Sub (Frm : Form) return Window;
+      function Form_Sub (Frm : Form) return Window;
       pragma Import (C, Form_Sub, "form_sub");
 
-      W : constant Window := Form_Sub (Frm);
+      W : constant Window := Form_Sub (Frm);
    begin
-      return W;
-   end Get_Sub_Window;
-   --  |
-   --  |
-   --  |
-   procedure Scale (Frm     : Form;
-                    Lines   : out Line_Count;
-                    Columns : out Column_Count)
+      return W;
+   end Get_Sub_Window;
+   --  |
+   --  |
+   --  |
+   procedure Scale (Frm     : Form;
+                    Lines   : out Line_Count;
+                    Columns : out Column_Count)
    is
-      type C_Int_Access is access all C_Int;
-      function M_Scale (Frm : Form; Yp, Xp : C_Int_Access) return Eti_Error;
+      type C_Int_Access is access all C_Int;
+      function M_Scale (Frm : Form; Yp, Xp : C_Int_Access) return Eti_Error;
       pragma Import (C, M_Scale, "scale_form");
 
-      X, Y : aliased C_Int;
+      X, Y : aliased C_Int;
    begin
-      Eti_Exception (M_Scale (Frm, Y'Access, X'Access));
-      Lines   := Line_Count (Y);
-      Columns := Column_Count (X);
-   end Scale;
-   --  |
-   --  |=====================================================================
-   --  | man page menu_hook.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Field_Init_Hook (Frm  : Form;
-                                  Proc : Form_Hook_Function)
+      Eti_Exception (M_Scale (Frm, Y'Access, X'Access));
+      Lines   := Line_Count (Y);
+      Columns := Column_Count (X);
+   end Scale;
+   --  |
+   --  |=====================================================================
+   --  | man page menu_hook.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Field_Init_Hook (Frm  : Form;
+                                  Proc : Form_Hook_Function)
    is
-      function Set_Field_Init (Frm  : Form;
-                               Proc : Form_Hook_Function) return Eti_Error;
+      function Set_Field_Init (Frm  : Form;
+                               Proc : Form_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Field_Init, "set_field_init");
 
    begin
-      Eti_Exception (Set_Field_Init (Frm, Proc));
-   end Set_Field_Init_Hook;
-   --  |
-   --  |
-   --  |
-   procedure Set_Field_Term_Hook (Frm  : Form;
-                                  Proc : Form_Hook_Function)
+      Eti_Exception (Set_Field_Init (Frm, Proc));
+   end Set_Field_Init_Hook;
+   --  |
+   --  |
+   --  |
+   procedure Set_Field_Term_Hook (Frm  : Form;
+                                  Proc : Form_Hook_Function)
    is
-      function Set_Field_Term (Frm  : Form;
-                               Proc : Form_Hook_Function) return Eti_Error;
+      function Set_Field_Term (Frm  : Form;
+                               Proc : Form_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Field_Term, "set_field_term");
 
    begin
-      Eti_Exception (Set_Field_Term (Frm, Proc));
-   end Set_Field_Term_Hook;
-   --  |
-   --  |
-   --  |
-   procedure Set_Form_Init_Hook (Frm  : Form;
-                                 Proc : Form_Hook_Function)
+      Eti_Exception (Set_Field_Term (Frm, Proc));
+   end Set_Field_Term_Hook;
+   --  |
+   --  |
+   --  |
+   procedure Set_Form_Init_Hook (Frm  : Form;
+                                 Proc : Form_Hook_Function)
    is
-      function Set_Form_Init (Frm  : Form;
-                              Proc : Form_Hook_Function) return Eti_Error;
+      function Set_Form_Init (Frm  : Form;
+                              Proc : Form_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Form_Init, "set_form_init");
 
    begin
-      Eti_Exception (Set_Form_Init (Frm, Proc));
-   end Set_Form_Init_Hook;
-   --  |
-   --  |
-   --  |
-   procedure Set_Form_Term_Hook (Frm  : Form;
-                                 Proc : Form_Hook_Function)
+      Eti_Exception (Set_Form_Init (Frm, Proc));
+   end Set_Form_Init_Hook;
+   --  |
+   --  |
+   --  |
+   procedure Set_Form_Term_Hook (Frm  : Form;
+                                 Proc : Form_Hook_Function)
    is
-      function Set_Form_Term (Frm  : Form;
-                              Proc : Form_Hook_Function) return Eti_Error;
+      function Set_Form_Term (Frm  : Form;
+                              Proc : Form_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Form_Term, "set_form_term");
 
    begin
-      Eti_Exception (Set_Form_Term (Frm, Proc));
-   end Set_Form_Term_Hook;
-   --  |
-   --  |=====================================================================
-   --  | man page form_fields.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Redefine (Frm  : Form;
-                       Flds : Field_Array_Access)
+      Eti_Exception (Set_Form_Term (Frm, Proc));
+   end Set_Form_Term_Hook;
+   --  |
+   --  |=====================================================================
+   --  | man page form_fields.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Redefine (Frm  : Form;
+                       Flds : Field_Array_Access)
    is
-      function Set_Frm_Fields (Frm   : Form;
-                               Items : System.Address) return Eti_Error;
+      function Set_Frm_Fields (Frm   : Form;
+                               Items : System.Address) return Eti_Error;
       pragma Import (C, Set_Frm_Fields, "set_form_fields");
 
    begin
-      pragma Assert (Flds.all (Flds'Last) = Null_Field);
-      if Flds.all (Flds'Last) /= Null_Field then
-         raise Form_Exception;
+      pragma Assert (Flds.all (Flds'Last) = Null_Field);
+      if Flds.all (Flds'Last) /= Null_Field then
+         raise Form_Exception;
       else
-         Eti_Exception (Set_Frm_Fields (Frm, Flds.all (Flds'First)'Address));
+         Eti_Exception (Set_Frm_Fields (Frm, Flds.all (Flds'First)'Address));
       end if;
-   end Redefine;
-   --  |
-   --  |
-   --  |
-   function Fields (Frm   : Form;
-                    Index : Positive) return Field
+   end Redefine;
+   --  |
+   --  |
+   --  |
+   function Fields (Frm   : Form;
+                    Index : Positive) return Field
    is
       use F_Array;
 
-      function C_Fields (Frm : Form) return Pointer;
+      function C_Fields (Frm : Form) return Pointer;
       pragma Import (C, C_Fields, "form_fields");
 
-      P : Pointer := C_Fields (Frm);
+      P : Pointer := C_Fields (Frm);
    begin
-      if P = null or else Index > Field_Count (Frm) then
-         raise Form_Exception;
+      if P = null or else Index > Field_Count (Frm) then
+         raise Form_Exception;
       else
-         P := P + ptrdiff_t (C_Int (Index) - 1);
+         P := P + ptrdiff_t (C_Int (Index) - 1);
          return P.all;
       end if;
-   end Fields;
-   --  |
-   --  |
-   --  |
-   function Field_Count (Frm : Form) return Natural
+   end Fields;
+   --  |
+   --  |
+   --  |
+   function Field_Count (Frm : Form) return Natural
    is
-      function Count (Frm : Form) return C_Int;
+      function Count (Frm : Form) return C_Int;
       pragma Import (C, Count, "field_count");
    begin
-      return Natural (Count (Frm));
-   end Field_Count;
-   --  |
-   --  |
-   --  |
-   procedure Move (Fld    : Field;
-                   Line   : Line_Position;
-                   Column : Column_Position)
+      return Natural (Count (Frm));
+   end Field_Count;
+   --  |
+   --  |
+   --  |
+   procedure Move (Fld    : Field;
+                   Line   : Line_Position;
+                   Column : Column_Position)
    is
-      function Move (Fld : Field; L, C : C_Int) return Eti_Error;
+      function Move (Fld : Field; L, C : C_Int) return Eti_Error;
       pragma Import (C, Move, "move_field");
 
    begin
-      Eti_Exception (Move (Fld, C_Int (Line), C_Int (Column)));
-   end Move;
-   --  |
-   --  |=====================================================================
-   --  | man page form_new.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   function Create (Fields : Field_Array_Access) return Form
+      Eti_Exception (Move (Fld, C_Int (Line), C_Int (Column)));
+   end Move;
+   --  |
+   --  |=====================================================================
+   --  | man page form_new.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   function Create (Fields : Field_Array_Access) return Form
    is
-      function NewForm (Fields : System.Address) return Form;
+      function NewForm (Fields : System.Address) return Form;
       pragma Import (C, NewForm, "new_form");
 
-      M   : Form;
+      M   : Form;
    begin
-      pragma Assert (Fields.all (Fields'Last) = Null_Field);
-      if Fields.all (Fields'Last) /= Null_Field then
-         raise Form_Exception;
+      pragma Assert (Fields.all (Fields'Last) = Null_Field);
+      if Fields.all (Fields'Last) /= Null_Field then
+         raise Form_Exception;
       else
-         M := NewForm (Fields.all (Fields'First)'Address);
-         if M = Null_Form then
-            raise Form_Exception;
+         M := NewForm (Fields.all (Fields'First)'Address);
+         if M = Null_Form then
+            raise Form_Exception;
          end if;
-         return M;
+         return M;
       end if;
-   end Create;
-   --  |
-   --  |
-   --  |
-   procedure Delete (Frm : in out Form)
+   end Create;
+   --  |
+   --  |
+   --  |
+   procedure Delete (Frm : in out Form)
    is
-      function Free (Frm : Form) return Eti_Error;
+      function Free (Frm : Form) return Eti_Error;
       pragma Import (C, Free, "free_form");
 
    begin
-      Eti_Exception (Free (Frm));
-      Frm := Null_Form;
-   end Delete;
-   --  |
-   --  |=====================================================================
-   --  | man page form_opts.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Options (Frm     : Form;
-                          Options : Form_Option_Set)
+      Eti_Exception (Free (Frm));
+      Frm := Null_Form;
+   end Delete;
+   --  |
+   --  |=====================================================================
+   --  | man page form_opts.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Options (Frm     : Form;
+                          Options : Form_Option_Set)
    is
-      function Set_Form_Opts (Frm : Form;
-                              Opt : Form_Option_Set) return Eti_Error;
+      function Set_Form_Opts (Frm : Form;
+                              Opt : Form_Option_Set) return Eti_Error;
       pragma Import (C, Set_Form_Opts, "set_form_opts");
 
    begin
-      Eti_Exception (Set_Form_Opts (Frm, Options));
-   end Set_Options;
-   --  |
-   --  |
-   --  |
-   procedure Switch_Options (Frm     : Form;
-                             Options : Form_Option_Set;
-                             On      : Boolean := True)
+      Eti_Exception (Set_Form_Opts (Frm, Options));
+   end Set_Options;
+   --  |
+   --  |
+   --  |
+   procedure Switch_Options (Frm     : Form;
+                             Options : Form_Option_Set;
+                             On      : Boolean := True)
    is
-      function Form_Opts_On (Frm : Form;
-                             Opt : Form_Option_Set) return Eti_Error;
+      function Form_Opts_On (Frm : Form;
+                             Opt : Form_Option_Set) return Eti_Error;
       pragma Import (C, Form_Opts_On, "form_opts_on");
-      function Form_Opts_Off (Frm : Form;
-                              Opt : Form_Option_Set) return Eti_Error;
+      function Form_Opts_Off (Frm : Form;
+                              Opt : Form_Option_Set) return Eti_Error;
       pragma Import (C, Form_Opts_Off, "form_opts_off");
 
    begin
-      if On then
-         Eti_Exception (Form_Opts_On (Frm, Options));
+      if On then
+         Eti_Exception (Form_Opts_On (Frm, Options));
       else
-         Eti_Exception (Form_Opts_Off (Frm, Options));
+         Eti_Exception (Form_Opts_Off (Frm, Options));
       end if;
-   end Switch_Options;
-   --  |
-   --  |
-   --  |
-   procedure Get_Options (Frm     : Form;
-                          Options : out Form_Option_Set)
+   end Switch_Options;
+   --  |
+   --  |
+   --  |
+   procedure Get_Options (Frm     : Form;
+                          Options : out Form_Option_Set)
    is
-      function Form_Opts (Frm : Form) return Form_Option_Set;
+      function Form_Opts (Frm : Form) return Form_Option_Set;
       pragma Import (C, Form_Opts, "form_opts");
 
    begin
-      Options := Form_Opts (Frm);
-   end Get_Options;
-   --  |
-   --  |
-   --  |
-   function Get_Options (Frm : Form := Null_Form) return Form_Option_Set
+      Options := Form_Opts (Frm);
+   end Get_Options;
+   --  |
+   --  |
+   --  |
+   function Get_Options (Frm : Form := Null_Form) return Form_Option_Set
    is
-      Fos : Form_Option_Set;
+      Fos : Form_Option_Set;
    begin
-      Get_Options (Frm, Fos);
-      return Fos;
-   end Get_Options;
-   --  |
-   --  |=====================================================================
-   --  | man page form_post.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Post (Frm  : Form;
-                   Post : Boolean := True)
+      Get_Options (Frm, Fos);
+      return Fos;
+   end Get_Options;
+   --  |
+   --  |=====================================================================
+   --  | man page form_post.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Post (Frm  : Form;
+                   Post : Boolean := True)
    is
-      function M_Post (Frm : Form) return Eti_Error;
+      function M_Post (Frm : Form) return Eti_Error;
       pragma Import (C, M_Post, "post_form");
-      function M_Unpost (Frm : Form) return Eti_Error;
+      function M_Unpost (Frm : Form) return Eti_Error;
       pragma Import (C, M_Unpost, "unpost_form");
 
    begin
-      if Post then
-         Eti_Exception (M_Post (Frm));
+      if Post then
+         Eti_Exception (M_Post (Frm));
       else
-         Eti_Exception (M_Unpost (Frm));
+         Eti_Exception (M_Unpost (Frm));
       end if;
-   end Post;
-   --  |
-   --  |=====================================================================
-   --  | man page form_cursor.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Position_Cursor (Frm : Form)
+   end Post;
+   --  |
+   --  |=====================================================================
+   --  | man page form_cursor.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Position_Cursor (Frm : Form)
    is
-      function Pos_Form_Cursor (Frm : Form) return Eti_Error;
+      function Pos_Form_Cursor (Frm : Form) return Eti_Error;
       pragma Import (C, Pos_Form_Cursor, "pos_form_cursor");
 
    begin
-      Eti_Exception (Pos_Form_Cursor (Frm));
-   end Position_Cursor;
-   --  |
-   --  |=====================================================================
-   --  | man page form_data.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   function Data_Ahead (Frm : Form) return Boolean
+      Eti_Exception (Pos_Form_Cursor (Frm));
+   end Position_Cursor;
+   --  |
+   --  |=====================================================================
+   --  | man page form_data.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   function Data_Ahead (Frm : Form) return Boolean
    is
-      function Ahead (Frm : Form) return C_Int;
+      function Ahead (Frm : Form) return C_Int;
       pragma Import (C, Ahead, "data_ahead");
 
-      Res : constant C_Int := Ahead (Frm);
+      Res : constant C_Int := Ahead (Frm);
    begin
-      if Res = Curses_False then
+      if Res = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Data_Ahead;
-   --  |
-   --  |
-   --  |
-   function Data_Behind (Frm : Form) return Boolean
+   end Data_Ahead;
+   --  |
+   --  |
+   --  |
+   function Data_Behind (Frm : Form) return Boolean
    is
-      function Behind (Frm : Form) return C_Int;
+      function Behind (Frm : Form) return C_Int;
       pragma Import (C, Behind, "data_behind");
 
-      Res : constant C_Int := Behind (Frm);
+      Res : constant C_Int := Behind (Frm);
    begin
-      if Res = Curses_False then
+      if Res = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Data_Behind;
-   --  |
-   --  |=====================================================================
-   --  | man page form_driver.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   function Driver (Frm : Form;
-                    Key : Key_Code) return Driver_Result
+   end Data_Behind;
+   --  |
+   --  |=====================================================================
+   --  | man page form_driver.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   function Driver (Frm : Form;
+                    Key : Key_Code) return Driver_Result
    is
-      function Frm_Driver (Frm : Form; Key : C_Int) return Eti_Error;
+      function Frm_Driver (Frm : Form; Key : C_Int) return Eti_Error;
       pragma Import (C, Frm_Driver, "form_driver");
 
-      R : constant Eti_Error := Frm_Driver (Frm, C_Int (Key));
+      R : constant Eti_Error := Frm_Driver (Frm, C_Int (Key));
    begin
-      case R is
-         when E_Unknown_Command =>
-            return Unknown_Request;
-         when E_Invalid_Field =>
-            return Invalid_Field;
-         when E_Request_Denied =>
-            return Request_Denied;
+      case R is
+         when E_Unknown_Command =>
+            return Unknown_Request;
+         when E_Invalid_Field =>
+            return Invalid_Field;
+         when E_Request_Denied =>
+            return Request_Denied;
          when others =>
-            Eti_Exception (R);
-            return Form_Ok;
+            Eti_Exception (R);
+            return Form_Ok;
       end case;
-   end Driver;
-   --  |
-   --  |=====================================================================
-   --  | man page form_page.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_Current (Frm : Form;
-                          Fld : Field)
+   end Driver;
+   --  |
+   --  |=====================================================================
+   --  | man page form_page.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_Current (Frm : Form;
+                          Fld : Field)
    is
-      function Set_Current_Fld (Frm : Form; Fld : Field) return Eti_Error;
+      function Set_Current_Fld (Frm : Form; Fld : Field) return Eti_Error;
       pragma Import (C, Set_Current_Fld, "set_current_field");
 
    begin
-      Eti_Exception (Set_Current_Fld (Frm, Fld));
-   end Set_Current;
-   --  |
-   --  |
-   --  |
-   function Current (Frm : Form) return Field
+      Eti_Exception (Set_Current_Fld (Frm, Fld));
+   end Set_Current;
+   --  |
+   --  |
+   --  |
+   function Current (Frm : Form) return Field
    is
-      function Current_Fld (Frm : Form) return Field;
+      function Current_Fld (Frm : Form) return Field;
       pragma Import (C, Current_Fld, "current_field");
 
-      Fld : constant Field := Current_Fld (Frm);
+      Fld : constant Field := Current_Fld (Frm);
    begin
-      if Fld = Null_Field then
-         raise Form_Exception;
+      if Fld = Null_Field then
+         raise Form_Exception;
       end if;
-      return Fld;
-   end Current;
-   --  |
-   --  |
-   --  |
-   procedure Set_Page (Frm  : Form;
-                       Page : Page_Number := Page_Number'First)
+      return Fld;
+   end Current;
+   --  |
+   --  |
+   --  |
+   procedure Set_Page (Frm  : Form;
+                       Page : Page_Number := Page_Number'First)
    is
-      function Set_Frm_Page (Frm : Form; Pg : C_Int) return Eti_Error;
+      function Set_Frm_Page (Frm : Form; Pg : C_Int) return Eti_Error;
       pragma Import (C, Set_Frm_Page, "set_form_page");
 
    begin
-      Eti_Exception (Set_Frm_Page (Frm, C_Int (Page)));
-   end Set_Page;
-   --  |
-   --  |
-   --  |
-   function Page (Frm : Form) return Page_Number
+      Eti_Exception (Set_Frm_Page (Frm, C_Int (Page)));
+   end Set_Page;
+   --  |
+   --  |
+   --  |
+   function Page (Frm : Form) return Page_Number
    is
-      function Get_Page (Frm : Form) return C_Int;
+      function Get_Page (Frm : Form) return C_Int;
       pragma Import (C, Get_Page, "form_page");
 
-      P : constant C_Int := Get_Page (Frm);
+      P : constant C_Int := Get_Page (Frm);
    begin
-      if P < 0 then
-         raise Form_Exception;
+      if P < 0 then
+         raise Form_Exception;
       else
-         return Page_Number (P);
+         return Page_Number (P);
       end if;
-   end Page;
+   end Page;
 
-   function Get_Index (Fld : Field) return Positive
+   function Get_Index (Fld : Field) return Positive
    is
-      function Get_Fieldindex (Fld : Field) return C_Int;
+      function Get_Fieldindex (Fld : Field) return C_Int;
       pragma Import (C, Get_Fieldindex, "field_index");
 
-      Res : constant C_Int := Get_Fieldindex (Fld);
+      Res : constant C_Int := Get_Fieldindex (Fld);
    begin
-      if Res = Curses_Err then
-         raise Form_Exception;
+      if Res = Curses_Err then
+         raise Form_Exception;
       end if;
-      return Positive (Natural (Res) + Positive'First);
-   end Get_Index;
-
-   --  |
-   --  |=====================================================================
-   --  | man page form_new_page.3x
-   --  |=====================================================================
-   --  |
-   --  |
-   --  |
-   procedure Set_New_Page (Fld      : Field;
-                           New_Page : Boolean := True)
+      return Positive (Natural (Res) + Positive'First);
+   end Get_Index;
+
+   --  |
+   --  |=====================================================================
+   --  | man page form_new_page.3x
+   --  |=====================================================================
+   --  |
+   --  |
+   --  |
+   procedure Set_New_Page (Fld      : Field;
+                           New_Page : Boolean := True)
    is
-      function Set_Page (Fld : Field; Flg : C_Int) return Eti_Error;
+      function Set_Page (Fld : Field; Flg : C_Int) return Eti_Error;
       pragma Import (C, Set_Page, "set_new_page");
 
    begin
-      Eti_Exception (Set_Page (Fld, Boolean'Pos (New_Page)));
-   end Set_New_Page;
-   --  |
-   --  |
-   --  |
-   function Is_New_Page (Fld : Field) return Boolean
+      Eti_Exception (Set_Page (Fld, Boolean'Pos (New_Page)));
+   end Set_New_Page;
+   --  |
+   --  |
+   --  |
+   function Is_New_Page (Fld : Field) return Boolean
    is
-      function Is_New (Fld : Field) return C_Int;
+      function Is_New (Fld : Field) return C_Int;
       pragma Import (C, Is_New, "new_page");
 
-      Res : constant C_Int := Is_New (Fld);
+      Res : constant C_Int := Is_New (Fld);
    begin
-      if Res = Curses_False then
+      if Res = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Is_New_Page;
+   end Is_New_Page;
 
-   procedure Free (FA          : in out Field_Array_Access;
-                   Free_Fields : Boolean := False)
+   procedure Free (FA          : in out Field_Array_Access;
+                   Free_Fields : Boolean := False)
    is
       procedure Release is new Ada.Unchecked_Deallocation
-        (Field_Array, Field_Array_Access);
+        (Field_Array, Field_Array_Access);
    begin
-      if FA /= null and then Free_Fields then
-         for I in FA'First .. (FA'Last - 1) loop
-            if FA.all (I) /= Null_Field then
-               Delete (FA.all (I));
+      if FA /= null and then Free_Fields then
+         for I in FA'First .. (FA'Last - 1) loop
+            if FA.all (I) /= Null_Field then
+               Delete (FA.all (I));
             end if;
          end loop;
       end if;
-      Release (FA);
-   end Free;
+      Release (FA);
+   end Free;
 
-   --  |=====================================================================
+   --  |=====================================================================
 
-   function Default_Field_Options return Field_Option_Set
+   function Default_Field_Options return Field_Option_Set
    is
    begin
-      return Get_Options (Null_Field);
-   end Default_Field_Options;
+      return Get_Options (Null_Field);
+   end Default_Field_Options;
 
-   function Default_Form_Options return Form_Option_Set
+   function Default_Form_Options return Form_Option_Set
    is
    begin
-      return Get_Options (Null_Form);
-   end Default_Form_Options;
+      return Get_Options (Null_Form);
+   end Default_Form_Options;
 
-end Terminal_Interface.Curses.Forms;
-
+end Terminal_Interface.Curses.Forms; +
diff --git a/doc/html/ada/terminal_interface-curses-forms__ads.htm b/doc/html/ada/terminal_interface-curses-forms__ads.htm index ee5ce13b..22a91e47 100644 --- a/doc/html/ada/terminal_interface-curses-forms__ads.htm +++ b/doc/html/ada/terminal_interface-curses-forms__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-forms.ads + + +terminal_interface-curses-forms.ads - - -

File : terminal_interface-curses-forms.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Form                      --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.34 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-forms.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Form                      --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.34 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System;
 with Ada.Characters.Latin_1;
 
-package Terminal_Interface.Curses.Forms is
-   pragma Preelaborate (Terminal_Interface.Curses.Forms);
-   pragma Linker_Options ("-lform" & Curses_Constants.DFT_ARG_SUFFIX);
+package Terminal_Interface.Curses.Forms is
+   pragma Preelaborate (Terminal_Interface.Curses.Forms);
+   pragma Linker_Options ("-lform" & Curses_Constants.DFT_ARG_SUFFIX);
 
    Space : Character renames Ada.Characters.Latin_1.Space;
 
-   type Field        is private;
-   type Form         is private;
+   type Field        is private;
+   type Form         is private;
 
-   Null_Field        : constant Field;
-   Null_Form         : constant Form;
+   Null_Field        : constant Field;
+   Null_Form         : constant Form;
 
-   type Field_Justification is (None,
-                                Left,
-                                Center,
-                                Right);
+   type Field_Justification is (None,
+                                Left,
+                                Center,
+                                Right);
 
-   type Field_Option_Set is
+   type Field_Option_Set is
       record
-         Visible   : Boolean;
-         Active    : Boolean;
-         Public    : Boolean;
-         Edit      : Boolean;
-         Wrap      : Boolean;
-         Blank     : Boolean;
-         Auto_Skip : Boolean;
-         Null_Ok   : Boolean;
-         Pass_Ok   : Boolean;
-         Static    : Boolean;
+         Visible   : Boolean;
+         Active    : Boolean;
+         Public    : Boolean;
+         Edit      : Boolean;
+         Wrap      : Boolean;
+         Blank     : Boolean;
+         Auto_Skip : Boolean;
+         Null_Ok   : Boolean;
+         Pass_Ok   : Boolean;
+         Static    : Boolean;
       end record;
-   pragma Convention (C_Pass_By_Copy, Field_Option_Set);
+   pragma Convention (C_Pass_By_Copy, Field_Option_Set);
 
-   for Field_Option_Set use
+   for Field_Option_Set use
       record
-         Visible   at 0 range Curses_Constants.O_VISIBLE_First
-           .. Curses_Constants.O_VISIBLE_Last;
-         Active    at 0 range Curses_Constants.O_ACTIVE_First
-           .. Curses_Constants.O_ACTIVE_Last;
-         Public    at 0 range Curses_Constants.O_PUBLIC_First
-           .. Curses_Constants.O_PUBLIC_Last;
-         Edit      at 0 range Curses_Constants.O_EDIT_First
-           .. Curses_Constants.O_EDIT_Last;
-         Wrap      at 0 range Curses_Constants.O_WRAP_First
-           .. Curses_Constants.O_WRAP_Last;
-         Blank     at 0 range Curses_Constants.O_BLANK_First
-           .. Curses_Constants.O_BLANK_Last;
-         Auto_Skip at 0 range Curses_Constants.O_AUTOSKIP_First
-           .. Curses_Constants.O_AUTOSKIP_Last;
-         Null_Ok   at 0 range Curses_Constants.O_NULLOK_First
-           .. Curses_Constants.O_NULLOK_Last;
-         Pass_Ok   at 0 range Curses_Constants.O_PASSOK_First
-           .. Curses_Constants.O_PASSOK_Last;
-         Static    at 0 range Curses_Constants.O_STATIC_First
-           .. Curses_Constants.O_STATIC_Last;
+         Visible   at 0 range Curses_Constants.O_VISIBLE_First
+           .. Curses_Constants.O_VISIBLE_Last;
+         Active    at 0 range Curses_Constants.O_ACTIVE_First
+           .. Curses_Constants.O_ACTIVE_Last;
+         Public    at 0 range Curses_Constants.O_PUBLIC_First
+           .. Curses_Constants.O_PUBLIC_Last;
+         Edit      at 0 range Curses_Constants.O_EDIT_First
+           .. Curses_Constants.O_EDIT_Last;
+         Wrap      at 0 range Curses_Constants.O_WRAP_First
+           .. Curses_Constants.O_WRAP_Last;
+         Blank     at 0 range Curses_Constants.O_BLANK_First
+           .. Curses_Constants.O_BLANK_Last;
+         Auto_Skip at 0 range Curses_Constants.O_AUTOSKIP_First
+           .. Curses_Constants.O_AUTOSKIP_Last;
+         Null_Ok   at 0 range Curses_Constants.O_NULLOK_First
+           .. Curses_Constants.O_NULLOK_Last;
+         Pass_Ok   at 0 range Curses_Constants.O_PASSOK_First
+           .. Curses_Constants.O_PASSOK_Last;
+         Static    at 0 range Curses_Constants.O_STATIC_First
+           .. Curses_Constants.O_STATIC_Last;
       end record;
    pragma Warnings (Off);
-   for Field_Option_Set'Size use Curses_Constants.Field_Options_Size;
+   for Field_Option_Set'Size use Curses_Constants.Field_Options_Size;
    pragma Warnings (On);
 
-   function Default_Field_Options return Field_Option_Set;
-   --  The initial defaults for the field options.
-   pragma Inline (Default_Field_Options);
+   function Default_Field_Options return Field_Option_Set;
+   --  The initial defaults for the field options.
+   pragma Inline (Default_Field_Options);
 
-   type Form_Option_Set is
+   type Form_Option_Set is
       record
-         NL_Overload : Boolean;
-         BS_Overload : Boolean;
+         NL_Overload : Boolean;
+         BS_Overload : Boolean;
       end record;
-   pragma Convention (C_Pass_By_Copy, Form_Option_Set);
+   pragma Convention (C_Pass_By_Copy, Form_Option_Set);
 
-   for Form_Option_Set use
+   for Form_Option_Set use
       record
-         NL_Overload at 0 range Curses_Constants.O_NL_OVERLOAD_First
-           .. Curses_Constants.O_NL_OVERLOAD_Last;
-         BS_Overload at 0 range Curses_Constants.O_BS_OVERLOAD_First
-           .. Curses_Constants.O_BS_OVERLOAD_Last;
+         NL_Overload at 0 range Curses_Constants.O_NL_OVERLOAD_First
+           .. Curses_Constants.O_NL_OVERLOAD_Last;
+         BS_Overload at 0 range Curses_Constants.O_BS_OVERLOAD_First
+           .. Curses_Constants.O_BS_OVERLOAD_Last;
       end record;
    pragma Warnings (Off);
-   for Form_Option_Set'Size use Curses_Constants.Field_Options_Size;
+   for Form_Option_Set'Size use Curses_Constants.Field_Options_Size;
    pragma Warnings (On);
 
-   function Default_Form_Options return Form_Option_Set;
-   --  The initial defaults for the form options.
-   pragma Inline (Default_Form_Options);
+   function Default_Form_Options return Form_Option_Set;
+   --  The initial defaults for the form options.
+   pragma Inline (Default_Form_Options);
 
-   type Buffer_Number is new Natural;
+   type Buffer_Number is new Natural;
 
-   type Field_Array is array (Positive range <>) of aliased Field;
+   type Field_Array is array (Positive range <>) of aliased Field;
    pragma Convention (C, Field_Array);
 
-   type Field_Array_Access is access Field_Array;
-
-   procedure Free (FA          : in out Field_Array_Access;
-                   Free_Fields : Boolean := False);
-   --  Release the memory for an allocated field array
-   --  If Free_Fields is True, call Delete() for all the fields in
-   --  the array.
-
-   subtype Form_Request_Code is Key_Code range (Key_Max + 1) .. (Key_Max + 57);
-
-   --  The prefix F_ stands for "Form Request"
-   F_Next_Page                : constant Form_Request_Code := Key_Max + 1;
-   F_Previous_Page            : constant Form_Request_Code := Key_Max + 2;
-   F_First_Page               : constant Form_Request_Code := Key_Max + 3;
-   F_Last_Page                : constant Form_Request_Code := Key_Max + 4;
-
-   F_Next_Field               : constant Form_Request_Code := Key_Max + 5;
-   F_Previous_Field           : constant Form_Request_Code := Key_Max + 6;
-   F_First_Field              : constant Form_Request_Code := Key_Max + 7;
-   F_Last_Field               : constant Form_Request_Code := Key_Max + 8;
-   F_Sorted_Next_Field        : constant Form_Request_Code := Key_Max + 9;
-   F_Sorted_Previous_Field    : constant Form_Request_Code := Key_Max + 10;
-   F_Sorted_First_Field       : constant Form_Request_Code := Key_Max + 11;
-   F_Sorted_Last_Field        : constant Form_Request_Code := Key_Max + 12;
-   F_Left_Field               : constant Form_Request_Code := Key_Max + 13;
-   F_Right_Field              : constant Form_Request_Code := Key_Max + 14;
-   F_Up_Field                 : constant Form_Request_Code := Key_Max + 15;
-   F_Down_Field               : constant Form_Request_Code := Key_Max + 16;
-
-   F_Next_Char                : constant Form_Request_Code := Key_Max + 17;
-   F_Previous_Char            : constant Form_Request_Code := Key_Max + 18;
-   F_Next_Line                : constant Form_Request_Code := Key_Max + 19;
-   F_Previous_Line            : constant Form_Request_Code := Key_Max + 20;
-   F_Next_Word                : constant Form_Request_Code := Key_Max + 21;
-   F_Previous_Word            : constant Form_Request_Code := Key_Max + 22;
-   F_Begin_Field              : constant Form_Request_Code := Key_Max + 23;
-   F_End_Field                : constant Form_Request_Code := Key_Max + 24;
-   F_Begin_Line               : constant Form_Request_Code := Key_Max + 25;
-   F_End_Line                 : constant Form_Request_Code := Key_Max + 26;
-   F_Left_Char                : constant Form_Request_Code := Key_Max + 27;
-   F_Right_Char               : constant Form_Request_Code := Key_Max + 28;
-   F_Up_Char                  : constant Form_Request_Code := Key_Max + 29;
-   F_Down_Char                : constant Form_Request_Code := Key_Max + 30;
-
-   F_New_Line                 : constant Form_Request_Code := Key_Max + 31;
-   F_Insert_Char              : constant Form_Request_Code := Key_Max + 32;
-   F_Insert_Line              : constant Form_Request_Code := Key_Max + 33;
-   F_Delete_Char              : constant Form_Request_Code := Key_Max + 34;
-   F_Delete_Previous          : constant Form_Request_Code := Key_Max + 35;
-   F_Delete_Line              : constant Form_Request_Code := Key_Max + 36;
-   F_Delete_Word              : constant Form_Request_Code := Key_Max + 37;
-   F_Clear_EOL                : constant Form_Request_Code := Key_Max + 38;
-   F_Clear_EOF                : constant Form_Request_Code := Key_Max + 39;
-   F_Clear_Field              : constant Form_Request_Code := Key_Max + 40;
-   F_Overlay_Mode             : constant Form_Request_Code := Key_Max + 41;
-   F_Insert_Mode              : constant Form_Request_Code := Key_Max + 42;
-
-   --  Vertical Scrolling
-   F_ScrollForward_Line       : constant Form_Request_Code := Key_Max + 43;
-   F_ScrollBackward_Line      : constant Form_Request_Code := Key_Max + 44;
-   F_ScrollForward_Page       : constant Form_Request_Code := Key_Max + 45;
-   F_ScrollBackward_Page      : constant Form_Request_Code := Key_Max + 46;
-   F_ScrollForward_HalfPage   : constant Form_Request_Code := Key_Max + 47;
-   F_ScrollBackward_HalfPage  : constant Form_Request_Code := Key_Max + 48;
-
-   --  Horizontal Scrolling
-   F_HScrollForward_Char      : constant Form_Request_Code := Key_Max + 49;
-   F_HScrollBackward_Char     : constant Form_Request_Code := Key_Max + 50;
-   F_HScrollForward_Line      : constant Form_Request_Code := Key_Max + 51;
-   F_HScrollBackward_Line     : constant Form_Request_Code := Key_Max + 52;
-   F_HScrollForward_HalfLine  : constant Form_Request_Code := Key_Max + 53;
-   F_HScrollBackward_HalfLine : constant Form_Request_Code := Key_Max + 54;
-
-   F_Validate_Field           : constant Form_Request_Code := Key_Max + 55;
-   F_Next_Choice              : constant Form_Request_Code := Key_Max + 56;
-   F_Previous_Choice          : constant Form_Request_Code := Key_Max + 57;
-
-   --  For those who like the old 'C' style request names
-   REQ_NEXT_PAGE    : Form_Request_Code renames F_Next_Page;
-   REQ_PREV_PAGE    : Form_Request_Code renames F_Previous_Page;
-   REQ_FIRST_PAGE   : Form_Request_Code renames F_First_Page;
-   REQ_LAST_PAGE    : Form_Request_Code renames F_Last_Page;
-
-   REQ_NEXT_FIELD   : Form_Request_Code renames F_Next_Field;
-   REQ_PREV_FIELD   : Form_Request_Code renames F_Previous_Field;
-   REQ_FIRST_FIELD  : Form_Request_Code renames F_First_Field;
-   REQ_LAST_FIELD   : Form_Request_Code renames F_Last_Field;
-   REQ_SNEXT_FIELD  : Form_Request_Code renames F_Sorted_Next_Field;
-   REQ_SPREV_FIELD  : Form_Request_Code renames F_Sorted_Previous_Field;
-   REQ_SFIRST_FIELD : Form_Request_Code renames F_Sorted_First_Field;
-   REQ_SLAST_FIELD  : Form_Request_Code renames F_Sorted_Last_Field;
-   REQ_LEFT_FIELD   : Form_Request_Code renames F_Left_Field;
-   REQ_RIGHT_FIELD  : Form_Request_Code renames F_Right_Field;
-   REQ_UP_FIELD     : Form_Request_Code renames F_Up_Field;
-   REQ_DOWN_FIELD   : Form_Request_Code renames F_Down_Field;
-
-   REQ_NEXT_CHAR    : Form_Request_Code renames F_Next_Char;
-   REQ_PREV_CHAR    : Form_Request_Code renames F_Previous_Char;
-   REQ_NEXT_LINE    : Form_Request_Code renames F_Next_Line;
-   REQ_PREV_LINE    : Form_Request_Code renames F_Previous_Line;
-   REQ_NEXT_WORD    : Form_Request_Code renames F_Next_Word;
-   REQ_PREV_WORD    : Form_Request_Code renames F_Previous_Word;
-   REQ_BEG_FIELD    : Form_Request_Code renames F_Begin_Field;
-   REQ_END_FIELD    : Form_Request_Code renames F_End_Field;
-   REQ_BEG_LINE     : Form_Request_Code renames F_Begin_Line;
-   REQ_END_LINE     : Form_Request_Code renames F_End_Line;
-   REQ_LEFT_CHAR    : Form_Request_Code renames F_Left_Char;
-   REQ_RIGHT_CHAR   : Form_Request_Code renames F_Right_Char;
-   REQ_UP_CHAR      : Form_Request_Code renames F_Up_Char;
-   REQ_DOWN_CHAR    : Form_Request_Code renames F_Down_Char;
-
-   REQ_NEW_LINE     : Form_Request_Code renames F_New_Line;
-   REQ_INS_CHAR     : Form_Request_Code renames F_Insert_Char;
-   REQ_INS_LINE     : Form_Request_Code renames F_Insert_Line;
-   REQ_DEL_CHAR     : Form_Request_Code renames F_Delete_Char;
-   REQ_DEL_PREV     : Form_Request_Code renames F_Delete_Previous;
-   REQ_DEL_LINE     : Form_Request_Code renames F_Delete_Line;
-   REQ_DEL_WORD     : Form_Request_Code renames F_Delete_Word;
-   REQ_CLR_EOL      : Form_Request_Code renames F_Clear_EOL;
-   REQ_CLR_EOF      : Form_Request_Code renames F_Clear_EOF;
-   REQ_CLR_FIELD    : Form_Request_Code renames F_Clear_Field;
-   REQ_OVL_MODE     : Form_Request_Code renames F_Overlay_Mode;
-   REQ_INS_MODE     : Form_Request_Code renames F_Insert_Mode;
-
-   REQ_SCR_FLINE    : Form_Request_Code renames F_ScrollForward_Line;
-   REQ_SCR_BLINE    : Form_Request_Code renames F_ScrollBackward_Line;
-   REQ_SCR_FPAGE    : Form_Request_Code renames F_ScrollForward_Page;
-   REQ_SCR_BPAGE    : Form_Request_Code renames F_ScrollBackward_Page;
-   REQ_SCR_FHPAGE   : Form_Request_Code renames F_ScrollForward_HalfPage;
-   REQ_SCR_BHPAGE   : Form_Request_Code renames F_ScrollBackward_HalfPage;
-
-   REQ_SCR_FCHAR    : Form_Request_Code renames F_HScrollForward_Char;
-   REQ_SCR_BCHAR    : Form_Request_Code renames F_HScrollBackward_Char;
-   REQ_SCR_HFLINE   : Form_Request_Code renames F_HScrollForward_Line;
-   REQ_SCR_HBLINE   : Form_Request_Code renames F_HScrollBackward_Line;
-   REQ_SCR_HFHALF   : Form_Request_Code renames F_HScrollForward_HalfLine;
-   REQ_SCR_HBHALF   : Form_Request_Code renames F_HScrollBackward_HalfLine;
-
-   REQ_VALIDATION   : Form_Request_Code renames F_Validate_Field;
-   REQ_NEXT_CHOICE  : Form_Request_Code renames F_Next_Choice;
-   REQ_PREV_CHOICE  : Form_Request_Code renames F_Previous_Choice;
-
-   procedure Request_Name (Key  : Form_Request_Code;
-                           Name : out String);
-
-   function  Request_Name (Key : Form_Request_Code) return String;
-   --  Same as function
+   type Field_Array_Access is access Field_Array;
+
+   procedure Free (FA          : in out Field_Array_Access;
+                   Free_Fields : Boolean := False);
+   --  Release the memory for an allocated field array
+   --  If Free_Fields is True, call Delete() for all the fields in
+   --  the array.
+
+   subtype Form_Request_Code is Key_Code range (Key_Max + 1) .. (Key_Max + 57);
+
+   --  The prefix F_ stands for "Form Request"
+   F_Next_Page                : constant Form_Request_Code := Key_Max + 1;
+   F_Previous_Page            : constant Form_Request_Code := Key_Max + 2;
+   F_First_Page               : constant Form_Request_Code := Key_Max + 3;
+   F_Last_Page                : constant Form_Request_Code := Key_Max + 4;
+
+   F_Next_Field               : constant Form_Request_Code := Key_Max + 5;
+   F_Previous_Field           : constant Form_Request_Code := Key_Max + 6;
+   F_First_Field              : constant Form_Request_Code := Key_Max + 7;
+   F_Last_Field               : constant Form_Request_Code := Key_Max + 8;
+   F_Sorted_Next_Field        : constant Form_Request_Code := Key_Max + 9;
+   F_Sorted_Previous_Field    : constant Form_Request_Code := Key_Max + 10;
+   F_Sorted_First_Field       : constant Form_Request_Code := Key_Max + 11;
+   F_Sorted_Last_Field        : constant Form_Request_Code := Key_Max + 12;
+   F_Left_Field               : constant Form_Request_Code := Key_Max + 13;
+   F_Right_Field              : constant Form_Request_Code := Key_Max + 14;
+   F_Up_Field                 : constant Form_Request_Code := Key_Max + 15;
+   F_Down_Field               : constant Form_Request_Code := Key_Max + 16;
+
+   F_Next_Char                : constant Form_Request_Code := Key_Max + 17;
+   F_Previous_Char            : constant Form_Request_Code := Key_Max + 18;
+   F_Next_Line                : constant Form_Request_Code := Key_Max + 19;
+   F_Previous_Line            : constant Form_Request_Code := Key_Max + 20;
+   F_Next_Word                : constant Form_Request_Code := Key_Max + 21;
+   F_Previous_Word            : constant Form_Request_Code := Key_Max + 22;
+   F_Begin_Field              : constant Form_Request_Code := Key_Max + 23;
+   F_End_Field                : constant Form_Request_Code := Key_Max + 24;
+   F_Begin_Line               : constant Form_Request_Code := Key_Max + 25;
+   F_End_Line                 : constant Form_Request_Code := Key_Max + 26;
+   F_Left_Char                : constant Form_Request_Code := Key_Max + 27;
+   F_Right_Char               : constant Form_Request_Code := Key_Max + 28;
+   F_Up_Char                  : constant Form_Request_Code := Key_Max + 29;
+   F_Down_Char                : constant Form_Request_Code := Key_Max + 30;
+
+   F_New_Line                 : constant Form_Request_Code := Key_Max + 31;
+   F_Insert_Char              : constant Form_Request_Code := Key_Max + 32;
+   F_Insert_Line              : constant Form_Request_Code := Key_Max + 33;
+   F_Delete_Char              : constant Form_Request_Code := Key_Max + 34;
+   F_Delete_Previous          : constant Form_Request_Code := Key_Max + 35;
+   F_Delete_Line              : constant Form_Request_Code := Key_Max + 36;
+   F_Delete_Word              : constant Form_Request_Code := Key_Max + 37;
+   F_Clear_EOL                : constant Form_Request_Code := Key_Max + 38;
+   F_Clear_EOF                : constant Form_Request_Code := Key_Max + 39;
+   F_Clear_Field              : constant Form_Request_Code := Key_Max + 40;
+   F_Overlay_Mode             : constant Form_Request_Code := Key_Max + 41;
+   F_Insert_Mode              : constant Form_Request_Code := Key_Max + 42;
+
+   --  Vertical Scrolling
+   F_ScrollForward_Line       : constant Form_Request_Code := Key_Max + 43;
+   F_ScrollBackward_Line      : constant Form_Request_Code := Key_Max + 44;
+   F_ScrollForward_Page       : constant Form_Request_Code := Key_Max + 45;
+   F_ScrollBackward_Page      : constant Form_Request_Code := Key_Max + 46;
+   F_ScrollForward_HalfPage   : constant Form_Request_Code := Key_Max + 47;
+   F_ScrollBackward_HalfPage  : constant Form_Request_Code := Key_Max + 48;
+
+   --  Horizontal Scrolling
+   F_HScrollForward_Char      : constant Form_Request_Code := Key_Max + 49;
+   F_HScrollBackward_Char     : constant Form_Request_Code := Key_Max + 50;
+   F_HScrollForward_Line      : constant Form_Request_Code := Key_Max + 51;
+   F_HScrollBackward_Line     : constant Form_Request_Code := Key_Max + 52;
+   F_HScrollForward_HalfLine  : constant Form_Request_Code := Key_Max + 53;
+   F_HScrollBackward_HalfLine : constant Form_Request_Code := Key_Max + 54;
+
+   F_Validate_Field           : constant Form_Request_Code := Key_Max + 55;
+   F_Next_Choice              : constant Form_Request_Code := Key_Max + 56;
+   F_Previous_Choice          : constant Form_Request_Code := Key_Max + 57;
+
+   --  For those who like the old 'C' style request names
+   REQ_NEXT_PAGE    : Form_Request_Code renames F_Next_Page;
+   REQ_PREV_PAGE    : Form_Request_Code renames F_Previous_Page;
+   REQ_FIRST_PAGE   : Form_Request_Code renames F_First_Page;
+   REQ_LAST_PAGE    : Form_Request_Code renames F_Last_Page;
+
+   REQ_NEXT_FIELD   : Form_Request_Code renames F_Next_Field;
+   REQ_PREV_FIELD   : Form_Request_Code renames F_Previous_Field;
+   REQ_FIRST_FIELD  : Form_Request_Code renames F_First_Field;
+   REQ_LAST_FIELD   : Form_Request_Code renames F_Last_Field;
+   REQ_SNEXT_FIELD  : Form_Request_Code renames F_Sorted_Next_Field;
+   REQ_SPREV_FIELD  : Form_Request_Code renames F_Sorted_Previous_Field;
+   REQ_SFIRST_FIELD : Form_Request_Code renames F_Sorted_First_Field;
+   REQ_SLAST_FIELD  : Form_Request_Code renames F_Sorted_Last_Field;
+   REQ_LEFT_FIELD   : Form_Request_Code renames F_Left_Field;
+   REQ_RIGHT_FIELD  : Form_Request_Code renames F_Right_Field;
+   REQ_UP_FIELD     : Form_Request_Code renames F_Up_Field;
+   REQ_DOWN_FIELD   : Form_Request_Code renames F_Down_Field;
+
+   REQ_NEXT_CHAR    : Form_Request_Code renames F_Next_Char;
+   REQ_PREV_CHAR    : Form_Request_Code renames F_Previous_Char;
+   REQ_NEXT_LINE    : Form_Request_Code renames F_Next_Line;
+   REQ_PREV_LINE    : Form_Request_Code renames F_Previous_Line;
+   REQ_NEXT_WORD    : Form_Request_Code renames F_Next_Word;
+   REQ_PREV_WORD    : Form_Request_Code renames F_Previous_Word;
+   REQ_BEG_FIELD    : Form_Request_Code renames F_Begin_Field;
+   REQ_END_FIELD    : Form_Request_Code renames F_End_Field;
+   REQ_BEG_LINE     : Form_Request_Code renames F_Begin_Line;
+   REQ_END_LINE     : Form_Request_Code renames F_End_Line;
+   REQ_LEFT_CHAR    : Form_Request_Code renames F_Left_Char;
+   REQ_RIGHT_CHAR   : Form_Request_Code renames F_Right_Char;
+   REQ_UP_CHAR      : Form_Request_Code renames F_Up_Char;
+   REQ_DOWN_CHAR    : Form_Request_Code renames F_Down_Char;
+
+   REQ_NEW_LINE     : Form_Request_Code renames F_New_Line;
+   REQ_INS_CHAR     : Form_Request_Code renames F_Insert_Char;
+   REQ_INS_LINE     : Form_Request_Code renames F_Insert_Line;
+   REQ_DEL_CHAR     : Form_Request_Code renames F_Delete_Char;
+   REQ_DEL_PREV     : Form_Request_Code renames F_Delete_Previous;
+   REQ_DEL_LINE     : Form_Request_Code renames F_Delete_Line;
+   REQ_DEL_WORD     : Form_Request_Code renames F_Delete_Word;
+   REQ_CLR_EOL      : Form_Request_Code renames F_Clear_EOL;
+   REQ_CLR_EOF      : Form_Request_Code renames F_Clear_EOF;
+   REQ_CLR_FIELD    : Form_Request_Code renames F_Clear_Field;
+   REQ_OVL_MODE     : Form_Request_Code renames F_Overlay_Mode;
+   REQ_INS_MODE     : Form_Request_Code renames F_Insert_Mode;
+
+   REQ_SCR_FLINE    : Form_Request_Code renames F_ScrollForward_Line;
+   REQ_SCR_BLINE    : Form_Request_Code renames F_ScrollBackward_Line;
+   REQ_SCR_FPAGE    : Form_Request_Code renames F_ScrollForward_Page;
+   REQ_SCR_BPAGE    : Form_Request_Code renames F_ScrollBackward_Page;
+   REQ_SCR_FHPAGE   : Form_Request_Code renames F_ScrollForward_HalfPage;
+   REQ_SCR_BHPAGE   : Form_Request_Code renames F_ScrollBackward_HalfPage;
+
+   REQ_SCR_FCHAR    : Form_Request_Code renames F_HScrollForward_Char;
+   REQ_SCR_BCHAR    : Form_Request_Code renames F_HScrollBackward_Char;
+   REQ_SCR_HFLINE   : Form_Request_Code renames F_HScrollForward_Line;
+   REQ_SCR_HBLINE   : Form_Request_Code renames F_HScrollBackward_Line;
+   REQ_SCR_HFHALF   : Form_Request_Code renames F_HScrollForward_HalfLine;
+   REQ_SCR_HBHALF   : Form_Request_Code renames F_HScrollBackward_HalfLine;
+
+   REQ_VALIDATION   : Form_Request_Code renames F_Validate_Field;
+   REQ_NEXT_CHOICE  : Form_Request_Code renames F_Next_Choice;
+   REQ_PREV_CHOICE  : Form_Request_Code renames F_Previous_Choice;
+
+   procedure Request_Name (Key  : Form_Request_Code;
+                           Name : out String);
+
+   function  Request_Name (Key : Form_Request_Code) return String;
+   --  Same as function
    pragma Inline (Request_Name);
 
-   ------------------
-   --  Exceptions  --
-   ------------------
-   Form_Exception : exception;
-
-   --  |=====================================================================
-   --  | Man page form_field_new.3x
-   --  |=====================================================================
-
-   --  |
-   function Create (Height       : Line_Count;
-                    Width        : Column_Count;
-                    Top          : Line_Position;
-                    Left         : Column_Position;
-                    Off_Screen   : Natural := 0;
-                    More_Buffers : Buffer_Number := Buffer_Number'First)
-                    return Field;
-   --  AKA: new_field()
-   --  An overloaded Create is defined later. Pragma Inline appears there.
-
-   --  |
-   function New_Field (Height       : Line_Count;
-                       Width        : Column_Count;
-                       Top          : Line_Position;
-                       Left         : Column_Position;
-                       Off_Screen   : Natural := 0;
-                       More_Buffers : Buffer_Number := Buffer_Number'First)
-                       return Field renames Create;
-   --  AKA: new_field()
+   ------------------
+   --  Exceptions  --
+   ------------------
+   Form_Exception : exception;
+
+   --  |=====================================================================
+   --  | Man page form_field_new.3x
+   --  |=====================================================================
+
+   --  |
+   function Create (Height       : Line_Count;
+                    Width        : Column_Count;
+                    Top          : Line_Position;
+                    Left         : Column_Position;
+                    Off_Screen   : Natural := 0;
+                    More_Buffers : Buffer_Number := Buffer_Number'First)
+                    return Field;
+   --  AKA: new_field()
+   --  An overloaded Create is defined later. Pragma Inline appears there.
+
+   --  |
+   function New_Field (Height       : Line_Count;
+                       Width        : Column_Count;
+                       Top          : Line_Position;
+                       Left         : Column_Position;
+                       Off_Screen   : Natural := 0;
+                       More_Buffers : Buffer_Number := Buffer_Number'First)
+                       return Field renames Create;
+   --  AKA: new_field()
    pragma Inline (New_Field);
 
-   --  |
-   procedure Delete (Fld : in out Field);
-   --  AKA: free_field()
-   --  Reset Fld to Null_Field
-   --  An overloaded Delete is defined later. Pragma Inline appears there.
-
-   --  |
-   function Duplicate (Fld  : Field;
-                       Top  : Line_Position;
-                       Left : Column_Position) return Field;
-   --  AKA: dup_field()
+   --  |
+   procedure Delete (Fld : in out Field);
+   --  AKA: free_field()
+   --  Reset Fld to Null_Field
+   --  An overloaded Delete is defined later. Pragma Inline appears there.
+
+   --  |
+   function Duplicate (Fld  : Field;
+                       Top  : Line_Position;
+                       Left : Column_Position) return Field;
+   --  AKA: dup_field()
    pragma Inline (Duplicate);
 
-   --  |
-   function Link (Fld  : Field;
-                  Top  : Line_Position;
-                  Left : Column_Position) return Field;
-   --  AKA: link_field()
-   pragma Inline (Link);
-
-   --  |=====================================================================
-   --  | Man page form_field_just.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Justification (Fld  : Field;
-                                Just : Field_Justification := None);
-   --  AKA: set_field_just()
-   pragma Inline (Set_Justification);
-
-   --  |
-   function Get_Justification (Fld : Field) return Field_Justification;
-   --  AKA: field_just()
-   pragma Inline (Get_Justification);
-
-   --  |=====================================================================
-   --  | Man page form_field_buffer.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Buffer
-     (Fld    : Field;
-      Buffer : Buffer_Number := Buffer_Number'First;
-      Str    : String);
-   --  AKA: set_field_buffer()
-   --  Not inlined
-
-   --  |
-   procedure Get_Buffer
-     (Fld    : Field;
-      Buffer : Buffer_Number := Buffer_Number'First;
-      Str    : out String);
-   --  AKA: field_buffer()
-
-   function Get_Buffer
-     (Fld    : Field;
-      Buffer : Buffer_Number := Buffer_Number'First) return String;
-   --  AKA: field_buffer()
-   --  Same but as function
+   --  |
+   function Link (Fld  : Field;
+                  Top  : Line_Position;
+                  Left : Column_Position) return Field;
+   --  AKA: link_field()
+   pragma Inline (Link);
+
+   --  |=====================================================================
+   --  | Man page form_field_just.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Justification (Fld  : Field;
+                                Just : Field_Justification := None);
+   --  AKA: set_field_just()
+   pragma Inline (Set_Justification);
+
+   --  |
+   function Get_Justification (Fld : Field) return Field_Justification;
+   --  AKA: field_just()
+   pragma Inline (Get_Justification);
+
+   --  |=====================================================================
+   --  | Man page form_field_buffer.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Buffer
+     (Fld    : Field;
+      Buffer : Buffer_Number := Buffer_Number'First;
+      Str    : String);
+   --  AKA: set_field_buffer()
+   --  Not inlined
+
+   --  |
+   procedure Get_Buffer
+     (Fld    : Field;
+      Buffer : Buffer_Number := Buffer_Number'First;
+      Str    : out String);
+   --  AKA: field_buffer()
+
+   function Get_Buffer
+     (Fld    : Field;
+      Buffer : Buffer_Number := Buffer_Number'First) return String;
+   --  AKA: field_buffer()
+   --  Same but as function
    pragma Inline (Get_Buffer);
 
-   --  |
-   procedure Set_Status (Fld    : Field;
-                         Status : Boolean := True);
-   --  AKA: set_field_status()
-   pragma Inline (Set_Status);
-
-   --  |
-   function Changed (Fld : Field) return Boolean;
-   --  AKA: field_status()
-   pragma Inline (Changed);
-
-   --  |
-   procedure Set_Maximum_Size (Fld : Field;
-                               Max : Natural := 0);
-   --  AKA: set_field_max()
-   pragma Inline (Set_Maximum_Size);
-
-   --  |=====================================================================
-   --  | Man page form_field_opts.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Options (Fld     : Field;
-                          Options : Field_Option_Set);
-   --  AKA: set_field_opts()
-   --  An overloaded version is defined later. Pragma Inline appears there
-
-   --  |
-   procedure Switch_Options (Fld     : Field;
-                             Options : Field_Option_Set;
-                             On      : Boolean := True);
-   --  AKA: field_opts_on()
-   --  AKA: field_opts_off()
-   --  An overloaded version is defined later. Pragma Inline appears there
-
-   --  |
-   procedure Get_Options (Fld     : Field;
-                          Options : out Field_Option_Set);
-   --  AKA: field_opts()
-
-   --  |
-   function Get_Options (Fld : Field := Null_Field)
-                         return Field_Option_Set;
-   --  AKA: field_opts()
-   --  An overloaded version is defined later. Pragma Inline appears there
-
-   --  |=====================================================================
-   --  | Man page form_field_attributes.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Foreground
-     (Fld   : Field;
-      Fore  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: set_field_fore()
-   pragma Inline (Set_Foreground);
-
-   --  |
-   procedure Foreground (Fld  : Field;
-                         Fore : out Character_Attribute_Set);
-   --  AKA: field_fore()
-
-   --  |
-   procedure Foreground (Fld   : Field;
-                         Fore  : out Character_Attribute_Set;
-                         Color : out Color_Pair);
-   --  AKA: field_fore()
+   --  |
+   procedure Set_Status (Fld    : Field;
+                         Status : Boolean := True);
+   --  AKA: set_field_status()
+   pragma Inline (Set_Status);
+
+   --  |
+   function Changed (Fld : Field) return Boolean;
+   --  AKA: field_status()
+   pragma Inline (Changed);
+
+   --  |
+   procedure Set_Maximum_Size (Fld : Field;
+                               Max : Natural := 0);
+   --  AKA: set_field_max()
+   pragma Inline (Set_Maximum_Size);
+
+   --  |=====================================================================
+   --  | Man page form_field_opts.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Options (Fld     : Field;
+                          Options : Field_Option_Set);
+   --  AKA: set_field_opts()
+   --  An overloaded version is defined later. Pragma Inline appears there
+
+   --  |
+   procedure Switch_Options (Fld     : Field;
+                             Options : Field_Option_Set;
+                             On      : Boolean := True);
+   --  AKA: field_opts_on()
+   --  AKA: field_opts_off()
+   --  An overloaded version is defined later. Pragma Inline appears there
+
+   --  |
+   procedure Get_Options (Fld     : Field;
+                          Options : out Field_Option_Set);
+   --  AKA: field_opts()
+
+   --  |
+   function Get_Options (Fld : Field := Null_Field)
+                         return Field_Option_Set;
+   --  AKA: field_opts()
+   --  An overloaded version is defined later. Pragma Inline appears there
+
+   --  |=====================================================================
+   --  | Man page form_field_attributes.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Foreground
+     (Fld   : Field;
+      Fore  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: set_field_fore()
+   pragma Inline (Set_Foreground);
+
+   --  |
+   procedure Foreground (Fld  : Field;
+                         Fore : out Character_Attribute_Set);
+   --  AKA: field_fore()
+
+   --  |
+   procedure Foreground (Fld   : Field;
+                         Fore  : out Character_Attribute_Set;
+                         Color : out Color_Pair);
+   --  AKA: field_fore()
    pragma Inline (Foreground);
 
-   --  |
-   procedure Set_Background
-     (Fld   : Field;
-      Back  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: set_field_back()
+   --  |
+   procedure Set_Background
+     (Fld   : Field;
+      Back  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: set_field_back()
    pragma Inline (Set_Background);
 
-   --  |
-   procedure Background (Fld  : Field;
-                         Back : out Character_Attribute_Set);
-   --  AKA: field_back()
+   --  |
+   procedure Background (Fld  : Field;
+                         Back : out Character_Attribute_Set);
+   --  AKA: field_back()
 
-   --  |
-   procedure Background (Fld   : Field;
-                         Back  : out Character_Attribute_Set;
-                         Color : out Color_Pair);
-   --  AKA: field_back()
+   --  |
+   procedure Background (Fld   : Field;
+                         Back  : out Character_Attribute_Set;
+                         Color : out Color_Pair);
+   --  AKA: field_back()
    pragma Inline (Background);
 
-   --  |
-   procedure Set_Pad_Character (Fld : Field;
-                                Pad : Character := Space);
-   --  AKA: set_field_pad()
-   pragma Inline (Set_Pad_Character);
-
-   --  |
-   procedure Pad_Character (Fld : Field;
-                            Pad : out Character);
-   --  AKA: field_pad()
-   pragma Inline (Pad_Character);
-
-   --  |=====================================================================
-   --  | Man page form_field_info.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Info (Fld                : Field;
-                   Lines              : out Line_Count;
-                   Columns            : out Column_Count;
-                   First_Row          : out Line_Position;
-                   First_Column       : out Column_Position;
-                   Off_Screen         : out Natural;
-                   Additional_Buffers : out Buffer_Number);
-   --  AKA: field_info()
-   pragma Inline (Info);
-
-   --  |
-   procedure Dynamic_Info (Fld     : Field;
-                           Lines   : out Line_Count;
-                           Columns : out Column_Count;
-                           Max     : out Natural);
-   --  AKA: dynamic_field_info()
-   pragma Inline (Dynamic_Info);
-
-   --  |=====================================================================
-   --  | Man page form_win.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Window (Frm : Form;
-                         Win : Window);
-   --  AKA: set_form_win()
-   pragma Inline (Set_Window);
-
-   --  |
-   function Get_Window (Frm : Form) return Window;
-   --  AKA: form_win()
-   pragma Inline (Get_Window);
-
-   --  |
-   procedure Set_Sub_Window (Frm : Form;
-                             Win : Window);
-   --  AKA: set_form_sub()
-   pragma Inline (Set_Sub_Window);
-
-   --  |
-   function Get_Sub_Window (Frm : Form) return Window;
-   --  AKA: form_sub()
-   pragma Inline (Get_Sub_Window);
-
-   --  |
-   procedure Scale (Frm     : Form;
-                    Lines   : out Line_Count;
-                    Columns : out Column_Count);
-   --  AKA: scale_form()
-   pragma Inline (Scale);
-
-   --  |=====================================================================
-   --  | Man page form_hook.3x
-   --  |=====================================================================
-
-   type Form_Hook_Function is access procedure (Frm : Form);
-   pragma Convention (C, Form_Hook_Function);
-
-   --  |
-   procedure Set_Field_Init_Hook (Frm  : Form;
-                                  Proc : Form_Hook_Function);
-   --  AKA: set_field_init()
-   pragma Inline (Set_Field_Init_Hook);
-
-   --  |
-   procedure Set_Field_Term_Hook (Frm  : Form;
-                                  Proc : Form_Hook_Function);
-   --  AKA: set_field_term()
-   pragma Inline (Set_Field_Term_Hook);
-
-   --  |
-   procedure Set_Form_Init_Hook (Frm  : Form;
-                                 Proc : Form_Hook_Function);
-   --  AKA: set_form_init()
-   pragma Inline (Set_Form_Init_Hook);
-
-   --  |
-   procedure Set_Form_Term_Hook (Frm  : Form;
-                                 Proc : Form_Hook_Function);
-   --  AKA: set_form_term()
-   pragma Inline (Set_Form_Term_Hook);
-
-   --  |
-   function Get_Field_Init_Hook (Frm : Form) return Form_Hook_Function;
-   --  AKA: field_init()
+   --  |
+   procedure Set_Pad_Character (Fld : Field;
+                                Pad : Character := Space);
+   --  AKA: set_field_pad()
+   pragma Inline (Set_Pad_Character);
+
+   --  |
+   procedure Pad_Character (Fld : Field;
+                            Pad : out Character);
+   --  AKA: field_pad()
+   pragma Inline (Pad_Character);
+
+   --  |=====================================================================
+   --  | Man page form_field_info.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Info (Fld                : Field;
+                   Lines              : out Line_Count;
+                   Columns            : out Column_Count;
+                   First_Row          : out Line_Position;
+                   First_Column       : out Column_Position;
+                   Off_Screen         : out Natural;
+                   Additional_Buffers : out Buffer_Number);
+   --  AKA: field_info()
+   pragma Inline (Info);
+
+   --  |
+   procedure Dynamic_Info (Fld     : Field;
+                           Lines   : out Line_Count;
+                           Columns : out Column_Count;
+                           Max     : out Natural);
+   --  AKA: dynamic_field_info()
+   pragma Inline (Dynamic_Info);
+
+   --  |=====================================================================
+   --  | Man page form_win.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Window (Frm : Form;
+                         Win : Window);
+   --  AKA: set_form_win()
+   pragma Inline (Set_Window);
+
+   --  |
+   function Get_Window (Frm : Form) return Window;
+   --  AKA: form_win()
+   pragma Inline (Get_Window);
+
+   --  |
+   procedure Set_Sub_Window (Frm : Form;
+                             Win : Window);
+   --  AKA: set_form_sub()
+   pragma Inline (Set_Sub_Window);
+
+   --  |
+   function Get_Sub_Window (Frm : Form) return Window;
+   --  AKA: form_sub()
+   pragma Inline (Get_Sub_Window);
+
+   --  |
+   procedure Scale (Frm     : Form;
+                    Lines   : out Line_Count;
+                    Columns : out Column_Count);
+   --  AKA: scale_form()
+   pragma Inline (Scale);
+
+   --  |=====================================================================
+   --  | Man page form_hook.3x
+   --  |=====================================================================
+
+   type Form_Hook_Function is access procedure (Frm : Form);
+   pragma Convention (C, Form_Hook_Function);
+
+   --  |
+   procedure Set_Field_Init_Hook (Frm  : Form;
+                                  Proc : Form_Hook_Function);
+   --  AKA: set_field_init()
+   pragma Inline (Set_Field_Init_Hook);
+
+   --  |
+   procedure Set_Field_Term_Hook (Frm  : Form;
+                                  Proc : Form_Hook_Function);
+   --  AKA: set_field_term()
+   pragma Inline (Set_Field_Term_Hook);
+
+   --  |
+   procedure Set_Form_Init_Hook (Frm  : Form;
+                                 Proc : Form_Hook_Function);
+   --  AKA: set_form_init()
+   pragma Inline (Set_Form_Init_Hook);
+
+   --  |
+   procedure Set_Form_Term_Hook (Frm  : Form;
+                                 Proc : Form_Hook_Function);
+   --  AKA: set_form_term()
+   pragma Inline (Set_Form_Term_Hook);
+
+   --  |
+   function Get_Field_Init_Hook (Frm : Form) return Form_Hook_Function;
+   --  AKA: field_init()
    pragma Import (C, Get_Field_Init_Hook, "field_init");
 
-   --  |
-   function Get_Field_Term_Hook (Frm : Form) return Form_Hook_Function;
-   --  AKA: field_term()
+   --  |
+   function Get_Field_Term_Hook (Frm : Form) return Form_Hook_Function;
+   --  AKA: field_term()
    pragma Import (C, Get_Field_Term_Hook, "field_term");
 
-   --  |
-   function Get_Form_Init_Hook (Frm : Form) return Form_Hook_Function;
-   --  AKA: form_init()
+   --  |
+   function Get_Form_Init_Hook (Frm : Form) return Form_Hook_Function;
+   --  AKA: form_init()
    pragma Import (C, Get_Form_Init_Hook, "form_init");
 
-   --  |
-   function Get_Form_Term_Hook (Frm : Form) return Form_Hook_Function;
-   --  AKA: form_term()
+   --  |
+   function Get_Form_Term_Hook (Frm : Form) return Form_Hook_Function;
+   --  AKA: form_term()
    pragma Import (C, Get_Form_Term_Hook, "form_term");
 
-   --  |=====================================================================
-   --  | Man page form_field.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Redefine (Frm  : Form;
-                       Flds : Field_Array_Access);
-   --  AKA: set_form_fields()
-   pragma Inline (Redefine);
-
-   --  |
-   procedure Set_Fields (Frm  : Form;
-                         Flds : Field_Array_Access) renames Redefine;
-   --  AKA: set_form_fields()
-   --  pragma Inline (Set_Fields);
-
-   --  |
-   function Fields (Frm   : Form;
-                    Index : Positive) return Field;
-   --  AKA: form_fields()
-   pragma Inline (Fields);
-
-   --  |
-   function Field_Count (Frm : Form) return Natural;
-   --  AKA: field_count()
-   pragma Inline (Field_Count);
-
-   --  |
-   procedure Move (Fld    : Field;
-                   Line   : Line_Position;
-                   Column : Column_Position);
-   --  AKA: move_field()
-   pragma Inline (Move);
-
-   --  |=====================================================================
-   --  | Man page form_new.3x
-   --  |=====================================================================
-
-   --  |
-   function Create (Fields : Field_Array_Access) return Form;
-   --  AKA: new_form()
+   --  |=====================================================================
+   --  | Man page form_field.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Redefine (Frm  : Form;
+                       Flds : Field_Array_Access);
+   --  AKA: set_form_fields()
+   pragma Inline (Redefine);
+
+   --  |
+   procedure Set_Fields (Frm  : Form;
+                         Flds : Field_Array_Access) renames Redefine;
+   --  AKA: set_form_fields()
+   --  pragma Inline (Set_Fields);
+
+   --  |
+   function Fields (Frm   : Form;
+                    Index : Positive) return Field;
+   --  AKA: form_fields()
+   pragma Inline (Fields);
+
+   --  |
+   function Field_Count (Frm : Form) return Natural;
+   --  AKA: field_count()
+   pragma Inline (Field_Count);
+
+   --  |
+   procedure Move (Fld    : Field;
+                   Line   : Line_Position;
+                   Column : Column_Position);
+   --  AKA: move_field()
+   pragma Inline (Move);
+
+   --  |=====================================================================
+   --  | Man page form_new.3x
+   --  |=====================================================================
+
+   --  |
+   function Create (Fields : Field_Array_Access) return Form;
+   --  AKA: new_form()
    pragma Inline (Create);
 
-   --  |
-   function New_Form (Fields : Field_Array_Access) return Form
-     renames Create;
-   --  AKA: new_form()
-   --  pragma Inline (New_Form);
+   --  |
+   function New_Form (Fields : Field_Array_Access) return Form
+     renames Create;
+   --  AKA: new_form()
+   --  pragma Inline (New_Form);
 
-   --  |
-   procedure Delete (Frm : in out Form);
-   --  AKA: free_form()
-   --  Reset Frm to Null_Form
+   --  |
+   procedure Delete (Frm : in out Form);
+   --  AKA: free_form()
+   --  Reset Frm to Null_Form
    pragma Inline (Delete);
 
-   --  |=====================================================================
-   --  | Man page form_opts.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page form_opts.3x
+   --  |=====================================================================
 
-   --  |
-   procedure Set_Options (Frm     : Form;
-                          Options : Form_Option_Set);
-   --  AKA: set_form_opts()
+   --  |
+   procedure Set_Options (Frm     : Form;
+                          Options : Form_Option_Set);
+   --  AKA: set_form_opts()
    pragma Inline (Set_Options);
 
-   --  |
-   procedure Switch_Options (Frm     : Form;
-                             Options : Form_Option_Set;
-                             On      : Boolean := True);
-   --  AKA: form_opts_on()
-   --  AKA: form_opts_off()
+   --  |
+   procedure Switch_Options (Frm     : Form;
+                             Options : Form_Option_Set;
+                             On      : Boolean := True);
+   --  AKA: form_opts_on()
+   --  AKA: form_opts_off()
    pragma Inline (Switch_Options);
 
-   --  |
-   procedure Get_Options (Frm     : Form;
-                          Options : out Form_Option_Set);
-   --  AKA: form_opts()
+   --  |
+   procedure Get_Options (Frm     : Form;
+                          Options : out Form_Option_Set);
+   --  AKA: form_opts()
 
-   --  |
-   function Get_Options (Frm : Form := Null_Form) return Form_Option_Set;
-   --  AKA: form_opts()
+   --  |
+   function Get_Options (Frm : Form := Null_Form) return Form_Option_Set;
+   --  AKA: form_opts()
    pragma Inline (Get_Options);
 
-   --  |=====================================================================
-   --  | Man page form_post.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Post (Frm  : Form;
-                   Post : Boolean := True);
-   --  AKA: post_form()
-   --  AKA: unpost_form()
-   pragma Inline (Post);
-
-   --  |=====================================================================
-   --  | Man page form_cursor.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Position_Cursor (Frm : Form);
-   --  AKA: pos_form_cursor()
-   pragma Inline (Position_Cursor);
-
-   --  |=====================================================================
-   --  | Man page form_data.3x
-   --  |=====================================================================
-
-   --  |
-   function Data_Ahead (Frm : Form) return Boolean;
-   --  AKA: data_ahead()
-   pragma Inline (Data_Ahead);
-
-   --  |
-   function Data_Behind (Frm : Form) return Boolean;
-   --  AKA: data_behind()
-   pragma Inline (Data_Behind);
-
-   --  |=====================================================================
-   --  | Man page form_driver.3x
-   --  |=====================================================================
-
-   type Driver_Result is (Form_Ok,
-                          Request_Denied,
-                          Unknown_Request,
-                          Invalid_Field);
-
-   --  |
-   function Driver (Frm : Form;
-                    Key : Key_Code) return Driver_Result;
-   --  AKA: form_driver()
-   --  Driver not inlined
-
-   --  |=====================================================================
-   --  | Man page form_page.3x
-   --  |=====================================================================
-
-   type Page_Number is new Natural;
-
-   --  |
-   procedure Set_Current (Frm : Form;
-                          Fld : Field);
-   --  AKA: set_current_field()
-   pragma Inline (Set_Current);
-
-   --  |
-   function Current (Frm : Form) return Field;
-   --  AKA: current_field()
-   pragma Inline (Current);
-
-   --  |
-   procedure Set_Page (Frm  : Form;
-                       Page : Page_Number := Page_Number'First);
-   --  AKA: set_form_page()
-   pragma Inline (Set_Page);
-
-   --  |
-   function Page (Frm : Form) return Page_Number;
-   --  AKA: form_page()
-   pragma Inline (Page);
-
-   --  |
-   function Get_Index (Fld : Field) return Positive;
-   --  AKA: field_index()
-   --  Please note that in this binding we start the numbering of fields
-   --  with 1. So this is number is one more than you get from the low
-   --  level call.
-   pragma Inline (Get_Index);
-
-   --  |=====================================================================
-   --  | Man page form_new_page.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_New_Page (Fld      : Field;
-                           New_Page : Boolean := True);
-   --  AKA: set_new_page()
-   pragma Inline (Set_New_Page);
-
-   --  |
-   function Is_New_Page (Fld : Field) return Boolean;
-   --  AKA: new_page()
-   pragma Inline (Is_New_Page);
-
-   --  |=====================================================================
-   --  | Man page form_requestname.3x
-   --  |=====================================================================
-   --  Not Implemented: form_request_name, form_request_by_name
-
-------------------------------------------------------------------------------
+   --  |=====================================================================
+   --  | Man page form_post.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Post (Frm  : Form;
+                   Post : Boolean := True);
+   --  AKA: post_form()
+   --  AKA: unpost_form()
+   pragma Inline (Post);
+
+   --  |=====================================================================
+   --  | Man page form_cursor.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Position_Cursor (Frm : Form);
+   --  AKA: pos_form_cursor()
+   pragma Inline (Position_Cursor);
+
+   --  |=====================================================================
+   --  | Man page form_data.3x
+   --  |=====================================================================
+
+   --  |
+   function Data_Ahead (Frm : Form) return Boolean;
+   --  AKA: data_ahead()
+   pragma Inline (Data_Ahead);
+
+   --  |
+   function Data_Behind (Frm : Form) return Boolean;
+   --  AKA: data_behind()
+   pragma Inline (Data_Behind);
+
+   --  |=====================================================================
+   --  | Man page form_driver.3x
+   --  |=====================================================================
+
+   type Driver_Result is (Form_Ok,
+                          Request_Denied,
+                          Unknown_Request,
+                          Invalid_Field);
+
+   --  |
+   function Driver (Frm : Form;
+                    Key : Key_Code) return Driver_Result;
+   --  AKA: form_driver()
+   --  Driver not inlined
+
+   --  |=====================================================================
+   --  | Man page form_page.3x
+   --  |=====================================================================
+
+   type Page_Number is new Natural;
+
+   --  |
+   procedure Set_Current (Frm : Form;
+                          Fld : Field);
+   --  AKA: set_current_field()
+   pragma Inline (Set_Current);
+
+   --  |
+   function Current (Frm : Form) return Field;
+   --  AKA: current_field()
+   pragma Inline (Current);
+
+   --  |
+   procedure Set_Page (Frm  : Form;
+                       Page : Page_Number := Page_Number'First);
+   --  AKA: set_form_page()
+   pragma Inline (Set_Page);
+
+   --  |
+   function Page (Frm : Form) return Page_Number;
+   --  AKA: form_page()
+   pragma Inline (Page);
+
+   --  |
+   function Get_Index (Fld : Field) return Positive;
+   --  AKA: field_index()
+   --  Please note that in this binding we start the numbering of fields
+   --  with 1. So this is number is one more than you get from the low
+   --  level call.
+   pragma Inline (Get_Index);
+
+   --  |=====================================================================
+   --  | Man page form_new_page.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_New_Page (Fld      : Field;
+                           New_Page : Boolean := True);
+   --  AKA: set_new_page()
+   pragma Inline (Set_New_Page);
+
+   --  |
+   function Is_New_Page (Fld : Field) return Boolean;
+   --  AKA: new_page()
+   pragma Inline (Is_New_Page);
+
+   --  |=====================================================================
+   --  | Man page form_requestname.3x
+   --  |=====================================================================
+   --  Not Implemented: form_request_name, form_request_by_name
+
+------------------------------------------------------------------------------
 private
-   type Field is new System.Storage_Elements.Integer_Address;
-   type Form  is new System.Storage_Elements.Integer_Address;
+   type Field is new System.Storage_Elements.Integer_Address;
+   type Form  is new System.Storage_Elements.Integer_Address;
 
-   Null_Field : constant Field := 0;
-   Null_Form  : constant Form  := 0;
+   Null_Field : constant Field := 0;
+   Null_Form  : constant Form  := 0;
 
-end Terminal_Interface.Curses.Forms;
-
+end Terminal_Interface.Curses.Forms; +
diff --git a/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm index 188efdfc..558bbf6a 100644 --- a/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm +++ b/doc/html/ada/terminal_interface-curses-menus-item_user_data__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-menus-item_user_data.adb + + +terminal_interface-curses-menus-item_user_data.adb - - -

File : terminal_interface-curses-menus-item_user_data.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Menus.Item_User_Data             --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1999-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.16 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-menus-item_user_data.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Menus.Item_User_Data             --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1999-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.16 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Menus.Item_User_Data is
+package body Terminal_Interface.Curses.Menus.Item_User_Data is
 
-   procedure Set_User_Data (Itm  : Item;
-                            Data : User_Access)
+   procedure Set_User_Data (Itm  : Item;
+                            Data : User_Access)
    is
-      function Set_Item_Userptr (Itm  : Item;
-                                 Addr : User_Access)  return Eti_Error;
+      function Set_Item_Userptr (Itm  : Item;
+                                 Addr : User_Access)  return Eti_Error;
       pragma Import (C, Set_Item_Userptr, "set_item_userptr");
 
    begin
-      Eti_Exception (Set_Item_Userptr (Itm, Data));
-   end Set_User_Data;
+      Eti_Exception (Set_Item_Userptr (Itm, Data));
+   end Set_User_Data;
 
-   function Get_User_Data (Itm  : Item) return User_Access
+   function Get_User_Data (Itm  : Item) return User_Access
    is
-      function Item_Userptr (Itm : Item) return User_Access;
+      function Item_Userptr (Itm : Item) return User_Access;
       pragma Import (C, Item_Userptr, "item_userptr");
    begin
-      return Item_Userptr (Itm);
-   end Get_User_Data;
+      return Item_Userptr (Itm);
+   end Get_User_Data;
 
-   procedure Get_User_Data (Itm  : Item;
-                            Data : out User_Access)
+   procedure Get_User_Data (Itm  : Item;
+                            Data : out User_Access)
    is
    begin
-      Data := Get_User_Data (Itm);
-   end Get_User_Data;
+      Data := Get_User_Data (Itm);
+   end Get_User_Data;
 
-end Terminal_Interface.Curses.Menus.Item_User_Data;
-
+end Terminal_Interface.Curses.Menus.Item_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm index 3a31918a..44911be9 100644 --- a/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm +++ b/doc/html/ada/terminal_interface-curses-menus-item_user_data__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-menus-item_user_data.ads + + +terminal_interface-curses-menus-item_user_data.ads - - -

File : terminal_interface-curses-menus-item_user_data.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Menus.Item_User_Data             --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2006,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.18 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-menus-item_user_data.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Menus.Item_User_Data             --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2006,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.18 @
+--  @Date: 2020/02/02 23:34:34 @
+--  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 (Terminal_Interface.Curses.Menus.Item_User_Data);
+   type User is limited private;
+   type User_Access is access User;
+package Terminal_Interface.Curses.Menus.Item_User_Data is
+   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
-   --  read or write the user pointer also with the C routines
-   --
-   --  |=====================================================================
-   --  | Man page mitem_userptr.3x
-   --  |=====================================================================
+   --  The binding uses the same user pointer for menu items
+   --  as the low level C implementation. So you can safely
+   --  read or write the user pointer also with the C routines
+   --
+   --  |=====================================================================
+   --  | Man page mitem_userptr.3x
+   --  |=====================================================================
 
-   --  |
-   procedure Set_User_Data (Itm  : Item;
-                            Data : User_Access);
-   --  AKA: set_item_userptr
-   pragma Inline (Set_User_Data);
+   --  |
+   procedure Set_User_Data (Itm  : Item;
+                            Data : User_Access);
+   --  AKA: set_item_userptr
+   pragma Inline (Set_User_Data);
 
-   --  |
-   procedure Get_User_Data (Itm  : Item;
-                            Data : out User_Access);
-   --  AKA: item_userptr
+   --  |
+   procedure Get_User_Data (Itm  : Item;
+                            Data : out User_Access);
+   --  AKA: item_userptr
 
-   --  |
-   function Get_User_Data (Itm  : Item) return User_Access;
-   --  AKA: item_userptr
-   --  Same as function
+   --  |
+   function Get_User_Data (Itm  : Item) return User_Access;
+   --  AKA: item_userptr
+   --  Same as function
    pragma Inline (Get_User_Data);
 
-end Terminal_Interface.Curses.Menus.Item_User_Data;
-
+end Terminal_Interface.Curses.Menus.Item_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm index 3b957c59..12c9eccd 100644 --- a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm +++ b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-menus-menu_user_data.adb + + +terminal_interface-curses-menus-menu_user_data.adb - - -

File : terminal_interface-curses-menus-menu_user_data.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Menus.Menu_User_Data             --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1999-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.17 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+
+

File : terminal_interface-curses-menus-menu_user_data.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Menus.Menu_User_Data             --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1999-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.17 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.Menus.Menu_User_Data is
+package body Terminal_Interface.Curses.Menus.Menu_User_Data is
 
-   procedure Set_User_Data (Men  : Menu;
-                            Data : User_Access)
+   procedure Set_User_Data (Men  : Menu;
+                            Data : User_Access)
    is
-      function Set_Menu_Userptr (Men  : Menu;
-                                 Data : User_Access)  return Eti_Error;
+      function Set_Menu_Userptr (Men  : Menu;
+                                 Data : User_Access)  return Eti_Error;
       pragma Import (C, Set_Menu_Userptr, "set_menu_userptr");
 
    begin
-      Eti_Exception (Set_Menu_Userptr (Men, Data));
+      Eti_Exception (Set_Menu_Userptr (Men, Data));
 
-   end Set_User_Data;
+   end Set_User_Data;
 
-   function Get_User_Data (Men  : Menu) return User_Access
+   function Get_User_Data (Men  : Menu) return User_Access
    is
-      function Menu_Userptr (Men : Menu) return User_Access;
+      function Menu_Userptr (Men : Menu) return User_Access;
       pragma Import (C, Menu_Userptr, "menu_userptr");
    begin
-      return Menu_Userptr (Men);
-   end Get_User_Data;
+      return Menu_Userptr (Men);
+   end Get_User_Data;
 
-   procedure Get_User_Data (Men  : Menu;
-                            Data : out User_Access)
+   procedure Get_User_Data (Men  : Menu;
+                            Data : out User_Access)
    is
    begin
-      Data := Get_User_Data (Men);
-   end Get_User_Data;
+      Data := Get_User_Data (Men);
+   end Get_User_Data;
 
-end Terminal_Interface.Curses.Menus.Menu_User_Data;
-
+end Terminal_Interface.Curses.Menus.Menu_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm index e61d6b28..aa398ef7 100644 --- a/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm +++ b/doc/html/ada/terminal_interface-curses-menus-menu_user_data__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-menus-menu_user_data.ads + + +terminal_interface-curses-menus-menu_user_data.ads - - -

File : terminal_interface-curses-menus-menu_user_data.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Menus.Menu_User_Data             --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.16 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-menus-menu_user_data.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Menus.Menu_User_Data             --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.16 @
+--  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 (Terminal_Interface.Curses.Menus.Menu_User_Data);
+   type User is limited private;
+   type User_Access is access User;
+package Terminal_Interface.Curses.Menus.Menu_User_Data is
+   pragma Preelaborate (Terminal_Interface.Curses.Menus.Menu_User_Data);
 
-   --  |=====================================================================
-   --  | Man page menu_userptr.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page menu_userptr.3x
+   --  |=====================================================================
 
-   --  |
-   procedure Set_User_Data (Men  : Menu;
-                            Data : User_Access);
-   --  AKA: set_menu_userptr
-   pragma Inline (Set_User_Data);
+   --  |
+   procedure Set_User_Data (Men  : Menu;
+                            Data : User_Access);
+   --  AKA: set_menu_userptr
+   pragma Inline (Set_User_Data);
 
-   --  |
-   procedure Get_User_Data (Men  : Menu;
-                            Data : out User_Access);
-   --  AKA: menu_userptr
+   --  |
+   procedure Get_User_Data (Men  : Menu;
+                            Data : out User_Access);
+   --  AKA: menu_userptr
 
-   --  |
-   function Get_User_Data (Men  : Menu) return User_Access;
-   --  AKA: menu_userptr
-   --  Same as function
+   --  |
+   function Get_User_Data (Men  : Menu) return User_Access;
+   --  AKA: menu_userptr
+   --  Same as function
    pragma Inline (Get_User_Data);
 
-end Terminal_Interface.Curses.Menus.Menu_User_Data;
-
+end Terminal_Interface.Curses.Menus.Menu_User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-menus__adb.htm b/doc/html/ada/terminal_interface-curses-menus__adb.htm index d9d25134..56027338 100644 --- a/doc/html/ada/terminal_interface-curses-menus__adb.htm +++ b/doc/html/ada/terminal_interface-curses-menus__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-menus.adb + + +terminal_interface-curses-menus.adb - - -

File : terminal_interface-curses-menus.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Menus                     --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.34 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-menus.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Menus                     --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.34 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Unchecked_Deallocation;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Interfaces.C.Pointers;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Interfaces.C.Pointers;
 
-package body Terminal_Interface.Curses.Menus is
+package body Terminal_Interface.Curses.Menus is
 
-   type C_Item_Array is array (Natural range <>) of aliased Item;
+   type C_Item_Array is array (Natural range <>) of aliased Item;
    package I_Array is new
-     Interfaces.C.Pointers (Natural, Item, C_Item_Array, Null_Item);
+     Interfaces.C.Pointers (Natural, Item, C_Item_Array, Null_Item);
 
-   subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
+   subtype chars_ptr is Interfaces.C.Strings.chars_ptr;
 
-------------------------------------------------------------------------------
-   procedure Request_Name (Key  : Menu_Request_Code;
-                           Name : out String)
+------------------------------------------------------------------------------
+   procedure Request_Name (Key  : Menu_Request_Code;
+                           Name : out String)
    is
-      function Request_Name (Key : C_Int) return chars_ptr;
+      function Request_Name (Key : C_Int) return chars_ptr;
       pragma Import (C, Request_Name, "menu_request_name");
    begin
-      Fill_String (Request_Name (C_Int (Key)), Name);
-   end Request_Name;
+      Fill_String (Request_Name (C_Int (Key)), Name);
+   end Request_Name;
 
-   function Request_Name (Key : Menu_Request_Code) return String
+   function Request_Name (Key : Menu_Request_Code) return String
    is
-      function Request_Name (Key : C_Int) return chars_ptr;
+      function Request_Name (Key : C_Int) return chars_ptr;
       pragma Import (C, Request_Name, "menu_request_name");
    begin
-      return Fill_String (Request_Name (C_Int (Key)));
-   end Request_Name;
+      return Fill_String (Request_Name (C_Int (Key)));
+   end Request_Name;
 
-   function Create (Name        : String;
-                    Description : String := "") return Item
+   function Create (Name        : String;
+                    Description : String := "") return Item
    is
-      type Char_Ptr is access all Interfaces.C.char;
-      function Newitem (Name, Desc : Char_Ptr) return Item;
+      type Char_Ptr is access all Interfaces.C.char;
+      function Newitem (Name, Desc : Char_Ptr) return Item;
       pragma Import (C, Newitem, "new_item");
 
-      type Name_String is new char_array (0 .. Name'Length);
-      type Name_String_Ptr is access Name_String;
-      pragma Controlled (Name_String_Ptr);
-
-      type Desc_String is new char_array (0 .. Description'Length);
-      type Desc_String_Ptr is access Desc_String;
-      pragma Controlled (Desc_String_Ptr);
-
-      Name_Str : constant Name_String_Ptr := new Name_String;
-      Desc_Str : constant Desc_String_Ptr := new Desc_String;
-      Name_Len, Desc_Len : size_t;
-      Result : Item;
-   begin
-      To_C (Name, Name_Str.all, Name_Len);
-      To_C (Description, Desc_Str.all, Desc_Len);
-      Result := Newitem (Name_Str.all (Name_Str.all'First)'Access,
-                         Desc_Str.all (Desc_Str.all'First)'Access);
-      if Result = Null_Item then
-         raise Eti_System_Error;
+      type Name_String is new char_array (0 .. Name'Length);
+      type Name_String_Ptr is access Name_String;
+      pragma Controlled (Name_String_Ptr);
+
+      type Desc_String is new char_array (0 .. Description'Length);
+      type Desc_String_Ptr is access Desc_String;
+      pragma Controlled (Desc_String_Ptr);
+
+      Name_Str : constant Name_String_Ptr := new Name_String;
+      Desc_Str : constant Desc_String_Ptr := new Desc_String;
+      Name_Len, Desc_Len : size_t;
+      Result : Item;
+   begin
+      To_C (Name, Name_Str.all, Name_Len);
+      To_C (Description, Desc_Str.all, Desc_Len);
+      Result := Newitem (Name_Str.all (Name_Str.all'First)'Access,
+                         Desc_Str.all (Desc_Str.all'First)'Access);
+      if Result = Null_Item then
+         raise Eti_System_Error;
       end if;
-      return Result;
-   end Create;
+      return Result;
+   end Create;
 
-   procedure Delete (Itm : in out Item)
+   procedure Delete (Itm : in out Item)
    is
-      function Descname (Itm  : Item) return chars_ptr;
+      function Descname (Itm  : Item) return chars_ptr;
       pragma Import (C, Descname, "item_description");
-      function Itemname (Itm  : Item) return chars_ptr;
+      function Itemname (Itm  : Item) return chars_ptr;
       pragma Import (C, Itemname, "item_name");
 
-      function Freeitem (Itm : Item) return Eti_Error;
+      function Freeitem (Itm : Item) return Eti_Error;
       pragma Import (C, Freeitem, "free_item");
 
-      Ptr : chars_ptr;
+      Ptr : chars_ptr;
    begin
-      Ptr := Descname (Itm);
-      if Ptr /= Null_Ptr then
-         Interfaces.C.Strings.Free (Ptr);
+      Ptr := Descname (Itm);
+      if Ptr /= Null_Ptr then
+         Interfaces.C.Strings.Free (Ptr);
       end if;
-      Ptr := Itemname (Itm);
-      if Ptr /= Null_Ptr then
-         Interfaces.C.Strings.Free (Ptr);
+      Ptr := Itemname (Itm);
+      if Ptr /= Null_Ptr then
+         Interfaces.C.Strings.Free (Ptr);
       end if;
-      Eti_Exception (Freeitem (Itm));
-      Itm := Null_Item;
-   end Delete;
--------------------------------------------------------------------------------
-   procedure Set_Value (Itm   : Item;
-                        Value : Boolean := True)
-   is
-      function Set_Item_Val (Itm : Item;
-                             Val : C_Int) return Eti_Error;
+      Eti_Exception (Freeitem (Itm));
+      Itm := Null_Item;
+   end Delete;
+-------------------------------------------------------------------------------
+   procedure Set_Value (Itm   : Item;
+                        Value : Boolean := True)
+   is
+      function Set_Item_Val (Itm : Item;
+                             Val : C_Int) return Eti_Error;
       pragma Import (C, Set_Item_Val, "set_item_value");
 
    begin
-      Eti_Exception (Set_Item_Val (Itm, Boolean'Pos (Value)));
-   end Set_Value;
+      Eti_Exception (Set_Item_Val (Itm, Boolean'Pos (Value)));
+   end Set_Value;
 
-   function Value (Itm : Item) return Boolean
+   function Value (Itm : Item) return Boolean
    is
-      function Item_Val (Itm : Item) return C_Int;
+      function Item_Val (Itm : Item) return C_Int;
       pragma Import (C, Item_Val, "item_value");
    begin
-      if Item_Val (Itm) = Curses_False then
+      if Item_Val (Itm) = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Value;
+   end Value;
 
--------------------------------------------------------------------------------
-   function Visible (Itm : Item) return Boolean
+-------------------------------------------------------------------------------
+   function Visible (Itm : Item) return Boolean
    is
-      function Item_Vis (Itm : Item) return C_Int;
+      function Item_Vis (Itm : Item) return C_Int;
       pragma Import (C, Item_Vis, "item_visible");
    begin
-      if Item_Vis (Itm) = Curses_False then
+      if Item_Vis (Itm) = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Visible;
--------------------------------------------------------------------------------
-   procedure Set_Options (Itm     : Item;
-                          Options : Item_Option_Set)
+   end Visible;
+-------------------------------------------------------------------------------
+   procedure Set_Options (Itm     : Item;
+                          Options : Item_Option_Set)
    is
-      function Set_Item_Opts (Itm : Item;
-                              Opt : Item_Option_Set) return Eti_Error;
+      function Set_Item_Opts (Itm : Item;
+                              Opt : Item_Option_Set) return Eti_Error;
       pragma Import (C, Set_Item_Opts, "set_item_opts");
 
    begin
-      Eti_Exception (Set_Item_Opts (Itm, Options));
-   end Set_Options;
+      Eti_Exception (Set_Item_Opts (Itm, Options));
+   end Set_Options;
 
-   procedure Switch_Options (Itm     : Item;
-                             Options : Item_Option_Set;
-                             On      : Boolean := True)
+   procedure Switch_Options (Itm     : Item;
+                             Options : Item_Option_Set;
+                             On      : Boolean := True)
    is
-      function Item_Opts_On (Itm : Item;
-                             Opt : Item_Option_Set) return Eti_Error;
+      function Item_Opts_On (Itm : Item;
+                             Opt : Item_Option_Set) return Eti_Error;
       pragma Import (C, Item_Opts_On, "item_opts_on");
-      function Item_Opts_Off (Itm : Item;
-                              Opt : Item_Option_Set) return Eti_Error;
+      function Item_Opts_Off (Itm : Item;
+                              Opt : Item_Option_Set) return Eti_Error;
       pragma Import (C, Item_Opts_Off, "item_opts_off");
 
    begin
-      if On then
-         Eti_Exception (Item_Opts_On (Itm, Options));
+      if On then
+         Eti_Exception (Item_Opts_On (Itm, Options));
       else
-         Eti_Exception (Item_Opts_Off (Itm, Options));
+         Eti_Exception (Item_Opts_Off (Itm, Options));
       end if;
-   end Switch_Options;
+   end Switch_Options;
 
-   procedure Get_Options (Itm     : Item;
-                          Options : out Item_Option_Set)
+   procedure Get_Options (Itm     : Item;
+                          Options : out Item_Option_Set)
    is
-      function Item_Opts (Itm : Item) return Item_Option_Set;
+      function Item_Opts (Itm : Item) return Item_Option_Set;
       pragma Import (C, Item_Opts, "item_opts");
 
    begin
-      Options := Item_Opts (Itm);
-   end Get_Options;
+      Options := Item_Opts (Itm);
+   end Get_Options;
 
-   function Get_Options (Itm : Item := Null_Item) return Item_Option_Set
+   function Get_Options (Itm : Item := Null_Item) return Item_Option_Set
    is
-      Ios : Item_Option_Set;
+      Ios : Item_Option_Set;
    begin
-      Get_Options (Itm, Ios);
-      return Ios;
-   end Get_Options;
--------------------------------------------------------------------------------
-   procedure Name (Itm  : Item;
-                   Name : out String)
+      Get_Options (Itm, Ios);
+      return Ios;
+   end Get_Options;
+-------------------------------------------------------------------------------
+   procedure Name (Itm  : Item;
+                   Name : out String)
    is
-      function Itemname (Itm : Item) return chars_ptr;
+      function Itemname (Itm : Item) return chars_ptr;
       pragma Import (C, Itemname, "item_name");
    begin
-      Fill_String (Itemname (Itm), Name);
-   end Name;
+      Fill_String (Itemname (Itm), Name);
+   end Name;
 
-   function Name (Itm : Item) return String
+   function Name (Itm : Item) return String
    is
-      function Itemname (Itm : Item) return chars_ptr;
+      function Itemname (Itm : Item) return chars_ptr;
       pragma Import (C, Itemname, "item_name");
    begin
-      return Fill_String (Itemname (Itm));
-   end Name;
+      return Fill_String (Itemname (Itm));
+   end Name;
 
-   procedure Description (Itm         : Item;
-                          Description : out String)
+   procedure Description (Itm         : Item;
+                          Description : out String)
    is
-      function Descname (Itm  : Item) return chars_ptr;
+      function Descname (Itm  : Item) return chars_ptr;
       pragma Import (C, Descname, "item_description");
    begin
-      Fill_String (Descname (Itm), Description);
-   end Description;
+      Fill_String (Descname (Itm), Description);
+   end Description;
 
-   function Description (Itm : Item) return String
+   function Description (Itm : Item) return String
    is
-      function Descname (Itm  : Item) return chars_ptr;
+      function Descname (Itm  : Item) return chars_ptr;
       pragma Import (C, Descname, "item_description");
    begin
-      return Fill_String (Descname (Itm));
-   end Description;
--------------------------------------------------------------------------------
-   procedure Set_Current (Men : Menu;
-                          Itm : Item)
+      return Fill_String (Descname (Itm));
+   end Description;
+-------------------------------------------------------------------------------
+   procedure Set_Current (Men : Menu;
+                          Itm : Item)
    is
-      function Set_Curr_Item (Men : Menu;
-                              Itm : Item) return Eti_Error;
+      function Set_Curr_Item (Men : Menu;
+                              Itm : Item) return Eti_Error;
       pragma Import (C, Set_Curr_Item, "set_current_item");
 
    begin
-      Eti_Exception (Set_Curr_Item (Men, Itm));
-   end Set_Current;
+      Eti_Exception (Set_Curr_Item (Men, Itm));
+   end Set_Current;
 
-   function Current (Men : Menu) return Item
+   function Current (Men : Menu) return Item
    is
-      function Curr_Item (Men : Menu) return Item;
+      function Curr_Item (Men : Menu) return Item;
       pragma Import (C, Curr_Item, "current_item");
 
-      Res : constant Item := Curr_Item (Men);
+      Res : constant Item := Curr_Item (Men);
    begin
-      if Res = Null_Item then
-         raise Menu_Exception;
+      if Res = Null_Item then
+         raise Menu_Exception;
       end if;
-      return Res;
-   end Current;
+      return Res;
+   end Current;
 
-   procedure Set_Top_Row (Men  : Menu;
-                          Line : Line_Position)
+   procedure Set_Top_Row (Men  : Menu;
+                          Line : Line_Position)
    is
-      function Set_Toprow (Men  : Menu;
-                           Line : C_Int) return Eti_Error;
+      function Set_Toprow (Men  : Menu;
+                           Line : C_Int) return Eti_Error;
       pragma Import (C, Set_Toprow, "set_top_row");
 
    begin
-      Eti_Exception (Set_Toprow (Men, C_Int (Line)));
-   end Set_Top_Row;
+      Eti_Exception (Set_Toprow (Men, C_Int (Line)));
+   end Set_Top_Row;
 
-   function Top_Row (Men : Menu) return Line_Position
+   function Top_Row (Men : Menu) return Line_Position
    is
-      function Toprow (Men : Menu) return C_Int;
+      function Toprow (Men : Menu) return C_Int;
       pragma Import (C, Toprow, "top_row");
 
-      Res : constant C_Int := Toprow (Men);
+      Res : constant C_Int := Toprow (Men);
    begin
-      if Res = Curses_Err then
-         raise Menu_Exception;
+      if Res = Curses_Err then
+         raise Menu_Exception;
       end if;
-      return Line_Position (Res);
-   end Top_Row;
+      return Line_Position (Res);
+   end Top_Row;
 
-   function Get_Index (Itm : Item) return Positive
+   function Get_Index (Itm : Item) return Positive
    is
-      function Get_Itemindex (Itm : Item) return C_Int;
+      function Get_Itemindex (Itm : Item) return C_Int;
       pragma Import (C, Get_Itemindex, "item_index");
 
-      Res : constant C_Int := Get_Itemindex (Itm);
+      Res : constant C_Int := Get_Itemindex (Itm);
    begin
-      if Res = Curses_Err then
-         raise Menu_Exception;
+      if Res = Curses_Err then
+         raise Menu_Exception;
       end if;
-      return Positive (Natural (Res) + Positive'First);
-   end Get_Index;
--------------------------------------------------------------------------------
-   procedure Post (Men  : Menu;
-                   Post : Boolean := True)
+      return Positive (Natural (Res) + Positive'First);
+   end Get_Index;
+-------------------------------------------------------------------------------
+   procedure Post (Men  : Menu;
+                   Post : Boolean := True)
    is
-      function M_Post (Men : Menu) return Eti_Error;
+      function M_Post (Men : Menu) return Eti_Error;
       pragma Import (C, M_Post, "post_menu");
-      function M_Unpost (Men : Menu) return Eti_Error;
+      function M_Unpost (Men : Menu) return Eti_Error;
       pragma Import (C, M_Unpost, "unpost_menu");
 
    begin
-      if Post then
-         Eti_Exception (M_Post (Men));
+      if Post then
+         Eti_Exception (M_Post (Men));
       else
-         Eti_Exception (M_Unpost (Men));
+         Eti_Exception (M_Unpost (Men));
       end if;
-   end Post;
--------------------------------------------------------------------------------
-   procedure Set_Options (Men     : Menu;
-                          Options : Menu_Option_Set)
+   end Post;
+-------------------------------------------------------------------------------
+   procedure Set_Options (Men     : Menu;
+                          Options : Menu_Option_Set)
    is
-      function Set_Menu_Opts (Men : Menu;
-                              Opt : Menu_Option_Set) return Eti_Error;
+      function Set_Menu_Opts (Men : Menu;
+                              Opt : Menu_Option_Set) return Eti_Error;
       pragma Import (C, Set_Menu_Opts, "set_menu_opts");
 
    begin
-      Eti_Exception (Set_Menu_Opts (Men, Options));
-   end Set_Options;
+      Eti_Exception (Set_Menu_Opts (Men, Options));
+   end Set_Options;
 
-   procedure Switch_Options (Men     : Menu;
-                             Options : Menu_Option_Set;
-                             On      : Boolean := True)
+   procedure Switch_Options (Men     : Menu;
+                             Options : Menu_Option_Set;
+                             On      : Boolean := True)
    is
-      function Menu_Opts_On (Men : Menu;
-                             Opt : Menu_Option_Set) return Eti_Error;
+      function Menu_Opts_On (Men : Menu;
+                             Opt : Menu_Option_Set) return Eti_Error;
       pragma Import (C, Menu_Opts_On, "menu_opts_on");
-      function Menu_Opts_Off (Men : Menu;
-                              Opt : Menu_Option_Set) return Eti_Error;
+      function Menu_Opts_Off (Men : Menu;
+                              Opt : Menu_Option_Set) return Eti_Error;
       pragma Import (C, Menu_Opts_Off, "menu_opts_off");
 
    begin
-      if On then
-         Eti_Exception (Menu_Opts_On  (Men, Options));
+      if On then
+         Eti_Exception (Menu_Opts_On  (Men, Options));
       else
-         Eti_Exception (Menu_Opts_Off (Men, Options));
+         Eti_Exception (Menu_Opts_Off (Men, Options));
       end if;
-   end Switch_Options;
+   end Switch_Options;
 
-   procedure Get_Options (Men     : Menu;
-                          Options : out Menu_Option_Set)
+   procedure Get_Options (Men     : Menu;
+                          Options : out Menu_Option_Set)
    is
-      function Menu_Opts (Men : Menu) return Menu_Option_Set;
+      function Menu_Opts (Men : Menu) return Menu_Option_Set;
       pragma Import (C, Menu_Opts, "menu_opts");
 
    begin
-      Options := Menu_Opts (Men);
-   end Get_Options;
+      Options := Menu_Opts (Men);
+   end Get_Options;
 
-   function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set
+   function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set
    is
-      Mos : Menu_Option_Set;
+      Mos : Menu_Option_Set;
    begin
-      Get_Options (Men, Mos);
-      return Mos;
-   end Get_Options;
--------------------------------------------------------------------------------
-   procedure Set_Window (Men : Menu;
-                         Win : Window)
+      Get_Options (Men, Mos);
+      return Mos;
+   end Get_Options;
+-------------------------------------------------------------------------------
+   procedure Set_Window (Men : Menu;
+                         Win : Window)
    is
-      function Set_Menu_Win (Men : Menu;
-                             Win : Window) return Eti_Error;
+      function Set_Menu_Win (Men : Menu;
+                             Win : Window) return Eti_Error;
       pragma Import (C, Set_Menu_Win, "set_menu_win");
 
    begin
-      Eti_Exception (Set_Menu_Win (Men, Win));
-   end Set_Window;
+      Eti_Exception (Set_Menu_Win (Men, Win));
+   end Set_Window;
 
-   function Get_Window (Men : Menu) return Window
+   function Get_Window (Men : Menu) return Window
    is
-      function Menu_Win (Men : Menu) return Window;
+      function Menu_Win (Men : Menu) return Window;
       pragma Import (C, Menu_Win, "menu_win");
 
-      W : constant Window := Menu_Win (Men);
+      W : constant Window := Menu_Win (Men);
    begin
-      return W;
-   end Get_Window;
+      return W;
+   end Get_Window;
 
-   procedure Set_Sub_Window (Men : Menu;
-                             Win : Window)
+   procedure Set_Sub_Window (Men : Menu;
+                             Win : Window)
    is
-      function Set_Menu_Sub (Men : Menu;
-                             Win : Window) return Eti_Error;
+      function Set_Menu_Sub (Men : Menu;
+                             Win : Window) return Eti_Error;
       pragma Import (C, Set_Menu_Sub, "set_menu_sub");
 
    begin
-      Eti_Exception (Set_Menu_Sub (Men, Win));
-   end Set_Sub_Window;
+      Eti_Exception (Set_Menu_Sub (Men, Win));
+   end Set_Sub_Window;
 
-   function Get_Sub_Window (Men : Menu) return Window
+   function Get_Sub_Window (Men : Menu) return Window
    is
-      function Menu_Sub (Men : Menu) return Window;
+      function Menu_Sub (Men : Menu) return Window;
       pragma Import (C, Menu_Sub, "menu_sub");
 
-      W : constant Window := Menu_Sub (Men);
+      W : constant Window := Menu_Sub (Men);
    begin
-      return W;
-   end Get_Sub_Window;
+      return W;
+   end Get_Sub_Window;
 
-   procedure Scale (Men     : Menu;
-                    Lines   : out Line_Count;
-                    Columns : out Column_Count)
+   procedure Scale (Men     : Menu;
+                    Lines   : out Line_Count;
+                    Columns : out Column_Count)
    is
-      type C_Int_Access is access all C_Int;
-      function M_Scale (Men    : Menu;
-                        Yp, Xp : C_Int_Access) return Eti_Error;
+      type C_Int_Access is access all C_Int;
+      function M_Scale (Men    : Menu;
+                        Yp, Xp : C_Int_Access) return Eti_Error;
       pragma Import (C, M_Scale, "scale_menu");
 
-      X, Y : aliased C_Int;
+      X, Y : aliased C_Int;
    begin
-      Eti_Exception (M_Scale (Men, Y'Access, X'Access));
-      Lines := Line_Count (Y);
-      Columns := Column_Count (X);
-   end Scale;
--------------------------------------------------------------------------------
-   procedure Position_Cursor (Men : Menu)
+      Eti_Exception (M_Scale (Men, Y'Access, X'Access));
+      Lines := Line_Count (Y);
+      Columns := Column_Count (X);
+   end Scale;
+-------------------------------------------------------------------------------
+   procedure Position_Cursor (Men : Menu)
    is
-      function Pos_Menu_Cursor (Men : Menu) return Eti_Error;
+      function Pos_Menu_Cursor (Men : Menu) return Eti_Error;
       pragma Import (C, Pos_Menu_Cursor, "pos_menu_cursor");
 
    begin
-      Eti_Exception (Pos_Menu_Cursor (Men));
-   end Position_Cursor;
+      Eti_Exception (Pos_Menu_Cursor (Men));
+   end Position_Cursor;
 
--------------------------------------------------------------------------------
-   procedure Set_Mark (Men  : Menu;
-                       Mark : String)
+-------------------------------------------------------------------------------
+   procedure Set_Mark (Men  : Menu;
+                       Mark : String)
    is
-      type Char_Ptr is access all Interfaces.C.char;
-      function Set_Mark (Men  : Menu;
-                         Mark : Char_Ptr) return Eti_Error;
+      type Char_Ptr is access all Interfaces.C.char;
+      function Set_Mark (Men  : Menu;
+                         Mark : Char_Ptr) return Eti_Error;
       pragma Import (C, Set_Mark, "set_menu_mark");
 
-      Txt : char_array (0 .. Mark'Length);
-      Len : size_t;
+      Txt : char_array (0 .. Mark'Length);
+      Len : size_t;
    begin
-      To_C (Mark, Txt, Len);
-      Eti_Exception (Set_Mark (Men, Txt (Txt'First)'Access));
-   end Set_Mark;
+      To_C (Mark, Txt, Len);
+      Eti_Exception (Set_Mark (Men, Txt (Txt'First)'Access));
+   end Set_Mark;
 
-   procedure Mark (Men  : Menu;
-                   Mark : out String)
+   procedure Mark (Men  : Menu;
+                   Mark : out String)
    is
-      function Get_Menu_Mark (Men : Menu) return chars_ptr;
+      function Get_Menu_Mark (Men : Menu) return chars_ptr;
       pragma Import (C, Get_Menu_Mark, "menu_mark");
    begin
-      Fill_String (Get_Menu_Mark (Men), Mark);
-   end Mark;
+      Fill_String (Get_Menu_Mark (Men), Mark);
+   end Mark;
 
-   function Mark (Men : Menu) return String
+   function Mark (Men : Menu) return String
    is
-      function Get_Menu_Mark (Men : Menu) return chars_ptr;
+      function Get_Menu_Mark (Men : Menu) return chars_ptr;
       pragma Import (C, Get_Menu_Mark, "menu_mark");
    begin
-      return Fill_String (Get_Menu_Mark (Men));
-   end Mark;
+      return Fill_String (Get_Menu_Mark (Men));
+   end Mark;
 
--------------------------------------------------------------------------------
-   procedure Set_Foreground
-     (Men   : Menu;
-      Fore  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First)
+-------------------------------------------------------------------------------
+   procedure Set_Foreground
+     (Men   : Menu;
+      Fore  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First)
    is
-      function Set_Menu_Fore (Men  : Menu;
-                              Attr : Attributed_Character) return Eti_Error;
+      function Set_Menu_Fore (Men  : Menu;
+                              Attr : Attributed_Character) return Eti_Error;
       pragma Import (C, Set_Menu_Fore, "set_menu_fore");
 
-      Ch : constant Attributed_Character := (Ch    => Character'First,
-                                             Color => Color,
-                                             Attr  => Fore);
+      Ch : constant Attributed_Character := (Ch    => Character'First,
+                                             Color => Color,
+                                             Attr  => Fore);
    begin
-      Eti_Exception (Set_Menu_Fore (Men, Ch));
-   end Set_Foreground;
+      Eti_Exception (Set_Menu_Fore (Men, Ch));
+   end Set_Foreground;
 
-   procedure Foreground (Men  : Menu;
-                         Fore : out Character_Attribute_Set)
+   procedure Foreground (Men  : Menu;
+                         Fore : out Character_Attribute_Set)
    is
-      function Menu_Fore (Men : Menu) return Attributed_Character;
+      function Menu_Fore (Men : Menu) return Attributed_Character;
       pragma Import (C, Menu_Fore, "menu_fore");
    begin
-      Fore := Menu_Fore (Men).Attr;
-   end Foreground;
+      Fore := Menu_Fore (Men).Attr;
+   end Foreground;
 
-   procedure Foreground (Men   : Menu;
-                         Fore  : out Character_Attribute_Set;
-                         Color : out Color_Pair)
+   procedure Foreground (Men   : Menu;
+                         Fore  : out Character_Attribute_Set;
+                         Color : out Color_Pair)
    is
-      function Menu_Fore (Men : Menu) return Attributed_Character;
+      function Menu_Fore (Men : Menu) return Attributed_Character;
       pragma Import (C, Menu_Fore, "menu_fore");
    begin
-      Fore  := Menu_Fore (Men).Attr;
-      Color := Menu_Fore (Men).Color;
-   end Foreground;
+      Fore  := Menu_Fore (Men).Attr;
+      Color := Menu_Fore (Men).Color;
+   end Foreground;
 
-   procedure Set_Background
-     (Men   : Menu;
-      Back  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First)
+   procedure Set_Background
+     (Men   : Menu;
+      Back  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First)
    is
-      function Set_Menu_Back (Men  : Menu;
-                              Attr : Attributed_Character) return Eti_Error;
+      function Set_Menu_Back (Men  : Menu;
+                              Attr : Attributed_Character) return Eti_Error;
       pragma Import (C, Set_Menu_Back, "set_menu_back");
 
-      Ch : constant Attributed_Character := (Ch    => Character'First,
-                                             Color => Color,
-                                             Attr  => Back);
+      Ch : constant Attributed_Character := (Ch    => Character'First,
+                                             Color => Color,
+                                             Attr  => Back);
    begin
-      Eti_Exception (Set_Menu_Back (Men, Ch));
-   end Set_Background;
+      Eti_Exception (Set_Menu_Back (Men, Ch));
+   end Set_Background;
 
-   procedure Background (Men  : Menu;
-                         Back : out Character_Attribute_Set)
+   procedure Background (Men  : Menu;
+                         Back : out Character_Attribute_Set)
    is
-      function Menu_Back (Men : Menu) return Attributed_Character;
+      function Menu_Back (Men : Menu) return Attributed_Character;
       pragma Import (C, Menu_Back, "menu_back");
    begin
-      Back := Menu_Back (Men).Attr;
-   end Background;
+      Back := Menu_Back (Men).Attr;
+   end Background;
 
-   procedure Background (Men   : Menu;
-                         Back  : out Character_Attribute_Set;
-                         Color : out Color_Pair)
+   procedure Background (Men   : Menu;
+                         Back  : out Character_Attribute_Set;
+                         Color : out Color_Pair)
    is
-      function Menu_Back (Men : Menu) return Attributed_Character;
+      function Menu_Back (Men : Menu) return Attributed_Character;
       pragma Import (C, Menu_Back, "menu_back");
    begin
-      Back  := Menu_Back (Men).Attr;
-      Color := Menu_Back (Men).Color;
-   end Background;
+      Back  := Menu_Back (Men).Attr;
+      Color := Menu_Back (Men).Color;
+   end Background;
 
-   procedure Set_Grey (Men   : Menu;
-                       Grey  : Character_Attribute_Set := Normal_Video;
-                       Color : Color_Pair := Color_Pair'First)
+   procedure Set_Grey (Men   : Menu;
+                       Grey  : Character_Attribute_Set := Normal_Video;
+                       Color : Color_Pair := Color_Pair'First)
    is
-      function Set_Menu_Grey (Men  : Menu;
-                              Attr : Attributed_Character) return Eti_Error;
+      function Set_Menu_Grey (Men  : Menu;
+                              Attr : Attributed_Character) return Eti_Error;
       pragma Import (C, Set_Menu_Grey, "set_menu_grey");
 
-      Ch : constant Attributed_Character := (Ch    => Character'First,
-                                             Color => Color,
-                                             Attr  => Grey);
+      Ch : constant Attributed_Character := (Ch    => Character'First,
+                                             Color => Color,
+                                             Attr  => Grey);
 
    begin
-      Eti_Exception (Set_Menu_Grey (Men, Ch));
-   end Set_Grey;
+      Eti_Exception (Set_Menu_Grey (Men, Ch));
+   end Set_Grey;
 
-   procedure Grey (Men  : Menu;
-                   Grey : out Character_Attribute_Set)
+   procedure Grey (Men  : Menu;
+                   Grey : out Character_Attribute_Set)
    is
-      function Menu_Grey (Men : Menu) return Attributed_Character;
+      function Menu_Grey (Men : Menu) return Attributed_Character;
       pragma Import (C, Menu_Grey, "menu_grey");
    begin
-      Grey := Menu_Grey (Men).Attr;
-   end Grey;
+      Grey := Menu_Grey (Men).Attr;
+   end Grey;
 
-   procedure Grey (Men  : Menu;
-                   Grey : out Character_Attribute_Set;
-                   Color : out Color_Pair)
+   procedure Grey (Men  : Menu;
+                   Grey : out Character_Attribute_Set;
+                   Color : out Color_Pair)
    is
-      function Menu_Grey (Men : Menu) return Attributed_Character;
+      function Menu_Grey (Men : Menu) return Attributed_Character;
       pragma Import (C, Menu_Grey, "menu_grey");
    begin
-      Grey  := Menu_Grey (Men).Attr;
-      Color := Menu_Grey (Men).Color;
-   end Grey;
+      Grey  := Menu_Grey (Men).Attr;
+      Color := Menu_Grey (Men).Color;
+   end Grey;
 
-   procedure Set_Pad_Character (Men : Menu;
-                                Pad : Character := Space)
+   procedure Set_Pad_Character (Men : Menu;
+                                Pad : Character := Space)
    is
-      function Set_Menu_Pad (Men : Menu;
-                             Ch  : C_Int) return Eti_Error;
+      function Set_Menu_Pad (Men : Menu;
+                             Ch  : C_Int) return Eti_Error;
       pragma Import (C, Set_Menu_Pad, "set_menu_pad");
 
    begin
-      Eti_Exception (Set_Menu_Pad (Men, C_Int (Character'Pos (Pad))));
-   end Set_Pad_Character;
+      Eti_Exception (Set_Menu_Pad (Men, C_Int (Character'Pos (Pad))));
+   end Set_Pad_Character;
 
-   procedure Pad_Character (Men : Menu;
-                            Pad : out Character)
+   procedure Pad_Character (Men : Menu;
+                            Pad : out Character)
    is
-      function Menu_Pad (Men : Menu) return C_Int;
+      function Menu_Pad (Men : Menu) return C_Int;
       pragma Import (C, Menu_Pad, "menu_pad");
    begin
-      Pad := Character'Val (Menu_Pad (Men));
-   end Pad_Character;
--------------------------------------------------------------------------------
-   procedure Set_Spacing (Men   : Menu;
-                          Descr : Column_Position := 0;
-                          Row   : Line_Position   := 0;
-                          Col   : Column_Position := 0)
+      Pad := Character'Val (Menu_Pad (Men));
+   end Pad_Character;
+-------------------------------------------------------------------------------
+   procedure Set_Spacing (Men   : Menu;
+                          Descr : Column_Position := 0;
+                          Row   : Line_Position   := 0;
+                          Col   : Column_Position := 0)
    is
-      function Set_Spacing (Men     : Menu;
-                            D, R, C : C_Int) return Eti_Error;
+      function Set_Spacing (Men     : Menu;
+                            D, R, C : C_Int) return Eti_Error;
       pragma Import (C, Set_Spacing, "set_menu_spacing");
 
    begin
-      Eti_Exception (Set_Spacing (Men,
-                                  C_Int (Descr),
-                                  C_Int (Row),
-                                  C_Int (Col)));
-   end Set_Spacing;
+      Eti_Exception (Set_Spacing (Men,
+                                  C_Int (Descr),
+                                  C_Int (Row),
+                                  C_Int (Col)));
+   end Set_Spacing;
 
-   procedure Spacing (Men   : Menu;
-                      Descr : out Column_Position;
-                      Row   : out Line_Position;
-                      Col   : out Column_Position)
+   procedure Spacing (Men   : Menu;
+                      Descr : out Column_Position;
+                      Row   : out Line_Position;
+                      Col   : out Column_Position)
    is
-      type C_Int_Access is access all C_Int;
-      function Get_Spacing (Men     : Menu;
-                            D, R, C : C_Int_Access) return Eti_Error;
+      type C_Int_Access is access all C_Int;
+      function Get_Spacing (Men     : Menu;
+                            D, R, C : C_Int_Access) return Eti_Error;
       pragma Import (C, Get_Spacing, "menu_spacing");
 
-      D, R, C : aliased C_Int;
-   begin
-      Eti_Exception (Get_Spacing (Men,
-                                  D'Access,
-                                  R'Access,
-                                  C'Access));
-      Descr := Column_Position (D);
-      Row   := Line_Position (R);
-      Col   := Column_Position (C);
-   end Spacing;
--------------------------------------------------------------------------------
-   function Set_Pattern (Men  : Menu;
-                         Text : String) return Boolean
-   is
-      type Char_Ptr is access all Interfaces.C.char;
-      function Set_Pattern (Men     : Menu;
-                            Pattern : Char_Ptr) return Eti_Error;
+      D, R, C : aliased C_Int;
+   begin
+      Eti_Exception (Get_Spacing (Men,
+                                  D'Access,
+                                  R'Access,
+                                  C'Access));
+      Descr := Column_Position (D);
+      Row   := Line_Position (R);
+      Col   := Column_Position (C);
+   end Spacing;
+-------------------------------------------------------------------------------
+   function Set_Pattern (Men  : Menu;
+                         Text : String) return Boolean
+   is
+      type Char_Ptr is access all Interfaces.C.char;
+      function Set_Pattern (Men     : Menu;
+                            Pattern : Char_Ptr) return Eti_Error;
       pragma Import (C, Set_Pattern, "set_menu_pattern");
 
-      S   : char_array (0 .. Text'Length);
-      L   : size_t;
-      Res : Eti_Error;
+      S   : char_array (0 .. Text'Length);
+      L   : size_t;
+      Res : Eti_Error;
    begin
-      To_C (Text, S, L);
-      Res := Set_Pattern (Men, S (S'First)'Access);
-      case Res is
-         when E_No_Match =>
+      To_C (Text, S, L);
+      Res := Set_Pattern (Men, S (S'First)'Access);
+      case Res is
+         when E_No_Match =>
             return False;
          when others =>
-            Eti_Exception (Res);
+            Eti_Exception (Res);
             return True;
       end case;
-   end Set_Pattern;
+   end Set_Pattern;
 
-   procedure Pattern (Men  : Menu;
-                      Text : out String)
+   procedure Pattern (Men  : Menu;
+                      Text : out String)
    is
-      function Get_Pattern (Men : Menu) return chars_ptr;
+      function Get_Pattern (Men : Menu) return chars_ptr;
       pragma Import (C, Get_Pattern, "menu_pattern");
    begin
-      Fill_String (Get_Pattern (Men), Text);
-   end Pattern;
--------------------------------------------------------------------------------
-   procedure Set_Format (Men     : Menu;
-                         Lines   : Line_Count;
-                         Columns : Column_Count)
+      Fill_String (Get_Pattern (Men), Text);
+   end Pattern;
+-------------------------------------------------------------------------------
+   procedure Set_Format (Men     : Menu;
+                         Lines   : Line_Count;
+                         Columns : Column_Count)
    is
-      function Set_Menu_Fmt (Men : Menu;
-                             Lin : C_Int;
-                             Col : C_Int) return Eti_Error;
+      function Set_Menu_Fmt (Men : Menu;
+                             Lin : C_Int;
+                             Col : C_Int) return Eti_Error;
       pragma Import (C, Set_Menu_Fmt, "set_menu_format");
 
    begin
-      Eti_Exception (Set_Menu_Fmt (Men,
-                                   C_Int (Lines),
-                                   C_Int (Columns)));
+      Eti_Exception (Set_Menu_Fmt (Men,
+                                   C_Int (Lines),
+                                   C_Int (Columns)));
 
-   end Set_Format;
+   end Set_Format;
 
-   procedure Format (Men     : Menu;
-                     Lines   : out Line_Count;
-                     Columns : out Column_Count)
+   procedure Format (Men     : Menu;
+                     Lines   : out Line_Count;
+                     Columns : out Column_Count)
    is
-      type C_Int_Access is access all C_Int;
-      function Menu_Fmt (Men  : Menu;
-                         Y, X : C_Int_Access) return Eti_Error;
+      type C_Int_Access is access all C_Int;
+      function Menu_Fmt (Men  : Menu;
+                         Y, X : C_Int_Access) return Eti_Error;
       pragma Import (C, Menu_Fmt, "menu_format");
 
-      L, C : aliased C_Int;
+      L, C : aliased C_Int;
    begin
-      Eti_Exception (Menu_Fmt (Men, L'Access, C'Access));
-      Lines   := Line_Count (L);
-      Columns := Column_Count (C);
-   end Format;
--------------------------------------------------------------------------------
-   procedure Set_Item_Init_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function)
+      Eti_Exception (Menu_Fmt (Men, L'Access, C'Access));
+      Lines   := Line_Count (L);
+      Columns := Column_Count (C);
+   end Format;
+-------------------------------------------------------------------------------
+   procedure Set_Item_Init_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function)
    is
-      function Set_Item_Init (Men  : Menu;
-                              Proc : Menu_Hook_Function) return Eti_Error;
+      function Set_Item_Init (Men  : Menu;
+                              Proc : Menu_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Item_Init, "set_item_init");
 
    begin
-      Eti_Exception (Set_Item_Init (Men, Proc));
-   end Set_Item_Init_Hook;
+      Eti_Exception (Set_Item_Init (Men, Proc));
+   end Set_Item_Init_Hook;
 
-   procedure Set_Item_Term_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function)
+   procedure Set_Item_Term_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function)
    is
-      function Set_Item_Term (Men  : Menu;
-                              Proc : Menu_Hook_Function) return Eti_Error;
+      function Set_Item_Term (Men  : Menu;
+                              Proc : Menu_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Item_Term, "set_item_term");
 
    begin
-      Eti_Exception (Set_Item_Term (Men, Proc));
-   end Set_Item_Term_Hook;
+      Eti_Exception (Set_Item_Term (Men, Proc));
+   end Set_Item_Term_Hook;
 
-   procedure Set_Menu_Init_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function)
+   procedure Set_Menu_Init_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function)
    is
-      function Set_Menu_Init (Men  : Menu;
-                              Proc : Menu_Hook_Function) return Eti_Error;
+      function Set_Menu_Init (Men  : Menu;
+                              Proc : Menu_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Menu_Init, "set_menu_init");
 
    begin
-      Eti_Exception (Set_Menu_Init (Men, Proc));
-   end Set_Menu_Init_Hook;
+      Eti_Exception (Set_Menu_Init (Men, Proc));
+   end Set_Menu_Init_Hook;
 
-   procedure Set_Menu_Term_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function)
+   procedure Set_Menu_Term_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function)
    is
-      function Set_Menu_Term (Men  : Menu;
-                              Proc : Menu_Hook_Function) return Eti_Error;
+      function Set_Menu_Term (Men  : Menu;
+                              Proc : Menu_Hook_Function) return Eti_Error;
       pragma Import (C, Set_Menu_Term, "set_menu_term");
 
    begin
-      Eti_Exception (Set_Menu_Term (Men, Proc));
-   end Set_Menu_Term_Hook;
+      Eti_Exception (Set_Menu_Term (Men, Proc));
+   end Set_Menu_Term_Hook;
 
-   function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function
+   function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function
    is
-      function Item_Init (Men : Menu) return Menu_Hook_Function;
+      function Item_Init (Men : Menu) return Menu_Hook_Function;
       pragma Import (C, Item_Init, "item_init");
    begin
-      return Item_Init (Men);
-   end Get_Item_Init_Hook;
+      return Item_Init (Men);
+   end Get_Item_Init_Hook;
 
-   function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function
+   function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function
    is
-      function Item_Term (Men : Menu) return Menu_Hook_Function;
+      function Item_Term (Men : Menu) return Menu_Hook_Function;
       pragma Import (C, Item_Term, "item_term");
    begin
-      return Item_Term (Men);
-   end Get_Item_Term_Hook;
+      return Item_Term (Men);
+   end Get_Item_Term_Hook;
 
-   function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function
+   function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function
    is
-      function Menu_Init (Men : Menu) return Menu_Hook_Function;
+      function Menu_Init (Men : Menu) return Menu_Hook_Function;
       pragma Import (C, Menu_Init, "menu_init");
    begin
-      return Menu_Init (Men);
-   end Get_Menu_Init_Hook;
+      return Menu_Init (Men);
+   end Get_Menu_Init_Hook;
 
-   function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function
+   function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function
    is
-      function Menu_Term (Men : Menu) return Menu_Hook_Function;
+      function Menu_Term (Men : Menu) return Menu_Hook_Function;
       pragma Import (C, Menu_Term, "menu_term");
    begin
-      return Menu_Term (Men);
-   end Get_Menu_Term_Hook;
--------------------------------------------------------------------------------
-   procedure Redefine (Men   : Menu;
-                       Items : Item_Array_Access)
+      return Menu_Term (Men);
+   end Get_Menu_Term_Hook;
+-------------------------------------------------------------------------------
+   procedure Redefine (Men   : Menu;
+                       Items : Item_Array_Access)
    is
-      function Set_Items (Men   : Menu;
-                          Items : System.Address) return Eti_Error;
+      function Set_Items (Men   : Menu;
+                          Items : System.Address) return Eti_Error;
       pragma Import (C, Set_Items, "set_menu_items");
 
    begin
-      pragma Assert (Items.all (Items'Last) = Null_Item);
-      if Items.all (Items'Last) /= Null_Item then
-         raise Menu_Exception;
+      pragma Assert (Items.all (Items'Last) = Null_Item);
+      if Items.all (Items'Last) /= Null_Item then
+         raise Menu_Exception;
       else
-         Eti_Exception (Set_Items (Men, Items.all'Address));
+         Eti_Exception (Set_Items (Men, Items.all'Address));
       end if;
-   end Redefine;
+   end Redefine;
 
-   function Item_Count (Men : Menu) return Natural
+   function Item_Count (Men : Menu) return Natural
    is
-      function Count (Men : Menu) return C_Int;
+      function Count (Men : Menu) return C_Int;
       pragma Import (C, Count, "item_count");
    begin
-      return Natural (Count (Men));
-   end Item_Count;
+      return Natural (Count (Men));
+   end Item_Count;
 
-   function Items (Men   : Menu;
-                   Index : Positive) return Item
+   function Items (Men   : Menu;
+                   Index : Positive) return Item
    is
       use I_Array;
 
-      function C_Mitems (Men : Menu) return Pointer;
+      function C_Mitems (Men : Menu) return Pointer;
       pragma Import (C, C_Mitems, "menu_items");
 
-      P : Pointer := C_Mitems (Men);
+      P : Pointer := C_Mitems (Men);
    begin
-      if P = null or else Index > Item_Count (Men) then
-         raise Menu_Exception;
+      if P = null or else Index > Item_Count (Men) then
+         raise Menu_Exception;
       else
-         P := P + ptrdiff_t (C_Int (Index) - 1);
+         P := P + ptrdiff_t (C_Int (Index) - 1);
          return P.all;
       end if;
-   end Items;
+   end Items;
 
--------------------------------------------------------------------------------
-   function Create (Items : Item_Array_Access) return Menu
+-------------------------------------------------------------------------------
+   function Create (Items : Item_Array_Access) return Menu
    is
-      function Newmenu (Items : System.Address) return Menu;
+      function Newmenu (Items : System.Address) return Menu;
       pragma Import (C, Newmenu, "new_menu");
 
-      M   : Menu;
+      M   : Menu;
    begin
-      pragma Assert (Items.all (Items'Last) = Null_Item);
-      if Items.all (Items'Last) /= Null_Item then
-         raise Menu_Exception;
+      pragma Assert (Items.all (Items'Last) = Null_Item);
+      if Items.all (Items'Last) /= Null_Item then
+         raise Menu_Exception;
       else
-         M := Newmenu (Items.all'Address);
-         if M = Null_Menu then
-            raise Menu_Exception;
+         M := Newmenu (Items.all'Address);
+         if M = Null_Menu then
+            raise Menu_Exception;
          end if;
-         return M;
+         return M;
       end if;
-   end Create;
+   end Create;
 
-   procedure Delete (Men : in out Menu)
+   procedure Delete (Men : in out Menu)
    is
-      function Free (Men : Menu) return Eti_Error;
+      function Free (Men : Menu) return Eti_Error;
       pragma Import (C, Free, "free_menu");
 
    begin
-      Eti_Exception (Free (Men));
-      Men := Null_Menu;
-   end Delete;
+      Eti_Exception (Free (Men));
+      Men := Null_Menu;
+   end Delete;
 
-------------------------------------------------------------------------------
-   function Driver (Men : Menu;
-                    Key : Key_Code) return Driver_Result
+------------------------------------------------------------------------------
+   function Driver (Men : Menu;
+                    Key : Key_Code) return Driver_Result
    is
-      function Driver (Men : Menu;
-                       Key : C_Int) return Eti_Error;
+      function Driver (Men : Menu;
+                       Key : C_Int) return Eti_Error;
       pragma Import (C, Driver, "menu_driver");
 
-      R : constant Eti_Error := Driver (Men, C_Int (Key));
+      R : constant Eti_Error := Driver (Men, C_Int (Key));
    begin
-      case R is
-         when E_Unknown_Command =>
-            return Unknown_Request;
-         when E_No_Match =>
-            return No_Match;
-         when E_Request_Denied | E_Not_Selectable =>
-            return Request_Denied;
+      case R is
+         when E_Unknown_Command =>
+            return Unknown_Request;
+         when E_No_Match =>
+            return No_Match;
+         when E_Request_Denied | E_Not_Selectable =>
+            return Request_Denied;
          when others =>
-            Eti_Exception (R);
-            return Menu_Ok;
+            Eti_Exception (R);
+            return Menu_Ok;
       end case;
-   end Driver;
+   end Driver;
 
-   procedure Free (IA         : in out Item_Array_Access;
-                   Free_Items : Boolean := False)
+   procedure Free (IA         : in out Item_Array_Access;
+                   Free_Items : Boolean := False)
    is
       procedure Release is new Ada.Unchecked_Deallocation
-        (Item_Array, Item_Array_Access);
+        (Item_Array, Item_Array_Access);
    begin
-      if IA /= null and then Free_Items then
-         for I in IA'First .. (IA'Last - 1) loop
-            if IA.all (I) /= Null_Item then
-               Delete (IA.all (I));
+      if IA /= null and then Free_Items then
+         for I in IA'First .. (IA'Last - 1) loop
+            if IA.all (I) /= Null_Item then
+               Delete (IA.all (I));
             end if;
          end loop;
       end if;
-      Release (IA);
-   end Free;
+      Release (IA);
+   end Free;
 
--------------------------------------------------------------------------------
-   function Default_Menu_Options return Menu_Option_Set
+-------------------------------------------------------------------------------
+   function Default_Menu_Options return Menu_Option_Set
    is
    begin
-      return Get_Options (Null_Menu);
-   end Default_Menu_Options;
+      return Get_Options (Null_Menu);
+   end Default_Menu_Options;
 
-   function Default_Item_Options return Item_Option_Set
+   function Default_Item_Options return Item_Option_Set
    is
    begin
-      return Get_Options (Null_Item);
-   end Default_Item_Options;
--------------------------------------------------------------------------------
+      return Get_Options (Null_Item);
+   end Default_Item_Options;
+-------------------------------------------------------------------------------
 
-end Terminal_Interface.Curses.Menus;
-
+end Terminal_Interface.Curses.Menus; +
diff --git a/doc/html/ada/terminal_interface-curses-menus__ads.htm b/doc/html/ada/terminal_interface-curses-menus__ads.htm index 22ae63c4..5f61dacb 100644 --- a/doc/html/ada/terminal_interface-curses-menus__ads.htm +++ b/doc/html/ada/terminal_interface-curses-menus__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-menus.ads + + +terminal_interface-curses-menus.ads - - -

File : terminal_interface-curses-menus.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Menu                      --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.32 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-menus.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Menu                      --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.32 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System;
 with Ada.Characters.Latin_1;
 
-package Terminal_Interface.Curses.Menus is
-   pragma Preelaborate (Terminal_Interface.Curses.Menus);
-   pragma Linker_Options ("-lmenu" & Curses_Constants.DFT_ARG_SUFFIX);
+package Terminal_Interface.Curses.Menus is
+   pragma Preelaborate (Terminal_Interface.Curses.Menus);
+   pragma Linker_Options ("-lmenu" & Curses_Constants.DFT_ARG_SUFFIX);
 
    Space : Character renames Ada.Characters.Latin_1.Space;
 
-   type Item is private;
-   type Menu is private;
-
-   ---------------------------
-   --  Interface constants  --
-   ---------------------------
-   Null_Item : constant Item;
-   Null_Menu : constant Menu;
-
-   subtype Menu_Request_Code is Key_Code
-     range (Key_Max + 1) .. (Key_Max + 17);
-
-   --  The prefix M_ stands for "Menu Request"
-   M_Left_Item       : constant Menu_Request_Code := Key_Max + 1;
-   M_Right_Item      : constant Menu_Request_Code := Key_Max + 2;
-   M_Up_Item         : constant Menu_Request_Code := Key_Max + 3;
-   M_Down_Item       : constant Menu_Request_Code := Key_Max + 4;
-   M_ScrollUp_Line   : constant Menu_Request_Code := Key_Max + 5;
-   M_ScrollDown_Line : constant Menu_Request_Code := Key_Max + 6;
-   M_ScrollDown_Page : constant Menu_Request_Code := Key_Max + 7;
-   M_ScrollUp_Page   : constant Menu_Request_Code := Key_Max + 8;
-   M_First_Item      : constant Menu_Request_Code := Key_Max + 9;
-   M_Last_Item       : constant Menu_Request_Code := Key_Max + 10;
-   M_Next_Item       : constant Menu_Request_Code := Key_Max + 11;
-   M_Previous_Item   : constant Menu_Request_Code := Key_Max + 12;
-   M_Toggle_Item     : constant Menu_Request_Code := Key_Max + 13;
-   M_Clear_Pattern   : constant Menu_Request_Code := Key_Max + 14;
-   M_Back_Pattern    : constant Menu_Request_Code := Key_Max + 15;
-   M_Next_Match      : constant Menu_Request_Code := Key_Max + 16;
-   M_Previous_Match  : constant Menu_Request_Code := Key_Max + 17;
-
-   --  For those who like the old 'C' names for the request codes
-   REQ_LEFT_ITEM     : Menu_Request_Code renames M_Left_Item;
-   REQ_RIGHT_ITEM    : Menu_Request_Code renames M_Right_Item;
-   REQ_UP_ITEM       : Menu_Request_Code renames M_Up_Item;
-   REQ_DOWN_ITEM     : Menu_Request_Code renames M_Down_Item;
-   REQ_SCR_ULINE     : Menu_Request_Code renames M_ScrollUp_Line;
-   REQ_SCR_DLINE     : Menu_Request_Code renames M_ScrollDown_Line;
-   REQ_SCR_DPAGE     : Menu_Request_Code renames M_ScrollDown_Page;
-   REQ_SCR_UPAGE     : Menu_Request_Code renames M_ScrollUp_Page;
-   REQ_FIRST_ITEM    : Menu_Request_Code renames M_First_Item;
-   REQ_LAST_ITEM     : Menu_Request_Code renames M_Last_Item;
-   REQ_NEXT_ITEM     : Menu_Request_Code renames M_Next_Item;
-   REQ_PREV_ITEM     : Menu_Request_Code renames M_Previous_Item;
-   REQ_TOGGLE_ITEM   : Menu_Request_Code renames M_Toggle_Item;
-   REQ_CLEAR_PATTERN : Menu_Request_Code renames M_Clear_Pattern;
-   REQ_BACK_PATTERN  : Menu_Request_Code renames M_Back_Pattern;
-   REQ_NEXT_MATCH    : Menu_Request_Code renames M_Next_Match;
-   REQ_PREV_MATCH    : Menu_Request_Code renames M_Previous_Match;
-
-   procedure Request_Name (Key  : Menu_Request_Code;
-                           Name : out String);
-
-   function  Request_Name (Key : Menu_Request_Code) return String;
-   --  Same as function
-
-   ------------------
-   --  Exceptions  --
-   ------------------
-
-   Menu_Exception : exception;
-   --
-   --  Menu options
-   --
-   type Menu_Option_Set is
+   type Item is private;
+   type Menu is private;
+
+   ---------------------------
+   --  Interface constants  --
+   ---------------------------
+   Null_Item : constant Item;
+   Null_Menu : constant Menu;
+
+   subtype Menu_Request_Code is Key_Code
+     range (Key_Max + 1) .. (Key_Max + 17);
+
+   --  The prefix M_ stands for "Menu Request"
+   M_Left_Item       : constant Menu_Request_Code := Key_Max + 1;
+   M_Right_Item      : constant Menu_Request_Code := Key_Max + 2;
+   M_Up_Item         : constant Menu_Request_Code := Key_Max + 3;
+   M_Down_Item       : constant Menu_Request_Code := Key_Max + 4;
+   M_ScrollUp_Line   : constant Menu_Request_Code := Key_Max + 5;
+   M_ScrollDown_Line : constant Menu_Request_Code := Key_Max + 6;
+   M_ScrollDown_Page : constant Menu_Request_Code := Key_Max + 7;
+   M_ScrollUp_Page   : constant Menu_Request_Code := Key_Max + 8;
+   M_First_Item      : constant Menu_Request_Code := Key_Max + 9;
+   M_Last_Item       : constant Menu_Request_Code := Key_Max + 10;
+   M_Next_Item       : constant Menu_Request_Code := Key_Max + 11;
+   M_Previous_Item   : constant Menu_Request_Code := Key_Max + 12;
+   M_Toggle_Item     : constant Menu_Request_Code := Key_Max + 13;
+   M_Clear_Pattern   : constant Menu_Request_Code := Key_Max + 14;
+   M_Back_Pattern    : constant Menu_Request_Code := Key_Max + 15;
+   M_Next_Match      : constant Menu_Request_Code := Key_Max + 16;
+   M_Previous_Match  : constant Menu_Request_Code := Key_Max + 17;
+
+   --  For those who like the old 'C' names for the request codes
+   REQ_LEFT_ITEM     : Menu_Request_Code renames M_Left_Item;
+   REQ_RIGHT_ITEM    : Menu_Request_Code renames M_Right_Item;
+   REQ_UP_ITEM       : Menu_Request_Code renames M_Up_Item;
+   REQ_DOWN_ITEM     : Menu_Request_Code renames M_Down_Item;
+   REQ_SCR_ULINE     : Menu_Request_Code renames M_ScrollUp_Line;
+   REQ_SCR_DLINE     : Menu_Request_Code renames M_ScrollDown_Line;
+   REQ_SCR_DPAGE     : Menu_Request_Code renames M_ScrollDown_Page;
+   REQ_SCR_UPAGE     : Menu_Request_Code renames M_ScrollUp_Page;
+   REQ_FIRST_ITEM    : Menu_Request_Code renames M_First_Item;
+   REQ_LAST_ITEM     : Menu_Request_Code renames M_Last_Item;
+   REQ_NEXT_ITEM     : Menu_Request_Code renames M_Next_Item;
+   REQ_PREV_ITEM     : Menu_Request_Code renames M_Previous_Item;
+   REQ_TOGGLE_ITEM   : Menu_Request_Code renames M_Toggle_Item;
+   REQ_CLEAR_PATTERN : Menu_Request_Code renames M_Clear_Pattern;
+   REQ_BACK_PATTERN  : Menu_Request_Code renames M_Back_Pattern;
+   REQ_NEXT_MATCH    : Menu_Request_Code renames M_Next_Match;
+   REQ_PREV_MATCH    : Menu_Request_Code renames M_Previous_Match;
+
+   procedure Request_Name (Key  : Menu_Request_Code;
+                           Name : out String);
+
+   function  Request_Name (Key : Menu_Request_Code) return String;
+   --  Same as function
+
+   ------------------
+   --  Exceptions  --
+   ------------------
+
+   Menu_Exception : exception;
+   --
+   --  Menu options
+   --
+   type Menu_Option_Set is
       record
-         One_Valued        : Boolean;
-         Show_Descriptions : Boolean;
-         Row_Major_Order   : Boolean;
-         Ignore_Case       : Boolean;
-         Show_Matches      : Boolean;
-         Non_Cyclic        : Boolean;
+         One_Valued        : Boolean;
+         Show_Descriptions : Boolean;
+         Row_Major_Order   : Boolean;
+         Ignore_Case       : Boolean;
+         Show_Matches      : Boolean;
+         Non_Cyclic        : Boolean;
       end record;
-   pragma Convention (C_Pass_By_Copy, Menu_Option_Set);
+   pragma Convention (C_Pass_By_Copy, Menu_Option_Set);
 
-   for Menu_Option_Set use
+   for Menu_Option_Set use
       record
-         One_Valued        at 0 range Curses_Constants.O_ONEVALUE_First
-           .. Curses_Constants.O_ONEVALUE_Last;
-         Show_Descriptions at 0 range Curses_Constants.O_SHOWDESC_First
-           .. Curses_Constants.O_SHOWDESC_Last;
-         Row_Major_Order   at 0 range Curses_Constants.O_ROWMAJOR_First
-           .. Curses_Constants.O_ROWMAJOR_Last;
-         Ignore_Case       at 0 range Curses_Constants.O_IGNORECASE_First
-           .. Curses_Constants.O_IGNORECASE_Last;
-         Show_Matches      at 0 range Curses_Constants.O_SHOWMATCH_First
-           .. Curses_Constants.O_SHOWMATCH_Last;
-         Non_Cyclic        at 0 range Curses_Constants.O_NONCYCLIC_First
-           .. Curses_Constants.O_NONCYCLIC_Last;
+         One_Valued        at 0 range Curses_Constants.O_ONEVALUE_First
+           .. Curses_Constants.O_ONEVALUE_Last;
+         Show_Descriptions at 0 range Curses_Constants.O_SHOWDESC_First
+           .. Curses_Constants.O_SHOWDESC_Last;
+         Row_Major_Order   at 0 range Curses_Constants.O_ROWMAJOR_First
+           .. Curses_Constants.O_ROWMAJOR_Last;
+         Ignore_Case       at 0 range Curses_Constants.O_IGNORECASE_First
+           .. Curses_Constants.O_IGNORECASE_Last;
+         Show_Matches      at 0 range Curses_Constants.O_SHOWMATCH_First
+           .. Curses_Constants.O_SHOWMATCH_Last;
+         Non_Cyclic        at 0 range Curses_Constants.O_NONCYCLIC_First
+           .. Curses_Constants.O_NONCYCLIC_Last;
       end record;
    pragma Warnings (Off);
-   for Menu_Option_Set'Size use Curses_Constants.Menu_Options_Size;
+   for Menu_Option_Set'Size use Curses_Constants.Menu_Options_Size;
    pragma Warnings (On);
 
-   function Default_Menu_Options return Menu_Option_Set;
-   --  Initial default options for a menu.
-   pragma Inline (Default_Menu_Options);
-   --
-   --  Item options
-   --
-   type Item_Option_Set is
+   function Default_Menu_Options return Menu_Option_Set;
+   --  Initial default options for a menu.
+   pragma Inline (Default_Menu_Options);
+   --
+   --  Item options
+   --
+   type Item_Option_Set is
       record
-         Selectable : Boolean;
+         Selectable : Boolean;
       end record;
-   pragma Convention (C_Pass_By_Copy, Item_Option_Set);
+   pragma Convention (C_Pass_By_Copy, Item_Option_Set);
 
-   for Item_Option_Set use
+   for Item_Option_Set use
       record
-         Selectable at 0 range Curses_Constants.O_SELECTABLE_First
-           ..  Curses_Constants.O_SELECTABLE_Last;
+         Selectable at 0 range Curses_Constants.O_SELECTABLE_First
+           ..  Curses_Constants.O_SELECTABLE_Last;
       end record;
    pragma Warnings (Off);
-   for Item_Option_Set'Size use Curses_Constants.Item_Options_Size;
+   for Item_Option_Set'Size use Curses_Constants.Item_Options_Size;
    pragma Warnings (On);
 
-   function Default_Item_Options return Item_Option_Set;
-   --  Initial default options for an item.
-   pragma Inline (Default_Item_Options);
+   function Default_Item_Options return Item_Option_Set;
+   --  Initial default options for an item.
+   pragma Inline (Default_Item_Options);
 
-   --
-   --  Item Array
-   --
-   type Item_Array is array (Positive range <>) of aliased Item;
+   --
+   --  Item Array
+   --
+   type Item_Array is array (Positive range <>) of aliased Item;
    pragma Convention (C, Item_Array);
 
-   type Item_Array_Access is access Item_Array;
-
-   procedure Free (IA         : in out Item_Array_Access;
-                   Free_Items : Boolean := False);
-   --  Release the memory for an allocated item array
-   --  If Free_Items is True, call Delete() for all the items in
-   --  the array.
-
-   --  |=====================================================================
-   --  | Man page mitem_new.3x
-   --  |=====================================================================
-
-   --  |
-   function Create (Name        : String;
-                    Description : String := "") return Item;
-   --  AKA: new_item()
-   --  Not inlined.
-
-   --  |
-   function New_Item (Name        : String;
-                      Description : String := "") return Item
-     renames Create;
-   --  AKA: new_item()
-
-   --  |
-   procedure Delete (Itm : in out Item);
-   --  AKA: free_item()
-   --  Resets Itm to Null_Item
-
-   --  |=====================================================================
-   --  | Man page mitem_value.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Value (Itm   : Item;
-                        Value : Boolean := True);
-   --  AKA: set_item_value()
-   pragma Inline (Set_Value);
-
-   --  |
-   function Value (Itm : Item) return Boolean;
-   --  AKA: item_value()
-   pragma Inline (Value);
-
-   --  |=====================================================================
-   --  | Man page mitem_visible.3x
-   --  |=====================================================================
-
-   --  |
-   function Visible (Itm : Item) return Boolean;
-   --  AKA: item_visible()
-   pragma Inline (Visible);
-
-   --  |=====================================================================
-   --  | Man page mitem_opts.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Options (Itm     : Item;
-                          Options : Item_Option_Set);
-   --  AKA: set_item_opts()
-   --  An overloaded Set_Options is defined later. Pragma Inline appears there
-
-   --  |
-   procedure Switch_Options (Itm     : Item;
-                             Options : Item_Option_Set;
-                             On      : Boolean := True);
-   --  AKA: item_opts_on()
-   --  AKA: item_opts_off()
-   --  An overloaded Switch_Options is defined later.
-   --  Pragma Inline appears there
-
-   --  |
-   procedure Get_Options (Itm     : Item;
-                          Options : out Item_Option_Set);
-   --  AKA: item_opts()
-
-   --  |
-   function Get_Options (Itm : Item := Null_Item) return Item_Option_Set;
-   --  AKA: item_opts()
-   --  An overloaded Get_Options is defined later. Pragma Inline appears there
-
-   --  |=====================================================================
-   --  | Man page mitem_name.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Name (Itm  : Item;
-                   Name : out String);
-   --  AKA: item_name()
-   function  Name (Itm : Item) return String;
-   --  AKA: item_name()
-   --  Implemented as function
+   type Item_Array_Access is access Item_Array;
+
+   procedure Free (IA         : in out Item_Array_Access;
+                   Free_Items : Boolean := False);
+   --  Release the memory for an allocated item array
+   --  If Free_Items is True, call Delete() for all the items in
+   --  the array.
+
+   --  |=====================================================================
+   --  | Man page mitem_new.3x
+   --  |=====================================================================
+
+   --  |
+   function Create (Name        : String;
+                    Description : String := "") return Item;
+   --  AKA: new_item()
+   --  Not inlined.
+
+   --  |
+   function New_Item (Name        : String;
+                      Description : String := "") return Item
+     renames Create;
+   --  AKA: new_item()
+
+   --  |
+   procedure Delete (Itm : in out Item);
+   --  AKA: free_item()
+   --  Resets Itm to Null_Item
+
+   --  |=====================================================================
+   --  | Man page mitem_value.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Value (Itm   : Item;
+                        Value : Boolean := True);
+   --  AKA: set_item_value()
+   pragma Inline (Set_Value);
+
+   --  |
+   function Value (Itm : Item) return Boolean;
+   --  AKA: item_value()
+   pragma Inline (Value);
+
+   --  |=====================================================================
+   --  | Man page mitem_visible.3x
+   --  |=====================================================================
+
+   --  |
+   function Visible (Itm : Item) return Boolean;
+   --  AKA: item_visible()
+   pragma Inline (Visible);
+
+   --  |=====================================================================
+   --  | Man page mitem_opts.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Options (Itm     : Item;
+                          Options : Item_Option_Set);
+   --  AKA: set_item_opts()
+   --  An overloaded Set_Options is defined later. Pragma Inline appears there
+
+   --  |
+   procedure Switch_Options (Itm     : Item;
+                             Options : Item_Option_Set;
+                             On      : Boolean := True);
+   --  AKA: item_opts_on()
+   --  AKA: item_opts_off()
+   --  An overloaded Switch_Options is defined later.
+   --  Pragma Inline appears there
+
+   --  |
+   procedure Get_Options (Itm     : Item;
+                          Options : out Item_Option_Set);
+   --  AKA: item_opts()
+
+   --  |
+   function Get_Options (Itm : Item := Null_Item) return Item_Option_Set;
+   --  AKA: item_opts()
+   --  An overloaded Get_Options is defined later. Pragma Inline appears there
+
+   --  |=====================================================================
+   --  | Man page mitem_name.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Name (Itm  : Item;
+                   Name : out String);
+   --  AKA: item_name()
+   function  Name (Itm : Item) return String;
+   --  AKA: item_name()
+   --  Implemented as function
    pragma Inline (Name);
 
-   --  |
-   procedure Description (Itm         : Item;
-                          Description : out String);
-   --  AKA: item_description();
+   --  |
+   procedure Description (Itm         : Item;
+                          Description : out String);
+   --  AKA: item_description();
 
-   function  Description (Itm : Item) return String;
-   --  AKA: item_description();
-   --  Implemented as function
+   function  Description (Itm : Item) return String;
+   --  AKA: item_description();
+   --  Implemented as function
    pragma Inline (Description);
 
-   --  |=====================================================================
-   --  | Man page mitem_current.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Current (Men : Menu;
-                          Itm : Item);
-   --  AKA: set_current_item()
-   pragma Inline (Set_Current);
-
-   --  |
-   function Current (Men : Menu) return Item;
-   --  AKA: current_item()
-   pragma Inline (Current);
-
-   --  |
-   procedure Set_Top_Row (Men  : Menu;
-                          Line : Line_Position);
-   --  AKA: set_top_row()
-   pragma Inline (Set_Top_Row);
-
-   --  |
-   function Top_Row (Men : Menu) return Line_Position;
-   --  AKA: top_row()
-   pragma Inline (Top_Row);
-
-   --  |
-   function Get_Index (Itm : Item) return Positive;
-   --  AKA: item_index()
-   --  Please note that in this binding we start the numbering of items
-   --  with 1. So this is number is one more than you get from the low
-   --  level call.
-   pragma Inline (Get_Index);
-
-   --  |=====================================================================
-   --  | Man page menu_post.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Post (Men  : Menu;
-                   Post : Boolean := True);
-   --  AKA: post_menu()
-   --  AKA: unpost_menu()
-   pragma Inline (Post);
-
-   --  |=====================================================================
-   --  | Man page menu_opts.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Options (Men     : Menu;
-                          Options : Menu_Option_Set);
-   --  AKA: set_menu_opts()
+   --  |=====================================================================
+   --  | Man page mitem_current.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Current (Men : Menu;
+                          Itm : Item);
+   --  AKA: set_current_item()
+   pragma Inline (Set_Current);
+
+   --  |
+   function Current (Men : Menu) return Item;
+   --  AKA: current_item()
+   pragma Inline (Current);
+
+   --  |
+   procedure Set_Top_Row (Men  : Menu;
+                          Line : Line_Position);
+   --  AKA: set_top_row()
+   pragma Inline (Set_Top_Row);
+
+   --  |
+   function Top_Row (Men : Menu) return Line_Position;
+   --  AKA: top_row()
+   pragma Inline (Top_Row);
+
+   --  |
+   function Get_Index (Itm : Item) return Positive;
+   --  AKA: item_index()
+   --  Please note that in this binding we start the numbering of items
+   --  with 1. So this is number is one more than you get from the low
+   --  level call.
+   pragma Inline (Get_Index);
+
+   --  |=====================================================================
+   --  | Man page menu_post.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Post (Men  : Menu;
+                   Post : Boolean := True);
+   --  AKA: post_menu()
+   --  AKA: unpost_menu()
+   pragma Inline (Post);
+
+   --  |=====================================================================
+   --  | Man page menu_opts.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Options (Men     : Menu;
+                          Options : Menu_Option_Set);
+   --  AKA: set_menu_opts()
    pragma Inline (Set_Options);
 
-   --  |
-   procedure Switch_Options (Men     : Menu;
-                             Options : Menu_Option_Set;
-                             On      : Boolean := True);
-   --  AKA: menu_opts_on()
-   --  AKA: menu_opts_off()
+   --  |
+   procedure Switch_Options (Men     : Menu;
+                             Options : Menu_Option_Set;
+                             On      : Boolean := True);
+   --  AKA: menu_opts_on()
+   --  AKA: menu_opts_off()
    pragma Inline (Switch_Options);
 
-   --  |
-   procedure Get_Options (Men     : Menu;
-                          Options : out Menu_Option_Set);
-   --  AKA: menu_opts()
+   --  |
+   procedure Get_Options (Men     : Menu;
+                          Options : out Menu_Option_Set);
+   --  AKA: menu_opts()
 
-   --  |
-   function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set;
-   --  AKA: menu_opts()
+   --  |
+   function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set;
+   --  AKA: menu_opts()
    pragma Inline (Get_Options);
 
-   --  |=====================================================================
-   --  | Man page menu_win.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Window (Men : Menu;
-                         Win : Window);
-   --  AKA: set_menu_win()
-   pragma Inline (Set_Window);
-
-   --  |
-   function Get_Window (Men : Menu) return Window;
-   --  AKA: menu_win()
-   pragma Inline (Get_Window);
-
-   --  |
-   procedure Set_Sub_Window (Men : Menu;
-                             Win : Window);
-   --  AKA: set_menu_sub()
-   pragma Inline (Set_Sub_Window);
-
-   --  |
-   function Get_Sub_Window (Men : Menu) return Window;
-   --  AKA: menu_sub()
-   pragma Inline (Get_Sub_Window);
-
-   --  |
-   procedure Scale (Men     : Menu;
-                    Lines   : out Line_Count;
-                    Columns : out Column_Count);
-   --  AKA: scale_menu()
-   pragma Inline (Scale);
-
-   --  |=====================================================================
-   --  | Man page menu_cursor.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Position_Cursor (Men : Menu);
-   --  AKA: pos_menu_cursor()
-   pragma Inline (Position_Cursor);
-
-   --  |=====================================================================
-   --  | Man page menu_mark.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Mark (Men  : Menu;
-                       Mark : String);
-   --  AKA: set_menu_mark()
-   pragma Inline (Set_Mark);
-
-   --  |
-   procedure Mark (Men  : Menu;
-                   Mark : out String);
-   --  AKA: menu_mark()
-
-   function  Mark (Men : Menu) return String;
-   --  AKA: menu_mark()
-   --  Implemented as function
+   --  |=====================================================================
+   --  | Man page menu_win.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Window (Men : Menu;
+                         Win : Window);
+   --  AKA: set_menu_win()
+   pragma Inline (Set_Window);
+
+   --  |
+   function Get_Window (Men : Menu) return Window;
+   --  AKA: menu_win()
+   pragma Inline (Get_Window);
+
+   --  |
+   procedure Set_Sub_Window (Men : Menu;
+                             Win : Window);
+   --  AKA: set_menu_sub()
+   pragma Inline (Set_Sub_Window);
+
+   --  |
+   function Get_Sub_Window (Men : Menu) return Window;
+   --  AKA: menu_sub()
+   pragma Inline (Get_Sub_Window);
+
+   --  |
+   procedure Scale (Men     : Menu;
+                    Lines   : out Line_Count;
+                    Columns : out Column_Count);
+   --  AKA: scale_menu()
+   pragma Inline (Scale);
+
+   --  |=====================================================================
+   --  | Man page menu_cursor.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Position_Cursor (Men : Menu);
+   --  AKA: pos_menu_cursor()
+   pragma Inline (Position_Cursor);
+
+   --  |=====================================================================
+   --  | Man page menu_mark.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Mark (Men  : Menu;
+                       Mark : String);
+   --  AKA: set_menu_mark()
+   pragma Inline (Set_Mark);
+
+   --  |
+   procedure Mark (Men  : Menu;
+                   Mark : out String);
+   --  AKA: menu_mark()
+
+   function  Mark (Men : Menu) return String;
+   --  AKA: menu_mark()
+   --  Implemented as function
    pragma Inline (Mark);
 
-   --  |=====================================================================
-   --  | Man page menu_attributes.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Foreground
-     (Men   : Menu;
-      Fore  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: set_menu_fore()
-   pragma Inline (Set_Foreground);
-
-   --  |
-   procedure Foreground (Men   : Menu;
-                         Fore  : out Character_Attribute_Set);
-   --  AKA: menu_fore()
-
-   --  |
-   procedure Foreground (Men   : Menu;
-                         Fore  : out Character_Attribute_Set;
-                         Color : out Color_Pair);
-   --  AKA: menu_fore()
+   --  |=====================================================================
+   --  | Man page menu_attributes.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Foreground
+     (Men   : Menu;
+      Fore  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: set_menu_fore()
+   pragma Inline (Set_Foreground);
+
+   --  |
+   procedure Foreground (Men   : Menu;
+                         Fore  : out Character_Attribute_Set);
+   --  AKA: menu_fore()
+
+   --  |
+   procedure Foreground (Men   : Menu;
+                         Fore  : out Character_Attribute_Set;
+                         Color : out Color_Pair);
+   --  AKA: menu_fore()
    pragma Inline (Foreground);
 
-   --  |
-   procedure Set_Background
-     (Men   : Menu;
-      Back  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: set_menu_back()
+   --  |
+   procedure Set_Background
+     (Men   : Menu;
+      Back  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: set_menu_back()
    pragma Inline (Set_Background);
 
-   --  |
-   procedure Background (Men  : Menu;
-                         Back : out Character_Attribute_Set);
-   --  AKA: menu_back()
-   --  |
+   --  |
+   procedure Background (Men  : Menu;
+                         Back : out Character_Attribute_Set);
+   --  AKA: menu_back()
+   --  |
 
-   procedure Background (Men   : Menu;
-                         Back  : out Character_Attribute_Set;
-                         Color : out Color_Pair);
-   --  AKA: menu_back()
+   procedure Background (Men   : Menu;
+                         Back  : out Character_Attribute_Set;
+                         Color : out Color_Pair);
+   --  AKA: menu_back()
    pragma Inline (Background);
 
-   --  |
-   procedure Set_Grey
-     (Men   : Menu;
-      Grey  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: set_menu_grey()
-   pragma Inline (Set_Grey);
-
-   --  |
-   procedure Grey (Men  : Menu;
-                   Grey : out Character_Attribute_Set);
-   --  AKA: menu_grey()
-
-   --  |
-   procedure Grey
-     (Men   : Menu;
-      Grey  : out Character_Attribute_Set;
-      Color : out Color_Pair);
-   --  AKA: menu_grey()
+   --  |
+   procedure Set_Grey
+     (Men   : Menu;
+      Grey  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: set_menu_grey()
+   pragma Inline (Set_Grey);
+
+   --  |
+   procedure Grey (Men  : Menu;
+                   Grey : out Character_Attribute_Set);
+   --  AKA: menu_grey()
+
+   --  |
+   procedure Grey
+     (Men   : Menu;
+      Grey  : out Character_Attribute_Set;
+      Color : out Color_Pair);
+   --  AKA: menu_grey()
    pragma Inline (Grey);
 
-   --  |
-   procedure Set_Pad_Character (Men : Menu;
-                                Pad : Character := Space);
-   --  AKA: set_menu_pad()
-   pragma Inline (Set_Pad_Character);
-
-   --  |
-   procedure Pad_Character (Men : Menu;
-                            Pad : out Character);
-   --  AKA: menu_pad()
-   pragma Inline (Pad_Character);
-
-   --  |=====================================================================
-   --  | Man page menu_spacing.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Spacing (Men   : Menu;
-                          Descr : Column_Position := 0;
-                          Row   : Line_Position   := 0;
-                          Col   : Column_Position := 0);
-   --  AKA: set_menu_spacing()
-   pragma Inline (Set_Spacing);
-
-   --  |
-   procedure Spacing (Men   : Menu;
-                      Descr : out Column_Position;
-                      Row   : out Line_Position;
-                      Col   : out Column_Position);
-   --  AKA: menu_spacing()
-   pragma Inline (Spacing);
-
-   --  |=====================================================================
-   --  | Man page menu_pattern.3x
-   --  |=====================================================================
-
-   --  |
-   function Set_Pattern (Men  : Menu;
-                         Text : String) return Boolean;
-   --  AKA: set_menu_pattern()
-   --  Return TRUE if the pattern matches, FALSE otherwise
-   pragma Inline (Set_Pattern);
-
-   --  |
-   procedure Pattern (Men  : Menu;
-                      Text : out String);
-   --  AKA: menu_pattern()
-   pragma Inline (Pattern);
-
-   --  |=====================================================================
-   --  | Man page menu_format.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_Format (Men     : Menu;
-                         Lines   : Line_Count;
-                         Columns : Column_Count);
-   --  Not implemented: 0 argument for Lines or Columns;
-   --  instead use Format to get the current sizes
-   --      The  default  format  is  16  rows,  1  column.    Calling
-   --      set_menu_format  with a null menu pointer will change this
-   --      default.  A zero row or column argument to set_menu_format
-   --      is  interpreted  as  a  request  not to change the current
-   --      value.
-   --  AKA: set_menu_format()
-   pragma Inline (Set_Format);
-
-   --  |
-   procedure Format (Men     : Menu;
-                     Lines   : out Line_Count;
-                     Columns : out Column_Count);
-   --  AKA: menu_format()
-   pragma Inline (Format);
-
-   --  |=====================================================================
-   --  | Man page menu_hook.3x
-   --  |=====================================================================
-
-   type Menu_Hook_Function is access procedure (Men : Menu);
-   pragma Convention (C, Menu_Hook_Function);
-
-   --  |
-   procedure Set_Item_Init_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function);
-   --  AKA: set_item_init()
-   pragma Inline (Set_Item_Init_Hook);
-
-   --  |
-   procedure Set_Item_Term_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function);
-   --  AKA: set_item_term()
-   pragma Inline (Set_Item_Term_Hook);
-
-   --  |
-   procedure Set_Menu_Init_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function);
-   --  AKA: set_menu_init()
-   pragma Inline (Set_Menu_Init_Hook);
-
-   --  |
-   procedure Set_Menu_Term_Hook (Men  : Menu;
-                                 Proc : Menu_Hook_Function);
-   --  AKA: set_menu_term()
-   pragma Inline (Set_Menu_Term_Hook);
-
-   --  |
-   function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function;
-   --  AKA: item_init()
-   pragma Inline (Get_Item_Init_Hook);
-
-   --  |
-   function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function;
-   --  AKA: item_term()
-   pragma Inline (Get_Item_Term_Hook);
-
-   --  |
-   function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function;
-   --  AKA: menu_init()
-   pragma Inline (Get_Menu_Init_Hook);
-
-   --  |
-   function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function;
-   --  AKA: menu_term()
-   pragma Inline (Get_Menu_Term_Hook);
-
-   --  |=====================================================================
-   --  | Man page menu_items.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Redefine (Men   : Menu;
-                       Items : Item_Array_Access);
-   --  AKA: set_menu_items()
-   pragma Inline (Redefine);
-
-   procedure Set_Items (Men   : Menu;
-                        Items : Item_Array_Access) renames Redefine;
-   --  pragma Inline (Set_Items);
-
-   --  |
-   function Items (Men   : Menu;
-                   Index : Positive) return Item;
-   --  AKA: menu_items()
-   pragma Inline (Items);
-
-   --  |
-   function Item_Count (Men : Menu) return Natural;
-   --  AKA: item_count()
-   pragma Inline (Item_Count);
-
-   --  |=====================================================================
-   --  | Man page menu_new.3x
-   --  |=====================================================================
-
-   --  |
-   function Create (Items : Item_Array_Access) return Menu;
-   --  AKA: new_menu()
-   --  Not inlined
-
-   function New_Menu (Items : Item_Array_Access) return Menu renames Create;
-
-   --  |
-   procedure Delete (Men : in out Menu);
-   --  AKA: free_menu()
-   --  Reset Men to Null_Menu
-   --  Not inlined
-
-   --  |=====================================================================
-   --  | Man page menu_driver.3x
-   --  |=====================================================================
-
-   type Driver_Result is (Menu_Ok,
-                          Request_Denied,
-                          Unknown_Request,
-                          No_Match);
-
-   --  |
-   function Driver (Men : Menu;
-                    Key : Key_Code) return Driver_Result;
-   --  AKA: menu_driver()
-   --  Driver is not inlined
-
-   --  |
-   --  Not Implemented: menu_request_name, menu_request_by_name
--------------------------------------------------------------------------------
+   --  |
+   procedure Set_Pad_Character (Men : Menu;
+                                Pad : Character := Space);
+   --  AKA: set_menu_pad()
+   pragma Inline (Set_Pad_Character);
+
+   --  |
+   procedure Pad_Character (Men : Menu;
+                            Pad : out Character);
+   --  AKA: menu_pad()
+   pragma Inline (Pad_Character);
+
+   --  |=====================================================================
+   --  | Man page menu_spacing.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Spacing (Men   : Menu;
+                          Descr : Column_Position := 0;
+                          Row   : Line_Position   := 0;
+                          Col   : Column_Position := 0);
+   --  AKA: set_menu_spacing()
+   pragma Inline (Set_Spacing);
+
+   --  |
+   procedure Spacing (Men   : Menu;
+                      Descr : out Column_Position;
+                      Row   : out Line_Position;
+                      Col   : out Column_Position);
+   --  AKA: menu_spacing()
+   pragma Inline (Spacing);
+
+   --  |=====================================================================
+   --  | Man page menu_pattern.3x
+   --  |=====================================================================
+
+   --  |
+   function Set_Pattern (Men  : Menu;
+                         Text : String) return Boolean;
+   --  AKA: set_menu_pattern()
+   --  Return TRUE if the pattern matches, FALSE otherwise
+   pragma Inline (Set_Pattern);
+
+   --  |
+   procedure Pattern (Men  : Menu;
+                      Text : out String);
+   --  AKA: menu_pattern()
+   pragma Inline (Pattern);
+
+   --  |=====================================================================
+   --  | Man page menu_format.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_Format (Men     : Menu;
+                         Lines   : Line_Count;
+                         Columns : Column_Count);
+   --  Not implemented: 0 argument for Lines or Columns;
+   --  instead use Format to get the current sizes
+   --      The  default  format  is  16  rows,  1  column.    Calling
+   --      set_menu_format  with a null menu pointer will change this
+   --      default.  A zero row or column argument to set_menu_format
+   --      is  interpreted  as  a  request  not to change the current
+   --      value.
+   --  AKA: set_menu_format()
+   pragma Inline (Set_Format);
+
+   --  |
+   procedure Format (Men     : Menu;
+                     Lines   : out Line_Count;
+                     Columns : out Column_Count);
+   --  AKA: menu_format()
+   pragma Inline (Format);
+
+   --  |=====================================================================
+   --  | Man page menu_hook.3x
+   --  |=====================================================================
+
+   type Menu_Hook_Function is access procedure (Men : Menu);
+   pragma Convention (C, Menu_Hook_Function);
+
+   --  |
+   procedure Set_Item_Init_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function);
+   --  AKA: set_item_init()
+   pragma Inline (Set_Item_Init_Hook);
+
+   --  |
+   procedure Set_Item_Term_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function);
+   --  AKA: set_item_term()
+   pragma Inline (Set_Item_Term_Hook);
+
+   --  |
+   procedure Set_Menu_Init_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function);
+   --  AKA: set_menu_init()
+   pragma Inline (Set_Menu_Init_Hook);
+
+   --  |
+   procedure Set_Menu_Term_Hook (Men  : Menu;
+                                 Proc : Menu_Hook_Function);
+   --  AKA: set_menu_term()
+   pragma Inline (Set_Menu_Term_Hook);
+
+   --  |
+   function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function;
+   --  AKA: item_init()
+   pragma Inline (Get_Item_Init_Hook);
+
+   --  |
+   function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function;
+   --  AKA: item_term()
+   pragma Inline (Get_Item_Term_Hook);
+
+   --  |
+   function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function;
+   --  AKA: menu_init()
+   pragma Inline (Get_Menu_Init_Hook);
+
+   --  |
+   function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function;
+   --  AKA: menu_term()
+   pragma Inline (Get_Menu_Term_Hook);
+
+   --  |=====================================================================
+   --  | Man page menu_items.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Redefine (Men   : Menu;
+                       Items : Item_Array_Access);
+   --  AKA: set_menu_items()
+   pragma Inline (Redefine);
+
+   procedure Set_Items (Men   : Menu;
+                        Items : Item_Array_Access) renames Redefine;
+   --  pragma Inline (Set_Items);
+
+   --  |
+   function Items (Men   : Menu;
+                   Index : Positive) return Item;
+   --  AKA: menu_items()
+   pragma Inline (Items);
+
+   --  |
+   function Item_Count (Men : Menu) return Natural;
+   --  AKA: item_count()
+   pragma Inline (Item_Count);
+
+   --  |=====================================================================
+   --  | Man page menu_new.3x
+   --  |=====================================================================
+
+   --  |
+   function Create (Items : Item_Array_Access) return Menu;
+   --  AKA: new_menu()
+   --  Not inlined
+
+   function New_Menu (Items : Item_Array_Access) return Menu renames Create;
+
+   --  |
+   procedure Delete (Men : in out Menu);
+   --  AKA: free_menu()
+   --  Reset Men to Null_Menu
+   --  Not inlined
+
+   --  |=====================================================================
+   --  | Man page menu_driver.3x
+   --  |=====================================================================
+
+   type Driver_Result is (Menu_Ok,
+                          Request_Denied,
+                          Unknown_Request,
+                          No_Match);
+
+   --  |
+   function Driver (Men : Menu;
+                    Key : Key_Code) return Driver_Result;
+   --  AKA: menu_driver()
+   --  Driver is not inlined
+
+   --  |
+   --  Not Implemented: menu_request_name, menu_request_by_name
+-------------------------------------------------------------------------------
 private
-   type Item   is new System.Storage_Elements.Integer_Address;
-   type Menu   is new System.Storage_Elements.Integer_Address;
+   type Item   is new System.Storage_Elements.Integer_Address;
+   type Menu   is new System.Storage_Elements.Integer_Address;
 
-   Null_Item : constant Item := 0;
-   Null_Menu : constant Menu := 0;
+   Null_Item : constant Item := 0;
+   Null_Menu : constant Menu := 0;
 
-end Terminal_Interface.Curses.Menus;
-
+end Terminal_Interface.Curses.Menus; +
diff --git a/doc/html/ada/terminal_interface-curses-mouse__adb.htm b/doc/html/ada/terminal_interface-curses-mouse__adb.htm index 2035f6b2..1a473a79 100644 --- a/doc/html/ada/terminal_interface-curses-mouse__adb.htm +++ b/doc/html/ada/terminal_interface-curses-mouse__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-mouse.adb + + +terminal_interface-curses-mouse.adb - - -

File : terminal_interface-curses-mouse.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                     Terminal_Interface.Curses.Mouse                      --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 1999-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.28 @
---  @Date: 2020/06/27 18:50:44 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C; use Interfaces.C;
-use Interfaces;
-
-package body Terminal_Interface.Curses.Mouse is
-
-   function Has_Mouse return Boolean
+
+
+

File : terminal_interface-curses-mouse.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                     Terminal_Interface.Curses.Mouse                      --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 1999-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.28 @
+--  @Date: 2020/06/27 18:50:44 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C; use Interfaces.C;
+use Interfaces;
+
+package body Terminal_Interface.Curses.Mouse is
+
+   function Has_Mouse return Boolean
    is
-      function Mouse_Avail return C_Int;
+      function Mouse_Avail return C_Int;
       pragma Import (C, Mouse_Avail, "has_mouse");
    begin
-      if Has_Key (Key_Mouse) or else Mouse_Avail /= 0 then
+      if Has_Key (Key_Mouse) or else Mouse_Avail /= 0 then
          return True;
       else
          return False;
       end if;
-   end Has_Mouse;
+   end Has_Mouse;
 
-   function Get_Mouse return Mouse_Event
+   function Get_Mouse return Mouse_Event
    is
-      type Event_Access is access all Mouse_Event;
+      type Event_Access is access all Mouse_Event;
 
-      function Getmouse (Ev : Event_Access) return C_Int;
+      function Getmouse (Ev : Event_Access) return C_Int;
       pragma Import (C, Getmouse, "getmouse");
 
-      Event : aliased Mouse_Event;
+      Event : aliased Mouse_Event;
    begin
-      if Getmouse (Event'Access) = Curses_Err then
-         raise Curses_Exception;
+      if Getmouse (Event'Access) = Curses_Err then
+         raise Curses_Exception;
       end if;
-      return Event;
-   end Get_Mouse;
+      return Event;
+   end Get_Mouse;
 
-   procedure Register_Reportable_Event (Button : Mouse_Button;
-                                        State  : Button_State;
-                                        Mask   : in out Event_Mask)
+   procedure Register_Reportable_Event (Button : Mouse_Button;
+                                        State  : Button_State;
+                                        Mask   : in out Event_Mask)
    is
-      Button_Nr : constant Natural := Mouse_Button'Pos (Button);
-      State_Nr  : constant Natural := Button_State'Pos (State);
+      Button_Nr : constant Natural := Mouse_Button'Pos (Button);
+      State_Nr  : constant Natural := Button_State'Pos (State);
    begin
-      if Button in Modifier_Keys and then State /= Pressed then
-         raise Curses_Exception;
+      if Button in Modifier_Keys and then State /= Pressed then
+         raise Curses_Exception;
       else
-         if Button in Real_Buttons then
-            Mask := Mask or ((2 ** (6 * Button_Nr)) ** State_Nr);
+         if Button in Real_Buttons then
+            Mask := Mask or ((2 ** (6 * Button_Nr)) ** State_Nr);
          else
-            Mask := Mask or (BUTTON_CTRL ** (Button_Nr - 4));
+            Mask := Mask or (BUTTON_CTRL ** (Button_Nr - 4));
          end if;
       end if;
-   end Register_Reportable_Event;
+   end Register_Reportable_Event;
 
-   procedure Register_Reportable_Events (Button : Mouse_Button;
-                                         State  : Button_States;
-                                         Mask   : in out Event_Mask)
+   procedure Register_Reportable_Events (Button : Mouse_Button;
+                                         State  : Button_States;
+                                         Mask   : in out Event_Mask)
    is
    begin
-      for S in Button_States'Range loop
-         if State (S) then
-            Register_Reportable_Event (Button, S, Mask);
+      for S in Button_States'Range loop
+         if State (S) then
+            Register_Reportable_Event (Button, S, Mask);
          end if;
       end loop;
-   end Register_Reportable_Events;
+   end Register_Reportable_Events;
 
-   function Start_Mouse (Mask : Event_Mask := All_Events)
-                         return Event_Mask
+   function Start_Mouse (Mask : Event_Mask := All_Events)
+                         return Event_Mask
    is
-      function MMask (M : Event_Mask;
-                      O : access Event_Mask) return Event_Mask;
+      function MMask (M : Event_Mask;
+                      O : access Event_Mask) return Event_Mask;
       pragma Import (C, MMask, "mousemask");
-      R   : Event_Mask;
-      Old : aliased Event_Mask;
+      R   : Event_Mask;
+      Old : aliased Event_Mask;
    begin
-      R := MMask (Mask, Old'Access);
-      if R = No_Events then
-         Beep;
+      R := MMask (Mask, Old'Access);
+      if R = No_Events then
+         Beep;
       end if;
-      return Old;
-   end Start_Mouse;
+      return Old;
+   end Start_Mouse;
 
-   procedure End_Mouse (Mask : Event_Mask := No_Events)
+   procedure End_Mouse (Mask : Event_Mask := No_Events)
    is
    begin
-      if Mask /= No_Events then
-         Beep;
+      if Mask /= No_Events then
+         Beep;
       end if;
-   end End_Mouse;
+   end End_Mouse;
 
-   procedure Dispatch_Event (Mask   : Event_Mask;
-                             Button : out Mouse_Button;
-                             State  : out Button_State);
+   procedure Dispatch_Event (Mask   : Event_Mask;
+                             Button : out Mouse_Button;
+                             State  : out Button_State);
 
-   procedure Dispatch_Event (Mask   : Event_Mask;
-                             Button : out Mouse_Button;
-                             State  : out Button_State) is
-      L : Event_Mask;
+   procedure Dispatch_Event (Mask   : Event_Mask;
+                             Button : out Mouse_Button;
+                             State  : out Button_State) is
+      L : Event_Mask;
    begin
-      Button := Alt;  --  preset to non real button;
-      if (Mask and BUTTON1_EVENTS) /= 0 then
-         Button := Left;
-      elsif (Mask and BUTTON2_EVENTS) /= 0 then
-         Button := Middle;
-      elsif (Mask and BUTTON3_EVENTS) /= 0 then
-         Button := Right;
-      elsif (Mask and BUTTON4_EVENTS) /= 0 then
-         Button := Button4;
+      Button := Alt;  --  preset to non real button;
+      if (Mask and BUTTON1_EVENTS) /= 0 then
+         Button := Left;
+      elsif (Mask and BUTTON2_EVENTS) /= 0 then
+         Button := Middle;
+      elsif (Mask and BUTTON3_EVENTS) /= 0 then
+         Button := Right;
+      elsif (Mask and BUTTON4_EVENTS) /= 0 then
+         Button := Button4;
       end if;
-      if Button in Real_Buttons then
-         State := Released;  --  preset to non real button;
-         L := 2 ** (6 * Mouse_Button'Pos (Button));
-         for I in Button_State'Range loop
-            if (Mask and L) /= 0 then
-               State := I;
+      if Button in Real_Buttons then
+         State := Released;  --  preset to non real button;
+         L := 2 ** (6 * Mouse_Button'Pos (Button));
+         for I in Button_State'Range loop
+            if (Mask and L) /= 0 then
+               State := I;
                exit;
             end if;
-            L := 2 * L;
+            L := 2 * L;
          end loop;
       else
-         State := Pressed;
-         if (Mask and BUTTON_CTRL) /= 0 then
-            Button := Control;
-         elsif (Mask and BUTTON_SHIFT) /= 0 then
-            Button := Shift;
-         elsif (Mask and BUTTON_ALT) /= 0 then
-            Button := Alt;
+         State := Pressed;
+         if (Mask and BUTTON_CTRL) /= 0 then
+            Button := Control;
+         elsif (Mask and BUTTON_SHIFT) /= 0 then
+            Button := Shift;
+         elsif (Mask and BUTTON_ALT) /= 0 then
+            Button := Alt;
          end if;
       end if;
-   end Dispatch_Event;
+   end Dispatch_Event;
 
-   procedure Get_Event (Event  : Mouse_Event;
-                        Y      : out Line_Position;
-                        X      : out Column_Position;
-                        Button : out Mouse_Button;
-                        State  : out Button_State)
+   procedure Get_Event (Event  : Mouse_Event;
+                        Y      : out Line_Position;
+                        X      : out Column_Position;
+                        Button : out Mouse_Button;
+                        State  : out Button_State)
    is
-      Mask  : constant Event_Mask := Event.Bstate;
+      Mask  : constant Event_Mask := Event.Bstate;
    begin
-      X := Column_Position (Event.X);
-      Y := Line_Position   (Event.Y);
-      Dispatch_Event (Mask, Button, State);
-   end Get_Event;
+      X := Column_Position (Event.X);
+      Y := Line_Position   (Event.Y);
+      Dispatch_Event (Mask, Button, State);
+   end Get_Event;
 
-   procedure Unget_Mouse (Event : Mouse_Event)
+   procedure Unget_Mouse (Event : Mouse_Event)
    is
-      function Ungetmouse (Ev : Mouse_Event) return C_Int;
+      function Ungetmouse (Ev : Mouse_Event) return C_Int;
       pragma Import (C, Ungetmouse, "ungetmouse");
    begin
-      if Ungetmouse (Event) = Curses_Err then
-         raise Curses_Exception;
+      if Ungetmouse (Event) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Unget_Mouse;
+   end Unget_Mouse;
 
-   function Enclosed_In_Window (Win    : Window := Standard_Window;
-                                Event  : Mouse_Event) return Boolean
+   function Enclosed_In_Window (Win    : Window := Standard_Window;
+                                Event  : Mouse_Event) return Boolean
    is
-      function Wenclose (Win : Window; Y : C_Int; X : C_Int)
-                         return Curses_Bool;
+      function Wenclose (Win : Window; Y : C_Int; X : C_Int)
+                         return Curses_Bool;
       pragma Import (C, Wenclose, "wenclose");
    begin
-      if Wenclose (Win, C_Int (Event.Y), C_Int (Event.X))
-        = Curses_Bool_False
+      if Wenclose (Win, C_Int (Event.Y), C_Int (Event.X))
+        = Curses_Bool_False
       then
          return False;
       else
          return True;
       end if;
-   end Enclosed_In_Window;
+   end Enclosed_In_Window;
 
-   function Mouse_Interval (Msec : Natural := 200) return Natural
+   function Mouse_Interval (Msec : Natural := 200) return Natural
    is
-      function Mouseinterval (Msec : C_Int) return C_Int;
+      function Mouseinterval (Msec : C_Int) return C_Int;
       pragma Import (C, Mouseinterval, "mouseinterval");
    begin
-      return Natural (Mouseinterval (C_Int (Msec)));
-   end Mouse_Interval;
+      return Natural (Mouseinterval (C_Int (Msec)));
+   end Mouse_Interval;
 
-end Terminal_Interface.Curses.Mouse;
-
+end Terminal_Interface.Curses.Mouse; +
diff --git a/doc/html/ada/terminal_interface-curses-mouse__ads.htm b/doc/html/ada/terminal_interface-curses-mouse__ads.htm index c4de5e5f..5ed20a8c 100644 --- a/doc/html/ada/terminal_interface-curses-mouse__ads.htm +++ b/doc/html/ada/terminal_interface-curses-mouse__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-mouse.ads + + +terminal_interface-curses-mouse.ads - - -

File : terminal_interface-curses-mouse.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Mouse                     --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2014,2015 Free 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, 1996
---  Version Control:
---  @Revision: 1.33 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-mouse.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Mouse                     --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2014,2015 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.33 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System;
 
-package Terminal_Interface.Curses.Mouse is
-   pragma Preelaborate (Terminal_Interface.Curses.Mouse);
-
-   --  |=====================================================================
-   --  | Man page curs_mouse.3x
-   --  |=====================================================================
-   --  mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates
-   --  in the parent package.
-   --
-   --  Not implemented:
-   --  REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event
-   --  or Start_Mouse)
-   type Event_Mask is private;
-   No_Events  : constant Event_Mask;
-   All_Events : constant Event_Mask;
-
-   type Mouse_Button is (Left,     -- aka: Button 1
-                         Middle,   -- aka: Button 2
-                         Right,    -- aka: Button 3
-                         Button4,  -- aka: Button 4
-                         Control,  -- Control Key
-                         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;
+package Terminal_Interface.Curses.Mouse is
+   pragma Preelaborate (Terminal_Interface.Curses.Mouse);
+
+   --  |=====================================================================
+   --  | Man page curs_mouse.3x
+   --  |=====================================================================
+   --  mouse_trafo, wmouse_trafo are implemented as Transform_Coordinates
+   --  in the parent package.
+   --
+   --  Not implemented:
+   --  REPORT_MOUSE_POSITION (i.e. as a parameter to Register_Reportable_Event
+   --  or Start_Mouse)
+   type Event_Mask is private;
+   No_Events  : constant Event_Mask;
+   All_Events : constant Event_Mask;
+
+   type Mouse_Button is (Left,     -- aka: Button 1
+                         Middle,   -- aka: Button 2
+                         Right,    -- aka: Button 3
+                         Button4,  -- aka: Button 4
+                         Control,  -- Control Key
+                         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,
+   All_Clicks : constant Button_States := (Clicked .. Triple_Clicked => True,
                                            others => False);
-   All_States : constant Button_States := (others => True);
-
-   type Mouse_Event is private;
-
-   --  |=====================================================================
-   --  | Man page curs_mouse.3x
-   --  |=====================================================================
-
-   function Has_Mouse return Boolean;
-   --  Return true if a mouse device is supported, false otherwise.
-
-   procedure Register_Reportable_Event
-     (Button : Mouse_Button;
-      State  : 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 initialize the mask
-   --  with the Empty_Mask constant
-   pragma Inline (Register_Reportable_Event);
-
-   procedure Register_Reportable_Events
-     (Button : Mouse_Button;
-      State  : 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 initialize the mask
-   --  with the Empty_Mask constant
-
-   --  |
-   --  There is one difference to mousmask(): we return the value of the
-   --  old mask, that means the event mask value before this call.
-   --  Not Implemented: The library version
-   --  returns a Mouse_Mask that tells which events are reported.
-   function Start_Mouse (Mask : Event_Mask := All_Events)
-                         return Event_Mask;
-   --  AKA: mousemask()
-   pragma Inline (Start_Mouse);
-
-   procedure End_Mouse (Mask : Event_Mask := No_Events);
-   --  Terminates the mouse, restores the specified event mask
-   pragma Inline (End_Mouse);
-
-   --  |
-   function Get_Mouse return Mouse_Event;
-   --  AKA: getmouse()
-   pragma Inline (Get_Mouse);
-
-   procedure Get_Event (Event  : Mouse_Event;
-                        Y      : out Line_Position;
-                        X      : out Column_Position;
-                        Button : out Mouse_Button;
-                        State  : out Button_State);
-   --  !!! Warning: X and Y are screen coordinates. Due to ripped of lines they
-   --  may not be identical to window coordinates.
-   --  Not Implemented: Get_Event only reports one event, the C library
-   --  version supports multiple events, e.g. {click-1, click-3}
-   pragma Inline (Get_Event);
-
-   --  |
-   procedure Unget_Mouse (Event : Mouse_Event);
-   --  AKA: ungetmouse()
-   pragma Inline (Unget_Mouse);
-
-   --  |
-   function Enclosed_In_Window (Win    : Window := Standard_Window;
-                                Event  : Mouse_Event) return Boolean;
-   --  AKA: wenclose()
-   --  But : use event instead of screen coordinates.
-   pragma Inline (Enclosed_In_Window);
-
-   --  |
-   function Mouse_Interval (Msec : Natural := 200) return Natural;
-   --  AKA: mouseinterval()
-   pragma Inline (Mouse_Interval);
+   All_States : constant Button_States := (others => True);
+
+   type Mouse_Event is private;
+
+   --  |=====================================================================
+   --  | Man page curs_mouse.3x
+   --  |=====================================================================
+
+   function Has_Mouse return Boolean;
+   --  Return true if a mouse device is supported, false otherwise.
+
+   procedure Register_Reportable_Event
+     (Button : Mouse_Button;
+      State  : 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 initialize the mask
+   --  with the Empty_Mask constant
+   pragma Inline (Register_Reportable_Event);
+
+   procedure Register_Reportable_Events
+     (Button : Mouse_Button;
+      State  : 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 initialize the mask
+   --  with the Empty_Mask constant
+
+   --  |
+   --  There is one difference to mousmask(): we return the value of the
+   --  old mask, that means the event mask value before this call.
+   --  Not Implemented: The library version
+   --  returns a Mouse_Mask that tells which events are reported.
+   function Start_Mouse (Mask : Event_Mask := All_Events)
+                         return Event_Mask;
+   --  AKA: mousemask()
+   pragma Inline (Start_Mouse);
+
+   procedure End_Mouse (Mask : Event_Mask := No_Events);
+   --  Terminates the mouse, restores the specified event mask
+   pragma Inline (End_Mouse);
+
+   --  |
+   function Get_Mouse return Mouse_Event;
+   --  AKA: getmouse()
+   pragma Inline (Get_Mouse);
+
+   procedure Get_Event (Event  : Mouse_Event;
+                        Y      : out Line_Position;
+                        X      : out Column_Position;
+                        Button : out Mouse_Button;
+                        State  : out Button_State);
+   --  !!! Warning: X and Y are screen coordinates. Due to ripped of lines they
+   --  may not be identical to window coordinates.
+   --  Not Implemented: Get_Event only reports one event, the C library
+   --  version supports multiple events, e.g. {click-1, click-3}
+   pragma Inline (Get_Event);
+
+   --  |
+   procedure Unget_Mouse (Event : Mouse_Event);
+   --  AKA: ungetmouse()
+   pragma Inline (Unget_Mouse);
+
+   --  |
+   function Enclosed_In_Window (Win    : Window := Standard_Window;
+                                Event  : Mouse_Event) return Boolean;
+   --  AKA: wenclose()
+   --  But : use event instead of screen coordinates.
+   pragma Inline (Enclosed_In_Window);
+
+   --  |
+   function Mouse_Interval (Msec : Natural := 200) return Natural;
+   --  AKA: mouseinterval()
+   pragma Inline (Mouse_Interval);
 
 private
-   --  This can be as little as 32 bits (unsigned), or as long as the system's
-   --  unsigned long.  Declare it as the minimum size to handle all valid
-   --  sizes.
-   type Event_Mask is mod 4294967296;
+   --  This can be as little as 32 bits (unsigned), or as long as the system's
+   --  unsigned long.  Declare it as the minimum size to handle all valid
+   --  sizes.
+   type Event_Mask is mod 4294967296;
 
-   type Mouse_Event is
+   type Mouse_Event is
       record
-         Id      : Integer range Integer (Interfaces.C.short'First) ..
-                                 Integer (Interfaces.C.short'Last);
-         X, Y, Z : Integer range Integer (Interfaces.C.int'First) ..
-                                 Integer (Interfaces.C.int'Last);
-         Bstate  : Event_Mask;
+         Id      : Integer range Integer (Interfaces.C.short'First) ..
+                                 Integer (Interfaces.C.short'Last);
+         X, Y, Z : Integer range Integer (Interfaces.C.int'First) ..
+                                 Integer (Interfaces.C.int'Last);
+         Bstate  : Event_Mask;
       end record;
-   pragma Convention (C, Mouse_Event);
+   pragma Convention (C, Mouse_Event);
 
-   for Mouse_Event use
+   for Mouse_Event use
       record
-         Id     at 0 range Curses_Constants.MEVENT_id_First
-           .. Curses_Constants.MEVENT_id_Last;
-         X      at 0 range Curses_Constants.MEVENT_x_First
-           .. Curses_Constants.MEVENT_x_Last;
-         Y      at 0 range Curses_Constants.MEVENT_y_First
-           .. Curses_Constants.MEVENT_y_Last;
-         Z      at 0 range Curses_Constants.MEVENT_z_First
-           .. Curses_Constants.MEVENT_z_Last;
-         Bstate at 0 range Curses_Constants.MEVENT_bstate_First
-           .. Curses_Constants.MEVENT_bstate_Last;
+         Id     at 0 range Curses_Constants.MEVENT_id_First
+           .. Curses_Constants.MEVENT_id_Last;
+         X      at 0 range Curses_Constants.MEVENT_x_First
+           .. Curses_Constants.MEVENT_x_Last;
+         Y      at 0 range Curses_Constants.MEVENT_y_First
+           .. Curses_Constants.MEVENT_y_Last;
+         Z      at 0 range Curses_Constants.MEVENT_z_First
+           .. Curses_Constants.MEVENT_z_Last;
+         Bstate at 0 range Curses_Constants.MEVENT_bstate_First
+           .. Curses_Constants.MEVENT_bstate_Last;
       end record;
-   for Mouse_Event'Size use Curses_Constants.MEVENT_Size;
-   Generation_Bit_Order : System.Bit_Order renames Curses_Constants.Bit_Order;
-
-   BUTTON_CTRL      : constant Event_Mask := Curses_Constants.BUTTON_CTRL;
-   BUTTON_SHIFT     : constant Event_Mask := Curses_Constants.BUTTON_SHIFT;
-   BUTTON_ALT       : constant Event_Mask := Curses_Constants.BUTTON_ALT;
-   BUTTON1_EVENTS   : constant Event_Mask
-     := Curses_Constants.all_events_button_1;
-   BUTTON2_EVENTS   : constant Event_Mask
-     := Curses_Constants.all_events_button_2;
-   BUTTON3_EVENTS   : constant Event_Mask
-     := Curses_Constants.all_events_button_3;
-   BUTTON4_EVENTS   : constant Event_Mask
-     := Curses_Constants.all_events_button_4;
-   ALL_MOUSE_EVENTS : constant Event_Mask := Curses_Constants.ALL_MOUSE_EVENTS;
-   No_Events        : constant Event_Mask := 0;
-   All_Events       : constant Event_Mask := ALL_MOUSE_EVENTS;
-
-end Terminal_Interface.Curses.Mouse;
-
+ for Mouse_Event'Size use Curses_Constants.MEVENT_Size; + Generation_Bit_Order : System.Bit_Order renames Curses_Constants.Bit_Order; + + BUTTON_CTRL : constant Event_Mask := Curses_Constants.BUTTON_CTRL; + BUTTON_SHIFT : constant Event_Mask := Curses_Constants.BUTTON_SHIFT; + BUTTON_ALT : constant Event_Mask := Curses_Constants.BUTTON_ALT; + BUTTON1_EVENTS : constant Event_Mask + := Curses_Constants.all_events_button_1; + BUTTON2_EVENTS : constant Event_Mask + := Curses_Constants.all_events_button_2; + BUTTON3_EVENTS : constant Event_Mask + := Curses_Constants.all_events_button_3; + BUTTON4_EVENTS : constant Event_Mask + := Curses_Constants.all_events_button_4; + ALL_MOUSE_EVENTS : constant Event_Mask := Curses_Constants.ALL_MOUSE_EVENTS; + No_Events : constant Event_Mask := 0; + All_Events : constant Event_Mask := ALL_MOUSE_EVENTS; + +end Terminal_Interface.Curses.Mouse; +
diff --git a/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm b/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm index 02c6e8fd..7270d2c8 100644 --- a/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm +++ b/doc/html/ada/terminal_interface-curses-panels-user_data__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-panels-user_data.adb + + +terminal_interface-curses-panels-user_data.adb - - -

File : terminal_interface-curses-panels-user_data.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                 Terminal_Interface.Curses.Panels.User_Data               --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux;
-use  Terminal_Interface.Curses.Aux;
-with Terminal_Interface.Curses.Panels;
-use  Terminal_Interface.Curses.Panels;
+
+
+

File : terminal_interface-curses-panels-user_data.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                 Terminal_Interface.Curses.Panels.User_Data               --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux;
+use  Terminal_Interface.Curses.Aux;
+with Terminal_Interface.Curses.Panels;
+use  Terminal_Interface.Curses.Panels;
 
-package body Terminal_Interface.Curses.Panels.User_Data is
+package body Terminal_Interface.Curses.Panels.User_Data is
 
-   use type Interfaces.C.int;
+   use type Interfaces.C.int;
 
-   procedure Set_User_Data (Pan  : Panel;
-                            Data : User_Access)
+   procedure Set_User_Data (Pan  : Panel;
+                            Data : User_Access)
    is
-      function Set_Panel_Userptr (Pan  : Panel;
-                                  Addr : User_Access) return C_Int;
+      function Set_Panel_Userptr (Pan  : Panel;
+                                  Addr : User_Access) return C_Int;
       pragma Import (C, Set_Panel_Userptr, "set_panel_userptr");
    begin
-      if Set_Panel_Userptr (Pan, Data) = Curses_Err then
-         raise Panel_Exception;
+      if Set_Panel_Userptr (Pan, Data) = Curses_Err then
+         raise Panel_Exception;
       end if;
-   end Set_User_Data;
+   end Set_User_Data;
 
-   function Get_User_Data (Pan  : Panel) return User_Access
+   function Get_User_Data (Pan  : Panel) return User_Access
    is
-      function Panel_Userptr (Pan : Panel) return User_Access;
+      function Panel_Userptr (Pan : Panel) return User_Access;
       pragma Import (C, Panel_Userptr, "panel_userptr");
    begin
-      return Panel_Userptr (Pan);
-   end Get_User_Data;
+      return Panel_Userptr (Pan);
+   end Get_User_Data;
 
-   procedure Get_User_Data (Pan  : Panel;
-                            Data : out User_Access)
+   procedure Get_User_Data (Pan  : Panel;
+                            Data : out User_Access)
    is
    begin
-      Data := Get_User_Data (Pan);
-   end Get_User_Data;
+      Data := Get_User_Data (Pan);
+   end Get_User_Data;
 
-end Terminal_Interface.Curses.Panels.User_Data;
-
+end Terminal_Interface.Curses.Panels.User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm b/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm index 81cd6d11..a39d0e48 100644 --- a/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm +++ b/doc/html/ada/terminal_interface-curses-panels-user_data__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-panels-user_data.ads + + +terminal_interface-curses-panels-user_data.ads - - -

File : terminal_interface-curses-panels-user_data.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                 Terminal_Interface.Curses.Panels.User_Data               --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.16 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-panels-user_data.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                 Terminal_Interface.Curses.Panels.User_Data               --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.16 @
+--  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 (Terminal_Interface.Curses.Panels.User_Data);
+   type User is limited private;
+   type User_Access is access all User;
+package Terminal_Interface.Curses.Panels.User_Data is
+   pragma Preelaborate (Terminal_Interface.Curses.Panels.User_Data);
 
-   --  |=====================================================================
-   --  | Man page panel.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page panel.3x
+   --  |=====================================================================
 
-   --  |
-   procedure Set_User_Data (Pan  : Panel;
-                            Data : User_Access);
-   --  AKA: set_panel_userptr
-   pragma Inline (Set_User_Data);
+   --  |
+   procedure Set_User_Data (Pan  : Panel;
+                            Data : User_Access);
+   --  AKA: set_panel_userptr
+   pragma Inline (Set_User_Data);
 
-   --  |
-   procedure Get_User_Data (Pan  : Panel;
-                            Data : out User_Access);
-   --  AKA: panel_userptr
+   --  |
+   procedure Get_User_Data (Pan  : Panel;
+                            Data : out User_Access);
+   --  AKA: panel_userptr
 
-   --  |
-   function Get_User_Data (Pan  : Panel) return User_Access;
-   --  AKA: panel_userptr
-   --  Same as function
+   --  |
+   function Get_User_Data (Pan  : Panel) return User_Access;
+   --  AKA: panel_userptr
+   --  Same as function
    pragma Inline (Get_User_Data);
 
-end Terminal_Interface.Curses.Panels.User_Data;
-
+end Terminal_Interface.Curses.Panels.User_Data; +
diff --git a/doc/html/ada/terminal_interface-curses-panels__adb.htm b/doc/html/ada/terminal_interface-curses-panels__adb.htm index c9a6e7cc..096d7fed 100644 --- a/doc/html/ada/terminal_interface-curses-panels__adb.htm +++ b/doc/html/ada/terminal_interface-curses-panels__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-panels.adb + + +terminal_interface-curses-panels.adb - - -

File : terminal_interface-curses-panels.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Panels                    --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2004,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.15 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C;
+
+
+

File : terminal_interface-curses-panels.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Panels                    --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2004,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.15 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C;
 
-package body Terminal_Interface.Curses.Panels is
+package body Terminal_Interface.Curses.Panels is
 
-   use type Interfaces.C.int;
+   use type Interfaces.C.int;
 
-   function Create (Win : Window) return Panel
+   function Create (Win : Window) return Panel
    is
-      function Newpanel (Win : Window) return Panel;
+      function Newpanel (Win : Window) return Panel;
       pragma Import (C, Newpanel, "new_panel");
 
-      Pan : Panel;
+      Pan : Panel;
    begin
-      Pan := Newpanel (Win);
-      if Pan = Null_Panel then
-         raise Panel_Exception;
+      Pan := Newpanel (Win);
+      if Pan = Null_Panel then
+         raise Panel_Exception;
       end if;
-      return Pan;
-   end Create;
+      return Pan;
+   end Create;
 
-   procedure Bottom (Pan : Panel)
+   procedure Bottom (Pan : Panel)
    is
-      function Bottompanel (Pan : Panel) return C_Int;
+      function Bottompanel (Pan : Panel) return C_Int;
       pragma Import (C, Bottompanel, "bottom_panel");
    begin
-      if Bottompanel (Pan) = Curses_Err then
-         raise Panel_Exception;
+      if Bottompanel (Pan) = Curses_Err then
+         raise Panel_Exception;
       end if;
-   end Bottom;
+   end Bottom;
 
-   procedure Top (Pan : Panel)
+   procedure Top (Pan : Panel)
    is
-      function Toppanel (Pan : Panel) return C_Int;
+      function Toppanel (Pan : Panel) return C_Int;
       pragma Import (C, Toppanel, "top_panel");
    begin
-      if Toppanel (Pan) = Curses_Err then
-         raise Panel_Exception;
+      if Toppanel (Pan) = Curses_Err then
+         raise Panel_Exception;
       end if;
-   end Top;
+   end Top;
 
-   procedure Show (Pan : Panel)
+   procedure Show (Pan : Panel)
    is
-      function Showpanel (Pan : Panel) return C_Int;
+      function Showpanel (Pan : Panel) return C_Int;
       pragma Import (C, Showpanel, "show_panel");
    begin
-      if Showpanel (Pan) = Curses_Err then
-         raise Panel_Exception;
+      if Showpanel (Pan) = Curses_Err then
+         raise Panel_Exception;
       end if;
-   end Show;
+   end Show;
 
-   procedure Hide (Pan : Panel)
+   procedure Hide (Pan : Panel)
    is
-      function Hidepanel (Pan : Panel) return C_Int;
+      function Hidepanel (Pan : Panel) return C_Int;
       pragma Import (C, Hidepanel, "hide_panel");
    begin
-      if Hidepanel (Pan) = Curses_Err then
-         raise Panel_Exception;
+      if Hidepanel (Pan) = Curses_Err then
+         raise Panel_Exception;
       end if;
-   end Hide;
+   end Hide;
 
-   function Get_Window (Pan : Panel) return Window
+   function Get_Window (Pan : Panel) return Window
    is
-      function Panel_Win (Pan : Panel) return Window;
+      function Panel_Win (Pan : Panel) return Window;
       pragma Import (C, Panel_Win, "panel_window");
 
-      Win : constant Window := Panel_Win (Pan);
+      Win : constant Window := Panel_Win (Pan);
    begin
-      if Win = Null_Window then
-         raise Panel_Exception;
+      if Win = Null_Window then
+         raise Panel_Exception;
       end if;
-      return Win;
-   end Get_Window;
+      return Win;
+   end Get_Window;
 
-   procedure Replace (Pan : Panel;
-                      Win : Window)
+   procedure Replace (Pan : Panel;
+                      Win : Window)
    is
-      function Replace_Pan (Pan : Panel;
-                            Win : Window) return C_Int;
+      function Replace_Pan (Pan : Panel;
+                            Win : Window) return C_Int;
       pragma Import (C, Replace_Pan, "replace_panel");
    begin
-      if Replace_Pan (Pan, Win) = Curses_Err then
-         raise Panel_Exception;
+      if Replace_Pan (Pan, Win) = Curses_Err then
+         raise Panel_Exception;
       end if;
-   end Replace;
+   end Replace;
 
-   procedure Move (Pan    : Panel;
-                   Line   : Line_Position;
-                   Column : Column_Position)
+   procedure Move (Pan    : Panel;
+                   Line   : Line_Position;
+                   Column : Column_Position)
    is
-      function Move (Pan    : Panel;
-                     Line   : C_Int;
-                     Column : C_Int) return C_Int;
+      function Move (Pan    : Panel;
+                     Line   : C_Int;
+                     Column : C_Int) return C_Int;
       pragma Import (C, Move, "move_panel");
    begin
-      if Move (Pan, C_Int (Line), C_Int (Column)) = Curses_Err then
-         raise Panel_Exception;
+      if Move (Pan, C_Int (Line), C_Int (Column)) = Curses_Err then
+         raise Panel_Exception;
       end if;
-   end Move;
+   end Move;
 
-   function Is_Hidden (Pan : Panel) return Boolean
+   function Is_Hidden (Pan : Panel) return Boolean
    is
-      function Panel_Hidden (Pan : Panel) return C_Int;
+      function Panel_Hidden (Pan : Panel) return C_Int;
       pragma Import (C, Panel_Hidden, "panel_hidden");
    begin
-      if Panel_Hidden (Pan) = Curses_False then
+      if Panel_Hidden (Pan) = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Is_Hidden;
+   end Is_Hidden;
 
-   procedure Delete (Pan : in out Panel)
+   procedure Delete (Pan : in out Panel)
    is
-      function Del_Panel (Pan : Panel) return C_Int;
+      function Del_Panel (Pan : Panel) return C_Int;
       pragma Import (C, Del_Panel, "del_panel");
    begin
-      if Del_Panel (Pan) = Curses_Err then
-         raise Panel_Exception;
+      if Del_Panel (Pan) = Curses_Err then
+         raise Panel_Exception;
       end if;
-      Pan := Null_Panel;
-   end Delete;
+      Pan := Null_Panel;
+   end Delete;
 
-end Terminal_Interface.Curses.Panels;
-
+end Terminal_Interface.Curses.Panels; +
diff --git a/doc/html/ada/terminal_interface-curses-panels__ads.htm b/doc/html/ada/terminal_interface-curses-panels__ads.htm index 7879fb0c..4cc3178d 100644 --- a/doc/html/ada/terminal_interface-curses-panels__ads.htm +++ b/doc/html/ada/terminal_interface-curses-panels__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-panels.ads + + +terminal_interface-curses-panels.ads - - -

File : terminal_interface-curses-panels.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Panels                    --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2009,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.23 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-panels.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Panels                    --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2009,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.23 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System;
 
-package Terminal_Interface.Curses.Panels is
-   pragma Preelaborate (Terminal_Interface.Curses.Panels);
-   pragma Linker_Options ("-lpanel" & Curses_Constants.DFT_ARG_SUFFIX);
+package Terminal_Interface.Curses.Panels is
+   pragma Preelaborate (Terminal_Interface.Curses.Panels);
+   pragma Linker_Options ("-lpanel" & Curses_Constants.DFT_ARG_SUFFIX);
 
-   type Panel is private;
+   type Panel is private;
 
-   ---------------------------
-   --  Interface constants  --
-   ---------------------------
-   Null_Panel : constant Panel;
+   ---------------------------
+   --  Interface constants  --
+   ---------------------------
+   Null_Panel : constant Panel;
 
-   -------------------
-   --  Exceptions   --
-   -------------------
+   -------------------
+   --  Exceptions   --
+   -------------------
 
-   Panel_Exception : exception;
+   Panel_Exception : exception;
 
-   --  |=====================================================================
-   --  | Man page panel.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page panel.3x
+   --  |=====================================================================
 
-   --  |
-   function Create (Win : Window) return Panel;
-   --  AKA: new_panel()
+   --  |
+   function Create (Win : Window) return Panel;
+   --  AKA: new_panel()
    pragma Inline (Create);
 
-   --  |
-   function New_Panel (Win : Window) return Panel renames Create;
-   --  AKA: new_panel()
-   --  pragma Inline (New_Panel);
-
-   --  |
-   procedure Bottom (Pan : Panel);
-   --  AKA: bottom_panel()
-   pragma Inline (Bottom);
-
-   --  |
-   procedure Top (Pan : Panel);
-   --  AKA: top_panel()
-   pragma Inline (Top);
-
-   --  |
-   procedure Show (Pan : Panel);
-   --  AKA: show_panel()
-   pragma Inline (Show);
-
-   --  |
-   procedure Update_Panels;
-   --  AKA: update_panels()
+   --  |
+   function New_Panel (Win : Window) return Panel renames Create;
+   --  AKA: new_panel()
+   --  pragma Inline (New_Panel);
+
+   --  |
+   procedure Bottom (Pan : Panel);
+   --  AKA: bottom_panel()
+   pragma Inline (Bottom);
+
+   --  |
+   procedure Top (Pan : Panel);
+   --  AKA: top_panel()
+   pragma Inline (Top);
+
+   --  |
+   procedure Show (Pan : Panel);
+   --  AKA: show_panel()
+   pragma Inline (Show);
+
+   --  |
+   procedure Update_Panels;
+   --  AKA: update_panels()
    pragma Import (C, Update_Panels, "update_panels");
 
-   --  |
-   procedure Hide (Pan : Panel);
-   --  AKA: hide_panel()
-   pragma Inline (Hide);
-
-   --  |
-   function Get_Window (Pan : Panel) return Window;
-   --  AKA: panel_window()
-   pragma Inline (Get_Window);
-
-   --  |
-   function Panel_Window (Pan : Panel) return Window renames Get_Window;
-   --  pragma Inline (Panel_Window);
-
-   --  |
-   procedure Replace (Pan : Panel;
-                      Win : Window);
-   --  AKA: replace_panel()
-   pragma Inline (Replace);
-
-   --  |
-   procedure Move (Pan    : Panel;
-                   Line   : Line_Position;
-                   Column : Column_Position);
-   --  AKA: move_panel()
-   pragma Inline (Move);
-
-   --  |
-   function Is_Hidden (Pan : Panel) return Boolean;
-   --  AKA: panel_hidden()
-   pragma Inline (Is_Hidden);
-
-   --  |
-   function Above (Pan : Panel) return Panel;
-   --  AKA: panel_above()
+   --  |
+   procedure Hide (Pan : Panel);
+   --  AKA: hide_panel()
+   pragma Inline (Hide);
+
+   --  |
+   function Get_Window (Pan : Panel) return Window;
+   --  AKA: panel_window()
+   pragma Inline (Get_Window);
+
+   --  |
+   function Panel_Window (Pan : Panel) return Window renames Get_Window;
+   --  pragma Inline (Panel_Window);
+
+   --  |
+   procedure Replace (Pan : Panel;
+                      Win : Window);
+   --  AKA: replace_panel()
+   pragma Inline (Replace);
+
+   --  |
+   procedure Move (Pan    : Panel;
+                   Line   : Line_Position;
+                   Column : Column_Position);
+   --  AKA: move_panel()
+   pragma Inline (Move);
+
+   --  |
+   function Is_Hidden (Pan : Panel) return Boolean;
+   --  AKA: panel_hidden()
+   pragma Inline (Is_Hidden);
+
+   --  |
+   function Above (Pan : Panel) return Panel;
+   --  AKA: panel_above()
    pragma Import (C, Above, "panel_above");
 
-   --  |
-   function Below (Pan : Panel) return Panel;
-   --  AKA: panel_below()
+   --  |
+   function Below (Pan : Panel) return Panel;
+   --  AKA: panel_below()
    pragma Import (C, Below, "panel_below");
 
-   --  |
-   procedure Delete (Pan : in out Panel);
-   --  AKA: del_panel()
+   --  |
+   procedure Delete (Pan : in out Panel);
+   --  AKA: del_panel()
    pragma Inline (Delete);
 
 private
-      type Panel is new System.Storage_Elements.Integer_Address;
-      Null_Panel : constant Panel := 0;
+      type Panel is new System.Storage_Elements.Integer_Address;
+      Null_Panel : constant Panel := 0;
 
-end Terminal_Interface.Curses.Panels;
-
+end Terminal_Interface.Curses.Panels; +
diff --git a/doc/html/ada/terminal_interface-curses-putwin__adb.htm b/doc/html/ada/terminal_interface-curses-putwin__adb.htm index 32f6411a..4e5073d6 100644 --- a/doc/html/ada/terminal_interface-curses-putwin__adb.htm +++ b/doc/html/ada/terminal_interface-curses-putwin__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-putwin.adb + + +terminal_interface-curses-putwin.adb - - -

File : terminal_interface-curses-putwin.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                    Terminal_Interface.Curses.PutWin                      --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
---                                                                          --
--- Permission is hereby granted, free of charge, to any person obtaining a  --
--- copy of this software and associated documentation files (the            --
--- "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, 1996
---  Version Control:
---  @Revision: 1.5 @
---  Binding Version 01.00
+
+
+

File : terminal_interface-curses-putwin.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.PutWin                      --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "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, 1996
+--  Version Control:
+--  @Revision: 1.5 @
+--  Binding Version 01.00
 
 with Ada.Streams.Stream_IO.C_Streams;
-with Interfaces.C_Streams;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C_Streams;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
 
-package body Terminal_Interface.Curses.PutWin is
+package body Terminal_Interface.Curses.PutWin is
 
-   package ICS renames Interfaces.C_Streams;
-   package ACS renames Ada.Streams.Stream_IO.C_Streams;
-   use type C_Int;
+   package ICS renames Interfaces.C_Streams;
+   package ACS renames Ada.Streams.Stream_IO.C_Streams;
+   use type C_Int;
 
-   procedure Put_Window (Win  : Window;
-                         File : Ada.Streams.Stream_IO.File_Type) is
-      function putwin (Win : Window; f : ICS.FILEs) return C_Int;
+   procedure Put_Window (Win  : Window;
+                         File : Ada.Streams.Stream_IO.File_Type) is
+      function putwin (Win : Window; f : ICS.FILEs) return C_Int;
       pragma Import (C, putwin, "putwin");
 
-      R : constant C_Int := putwin (Win, ACS.C_Stream (File));
+      R : constant C_Int := putwin (Win, ACS.C_Stream (File));
    begin
-      if R /= Curses_Ok then
-         raise Curses_Exception;
+      if R /= Curses_Ok then
+         raise Curses_Exception;
       end if;
-   end Put_Window;
+   end Put_Window;
 
-   function Get_Window (File : Ada.Streams.Stream_IO.File_Type)
-                        return Window is
-      function getwin (f : ICS.FILEs) return Window;
+   function Get_Window (File : Ada.Streams.Stream_IO.File_Type)
+                        return Window is
+      function getwin (f : ICS.FILEs) return Window;
       pragma Import (C, getwin, "getwin");
 
-      W : constant Window := getwin (ACS.C_Stream (File));
+      W : constant Window := getwin (ACS.C_Stream (File));
    begin
-      if W = Null_Window then
-         raise Curses_Exception;
+      if W = Null_Window then
+         raise Curses_Exception;
       else
-         return W;
+         return W;
       end if;
-   end Get_Window;
+   end Get_Window;
 
-end Terminal_Interface.Curses.PutWin;
-
+end Terminal_Interface.Curses.PutWin; +
diff --git a/doc/html/ada/terminal_interface-curses-putwin__ads.htm b/doc/html/ada/terminal_interface-curses-putwin__ads.htm index 9246fedc..91f26451 100644 --- a/doc/html/ada/terminal_interface-curses-putwin__ads.htm +++ b/doc/html/ada/terminal_interface-curses-putwin__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-putwin.ads + + +terminal_interface-curses-putwin.ads - - -

File : terminal_interface-curses-putwin.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                    Terminal_Interface.Curses.PutWin                      --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
---                                                                          --
--- Permission is hereby granted, free of charge, to any person obtaining a  --
--- copy of this software and associated documentation files (the            --
--- "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, 1996
---  Version Control:
---  @Revision: 1.5 @
---  Binding Version 01.00
+
+
+

File : terminal_interface-curses-putwin.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.PutWin                      --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "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, 1996
+--  Version Control:
+--  @Revision: 1.5 @
+--  Binding Version 01.00
 
 with Ada.Streams.Stream_IO;
 
-package Terminal_Interface.Curses.PutWin is
+package Terminal_Interface.Curses.PutWin is
 
-   procedure Put_Window (Win  : Window;
-                         File : Ada.Streams.Stream_IO.File_Type);
+   procedure Put_Window (Win  : Window;
+                         File : Ada.Streams.Stream_IO.File_Type);
 
-   function Get_Window (File  : Ada.Streams.Stream_IO.File_Type) return Window;
+   function Get_Window (File  : Ada.Streams.Stream_IO.File_Type) return Window;
 
-end Terminal_Interface.Curses.PutWin;
-
+end Terminal_Interface.Curses.PutWin; +
diff --git a/doc/html/ada/terminal_interface-curses-termcap__adb.htm b/doc/html/ada/terminal_interface-curses-termcap__adb.htm index b6cf8933..cef7daf3 100644 --- a/doc/html/ada/terminal_interface-curses-termcap__adb.htm +++ b/doc/html/ada/terminal_interface-curses-termcap__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-termcap.adb + + +terminal_interface-curses-termcap.adb - - -

File : terminal_interface-curses-termcap.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                    Terminal_Interface.Curses.Termcap                     --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2000-2006,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-termcap.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.Termcap                     --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000-2006,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
 
-package body Terminal_Interface.Curses.Termcap is
+package body Terminal_Interface.Curses.Termcap is
 
-   function Get_Entry (Name : String) return Boolean
+   function Get_Entry (Name : String) return Boolean
    is
-      function tgetent (name : char_array; val : char_array)
-                        return C_Int;
+      function tgetent (name : char_array; val : char_array)
+                        return C_Int;
       pragma Import (C, tgetent, "tgetent");
-      NameTxt : char_array (0 .. Name'Length);
-      Length  : size_t;
-      ignored : constant char_array (0 .. 0) := (0 => nul);
-      result  : C_Int;
+      NameTxt : char_array (0 .. Name'Length);
+      Length  : size_t;
+      ignored : constant char_array (0 .. 0) := (0 => nul);
+      result  : C_Int;
    begin
-      To_C (Name, NameTxt, Length);
-      result := tgetent (char_array (ignored), NameTxt);
-      if result = -1 then
-         raise Curses_Exception;
+      To_C (Name, NameTxt, Length);
+      result := tgetent (char_array (ignored), NameTxt);
+      if result = -1 then
+         raise Curses_Exception;
       else
-         return Boolean'Val (result);
+         return Boolean'Val (result);
       end if;
-   end Get_Entry;
+   end Get_Entry;
 
-------------------------------------------------------------------------------
-   function Get_Flag (Name : String) return Boolean
+------------------------------------------------------------------------------
+   function Get_Flag (Name : String) return Boolean
    is
-      function tgetflag (id : char_array) return C_Int;
+      function tgetflag (id : char_array) return C_Int;
       pragma Import (C, tgetflag, "tgetflag");
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
    begin
-      To_C (Name, Txt, Length);
-      if tgetflag (Txt) = 0 then
+      To_C (Name, Txt, Length);
+      if tgetflag (Txt) = 0 then
          return False;
       else
          return True;
       end if;
-   end Get_Flag;
+   end Get_Flag;
 
-------------------------------------------------------------------------------
-   procedure Get_Number (Name   : String;
-                         Value  : out Integer;
-                         Result : out Boolean)
+------------------------------------------------------------------------------
+   procedure Get_Number (Name   : String;
+                         Value  : out Integer;
+                         Result : out Boolean)
    is
-      function tgetnum (id : char_array) return C_Int;
+      function tgetnum (id : char_array) return C_Int;
       pragma Import (C, tgetnum, "tgetnum");
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
    begin
-      To_C (Name, Txt, Length);
-      Value := Integer (tgetnum (Txt));
-      if Value = -1 then
-         Result := False;
+      To_C (Name, Txt, Length);
+      Value := Integer (tgetnum (Txt));
+      if Value = -1 then
+         Result := False;
       else
-         Result :=  True;
+         Result :=  True;
       end if;
-   end Get_Number;
+   end Get_Number;
 
-------------------------------------------------------------------------------
-   procedure Get_String (Name   : String;
-                         Value  : out String;
-                         Result : out Boolean)
+------------------------------------------------------------------------------
+   procedure Get_String (Name   : String;
+                         Value  : out String;
+                         Result : out Boolean)
    is
-      function tgetstr (id  : char_array;
-                        buf : char_array) return chars_ptr;
+      function tgetstr (id  : char_array;
+                        buf : char_array) return chars_ptr;
       pragma Import (C, tgetstr, "tgetstr");
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
-      Txt2   : chars_ptr;
-      type t is new char_array (0 .. 1024); --  does it need to be 1024?
-      Return_Buffer : constant t := (others => nul);
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2   : chars_ptr;
+      type t is new char_array (0 .. 1024); --  does it need to be 1024?
+      Return_Buffer : constant t := (others => nul);
    begin
-      To_C (Name, Txt, Length);
-      Txt2 := tgetstr (Txt, char_array (Return_Buffer));
-      if Txt2 = Null_Ptr then
-         Result := False;
+      To_C (Name, Txt, Length);
+      Txt2 := tgetstr (Txt, char_array (Return_Buffer));
+      if Txt2 = Null_Ptr then
+         Result := False;
       else
-         Value := Fill_String (Txt2);
-         Result := True;
+         Value := Fill_String (Txt2);
+         Result := True;
       end if;
-   end Get_String;
+   end Get_String;
 
-   function Get_String (Name : String) return Boolean
+   function Get_String (Name : String) return Boolean
    is
-      function tgetstr (Id  : char_array;
-                        buf : char_array) return chars_ptr;
+      function tgetstr (Id  : char_array;
+                        buf : char_array) return chars_ptr;
       pragma Import (C, tgetstr, "tgetstr");
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
-      Txt2   : chars_ptr;
-      type t is new char_array (0 .. 1024); --  does it need to be 1024?
-      Phony_Txt : constant t := (others => nul);
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2   : chars_ptr;
+      type t is new char_array (0 .. 1024); --  does it need to be 1024?
+      Phony_Txt : constant t := (others => nul);
    begin
-      To_C (Name, Txt, Length);
-      Txt2 := tgetstr (Txt, char_array (Phony_Txt));
-      if Txt2 = Null_Ptr then
+      To_C (Name, Txt, Length);
+      Txt2 := tgetstr (Txt, char_array (Phony_Txt));
+      if Txt2 = Null_Ptr then
          return False;
       else
          return True;
       end if;
-   end Get_String;
+   end Get_String;
 
-------------------------------------------------------------------------------
-   function TGoto (Cap : String;
-                   Col : Column_Position;
-                   Row : Line_Position) return Termcap_String is
-      function tgoto (cap : char_array;
-                      col : C_Int;
-                      row : C_Int) return chars_ptr;
+------------------------------------------------------------------------------
+   function TGoto (Cap : String;
+                   Col : Column_Position;
+                   Row : Line_Position) return Termcap_String is
+      function tgoto (cap : char_array;
+                      col : C_Int;
+                      row : C_Int) return chars_ptr;
       pragma Import (C, tgoto);
-      Txt    : char_array (0 .. Cap'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Cap'Length);
+      Length : size_t;
    begin
-      To_C (Cap, Txt, Length);
-      return Termcap_String (Fill_String
-                             (tgoto (Txt, C_Int (Col), C_Int (Row))));
-   end TGoto;
+      To_C (Cap, Txt, Length);
+      return Termcap_String (Fill_String
+                             (tgoto (Txt, C_Int (Col), C_Int (Row))));
+   end TGoto;
 
-end Terminal_Interface.Curses.Termcap;
-
+end Terminal_Interface.Curses.Termcap; +
diff --git a/doc/html/ada/terminal_interface-curses-termcap__ads.htm b/doc/html/ada/terminal_interface-curses-termcap__ads.htm index d019b91d..269ee9dd 100644 --- a/doc/html/ada/terminal_interface-curses-termcap__ads.htm +++ b/doc/html/ada/terminal_interface-curses-termcap__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-termcap.ads + + +terminal_interface-curses-termcap.ads - - -

File : terminal_interface-curses-termcap.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                     Terminal_Interface.Curses.Termcap                    --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
---                                                                          --
--- Permission is hereby granted, free of charge, to any person obtaining a  --
--- copy of this software and associated documentation files (the            --
--- "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, 1996
---  Version Control:
---  @Revision: 1.5 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-termcap.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                     Terminal_Interface.Curses.Termcap                    --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "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, 1996
+--  Version Control:
+--  @Revision: 1.5 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 
-package Terminal_Interface.Curses.Termcap is
-   pragma Preelaborate (Terminal_Interface.Curses.Termcap);
+package Terminal_Interface.Curses.Termcap is
+   pragma Preelaborate (Terminal_Interface.Curses.Termcap);
 
-   --  |=====================================================================
-   --  | Man page curs_termcap.3x
-   --  |=====================================================================
-   --  Not implemented:  tputs (see curs_terminfo)
+   --  |=====================================================================
+   --  | Man page curs_termcap.3x
+   --  |=====================================================================
+   --  Not implemented:  tputs (see curs_terminfo)
 
    type Termcap_String is new String;
 
-   --  |
-   function TGoto (Cap : String;
-                   Col : Column_Position;
-                   Row : Line_Position) return Termcap_String;
-   --  AKA: tgoto()
+   --  |
+   function TGoto (Cap : String;
+                   Col : Column_Position;
+                   Row : Line_Position) return Termcap_String;
+   --  AKA: tgoto()
 
-   --  |
-   function Get_Entry (Name : String) return Boolean;
-   --  AKA: tgetent()
+   --  |
+   function Get_Entry (Name : String) return Boolean;
+   --  AKA: tgetent()
 
-   --  |
-   function Get_Flag (Name : String) return Boolean;
-   --  AKA: tgetflag()
+   --  |
+   function Get_Flag (Name : String) return Boolean;
+   --  AKA: tgetflag()
 
-   --  |
-   procedure Get_Number (Name   : String;
-                         Value  : out Integer;
-                         Result : out Boolean);
-   --  AKA: tgetnum()
+   --  |
+   procedure Get_Number (Name   : String;
+                         Value  : out Integer;
+                         Result : out Boolean);
+   --  AKA: tgetnum()
 
-   --  |
-   procedure Get_String (Name   : String;
-                         Value  : out String;
-                         Result : out Boolean);
-   function Get_String (Name : String) return Boolean;
-   --  Returns True if the string is found.
-   --  AKA: tgetstr()
+   --  |
+   procedure Get_String (Name   : String;
+                         Value  : out String;
+                         Result : out Boolean);
+   function Get_String (Name : String) return Boolean;
+   --  Returns True if the string is found.
+   --  AKA: tgetstr()
 
-end Terminal_Interface.Curses.Termcap;
-
+end Terminal_Interface.Curses.Termcap; +
diff --git a/doc/html/ada/terminal_interface-curses-terminfo__adb.htm b/doc/html/ada/terminal_interface-curses-terminfo__adb.htm index 9b25898c..c84c2035 100644 --- a/doc/html/ada/terminal_interface-curses-terminfo__adb.htm +++ b/doc/html/ada/terminal_interface-curses-terminfo__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-terminfo.adb + + +terminal_interface-curses-terminfo.adb - - -

File : terminal_interface-curses-terminfo.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                    Terminal_Interface.Curses.Terminfo                    --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2000-2006,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.7 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-terminfo.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                    Terminal_Interface.Curses.Terminfo                    --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000-2006,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.7 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-with Interfaces.C; use Interfaces.C;
-with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
 with Ada.Unchecked_Conversion;
 
-package body Terminal_Interface.Curses.Terminfo is
+package body Terminal_Interface.Curses.Terminfo is
 
-   function Is_MinusOne_Pointer (P : chars_ptr) return Boolean;
+   function Is_MinusOne_Pointer (P : chars_ptr) return Boolean;
 
-   function Is_MinusOne_Pointer (P : chars_ptr) return Boolean is
-      type Weird_Address is new System.Storage_Elements.Integer_Address;
-      Invalid_Pointer : constant Weird_Address := -1;
+   function Is_MinusOne_Pointer (P : chars_ptr) return Boolean is
+      type Weird_Address is new System.Storage_Elements.Integer_Address;
+      Invalid_Pointer : constant Weird_Address := -1;
       function To_Weird is new Ada.Unchecked_Conversion
-        (Source => chars_ptr, Target => Weird_Address);
+        (Source => chars_ptr, Target => Weird_Address);
    begin
-      if To_Weird (P) = Invalid_Pointer then
+      if To_Weird (P) = Invalid_Pointer then
          return True;
       else
          return False;
       end if;
-   end Is_MinusOne_Pointer;
-   pragma Inline (Is_MinusOne_Pointer);
+   end Is_MinusOne_Pointer;
+   pragma Inline (Is_MinusOne_Pointer);
 
-------------------------------------------------------------------------------
-   function Get_Flag (Name : String) return Boolean
+------------------------------------------------------------------------------
+   function Get_Flag (Name : String) return Boolean
    is
-      function tigetflag (id : char_array) return Curses_Bool;
+      function tigetflag (id : char_array) return Curses_Bool;
       pragma Import (C, tigetflag);
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
    begin
-      To_C (Name, Txt, Length);
-      if tigetflag (Txt) = Curses_Bool (Curses_True) then
+      To_C (Name, Txt, Length);
+      if tigetflag (Txt) = Curses_Bool (Curses_True) then
          return True;
       else
          return False;
       end if;
-   end Get_Flag;
+   end Get_Flag;
 
-------------------------------------------------------------------------------
-   procedure Get_String (Name   : String;
-                         Value  : out Terminfo_String;
-                         Result : out Boolean)
+------------------------------------------------------------------------------
+   procedure Get_String (Name   : String;
+                         Value  : out Terminfo_String;
+                         Result : out Boolean)
    is
-      function tigetstr (id : char_array) return chars_ptr;
+      function tigetstr (id : char_array) return chars_ptr;
       pragma Import (C, tigetstr, "tigetstr");
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
-      Txt2 : chars_ptr;
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2 : chars_ptr;
    begin
-      To_C (Name, Txt, Length);
-      Txt2 := tigetstr (Txt);
-      if Txt2 = Null_Ptr then
-         Result := False;
-      elsif Is_MinusOne_Pointer (Txt2) then
-         raise Curses_Exception;
+      To_C (Name, Txt, Length);
+      Txt2 := tigetstr (Txt);
+      if Txt2 = Null_Ptr then
+         Result := False;
+      elsif Is_MinusOne_Pointer (Txt2) then
+         raise Curses_Exception;
       else
-         Value  := Terminfo_String (Fill_String (Txt2));
-         Result := True;
+         Value  := Terminfo_String (Fill_String (Txt2));
+         Result := True;
       end if;
-   end Get_String;
+   end Get_String;
 
-------------------------------------------------------------------------------
-   function Has_String (Name : String) return Boolean
+------------------------------------------------------------------------------
+   function Has_String (Name : String) return Boolean
    is
-      function tigetstr (id : char_array) return chars_ptr;
+      function tigetstr (id : char_array) return chars_ptr;
       pragma Import (C, tigetstr, "tigetstr");
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
-      Txt2 : chars_ptr;
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
+      Txt2 : chars_ptr;
    begin
-      To_C (Name, Txt, Length);
-      Txt2 := tigetstr (Txt);
-      if Txt2 = Null_Ptr then
+      To_C (Name, Txt, Length);
+      Txt2 := tigetstr (Txt);
+      if Txt2 = Null_Ptr then
          return False;
-      elsif Is_MinusOne_Pointer (Txt2) then
-         raise Curses_Exception;
+      elsif Is_MinusOne_Pointer (Txt2) then
+         raise Curses_Exception;
       else
          return True;
       end if;
-   end Has_String;
+   end Has_String;
 
-------------------------------------------------------------------------------
-   function Get_Number (Name : String) return Integer is
-      function tigetstr (s : char_array) return C_Int;
+------------------------------------------------------------------------------
+   function Get_Number (Name : String) return Integer is
+      function tigetstr (s : char_array) return C_Int;
       pragma Import (C, tigetstr);
-      Txt    : char_array (0 .. Name'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Name'Length);
+      Length : size_t;
    begin
-      To_C (Name, Txt, Length);
-      return Integer (tigetstr (Txt));
-   end Get_Number;
+      To_C (Name, Txt, Length);
+      return Integer (tigetstr (Txt));
+   end Get_Number;
 
-------------------------------------------------------------------------------
-   procedure Put_String (Str    : Terminfo_String;
-                         affcnt : Natural := 1;
-                         putc   : putctype := null) is
-      function tputs (str    : char_array;
-                      affcnt : C_Int;
-                      putc   : putctype) return C_Int;
-      function putp (str : char_array) return C_Int;
+------------------------------------------------------------------------------
+   procedure Put_String (Str    : Terminfo_String;
+                         affcnt : Natural := 1;
+                         putc   : putctype := null) is
+      function tputs (str    : char_array;
+                      affcnt : C_Int;
+                      putc   : putctype) return C_Int;
+      function putp (str : char_array) return C_Int;
       pragma Import (C, tputs);
       pragma Import (C, putp);
-      Txt    : char_array (0 .. Str'Length);
-      Length : size_t;
-      Err : C_Int;
+      Txt    : char_array (0 .. Str'Length);
+      Length : size_t;
+      Err : C_Int;
    begin
-      To_C (String (Str), Txt, Length);
-      if putc = null then
-         Err := putp (Txt);
+      To_C (String (Str), Txt, Length);
+      if putc = null then
+         Err := putp (Txt);
       else
-         Err := tputs (Txt, C_Int (affcnt), putc);
+         Err := tputs (Txt, C_Int (affcnt), putc);
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Put_String;
+   end Put_String;
 
-end Terminal_Interface.Curses.Terminfo;
-
+end Terminal_Interface.Curses.Terminfo; +
diff --git a/doc/html/ada/terminal_interface-curses-terminfo__ads.htm b/doc/html/ada/terminal_interface-curses-terminfo__ads.htm index e4721d0d..58592807 100644 --- a/doc/html/ada/terminal_interface-curses-terminfo__ads.htm +++ b/doc/html/ada/terminal_interface-curses-terminfo__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-terminfo.ads + + +terminal_interface-curses-terminfo.ads - - -

File : terminal_interface-curses-terminfo.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                     Terminal_Interface.Curses.Terminfo                   --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
---                                                                          --
--- Permission is hereby granted, free of charge, to any person obtaining a  --
--- copy of this software and associated documentation files (the            --
--- "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, 1996
---  Version Control:
---  @Revision: 1.5 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-terminfo.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                     Terminal_Interface.Curses.Terminfo                   --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000-2002,2003 Free Software Foundation, Inc.                  --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "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, 1996
+--  Version Control:
+--  @Revision: 1.5 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 
-with Interfaces.C;
+with Interfaces.C;
 
-package Terminal_Interface.Curses.Terminfo is
-   pragma Preelaborate (Terminal_Interface.Curses.Terminfo);
+package Terminal_Interface.Curses.Terminfo is
+   pragma Preelaborate (Terminal_Interface.Curses.Terminfo);
 
-   --  |=====================================================================
-   --  | Man page curs_terminfo.3x
-   --  |=====================================================================
-   --  Not implemented:  setupterm, setterm, set_curterm, del_curterm,
-   --                    restartterm, tparm, putp, vidputs,  vidattr,
-   --                    mvcur
+   --  |=====================================================================
+   --  | Man page curs_terminfo.3x
+   --  |=====================================================================
+   --  Not implemented:  setupterm, setterm, set_curterm, del_curterm,
+   --                    restartterm, tparm, putp, vidputs,  vidattr,
+   --                    mvcur
 
    type Terminfo_String is new String;
 
-   --  |
-   procedure Get_String (Name   : String;
-                         Value  : out Terminfo_String;
-                         Result : out Boolean);
-   function Has_String (Name : String) return Boolean;
-   --  AKA: tigetstr()
+   --  |
+   procedure Get_String (Name   : String;
+                         Value  : out Terminfo_String;
+                         Result : out Boolean);
+   function Has_String (Name : String) return Boolean;
+   --  AKA: tigetstr()
 
-   --  |
-   function Get_Flag (Name : String) return Boolean;
-   --  AKA: tigetflag()
+   --  |
+   function Get_Flag (Name : String) return Boolean;
+   --  AKA: tigetflag()
 
-   --  |
-   function Get_Number (Name : String) return Integer;
-   --  AKA: tigetnum()
+   --  |
+   function Get_Number (Name : String) return Integer;
+   --  AKA: tigetnum()
 
-   type putctype is access function (c : Interfaces.C.int)
-                                    return Interfaces.C.int;
-   pragma Convention (C, putctype);
+   type putctype is access function (c : Interfaces.C.int)
+                                    return Interfaces.C.int;
+   pragma Convention (C, putctype);
 
-   --  |
-   procedure Put_String (Str    : Terminfo_String;
-                         affcnt : Natural := 1;
-                         putc   : putctype := null);
-   --  AKA: tputs()
+   --  |
+   procedure Put_String (Str    : Terminfo_String;
+                         affcnt : Natural := 1;
+                         putc   : putctype := null);
+   --  AKA: tputs()
 
-end Terminal_Interface.Curses.Terminfo;
-
+end Terminal_Interface.Curses.Terminfo; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm index 2fa040c7..6ce4a43c 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-aux__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-aux.adb + + +terminal_interface-curses-text_io-aux.adb - - -

File : terminal_interface-curses-text_io-aux.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                   Terminal_Interface.Curses.Text_IO.Aux                  --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2006,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.14 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Text_IO.Aux is
+
+
+

File : terminal_interface-curses-text_io-aux.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                   Terminal_Interface.Curses.Text_IO.Aux                  --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2006,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.14 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package body Terminal_Interface.Curses.Text_IO.Aux is
 
-   procedure Put_Buf
-     (Win    : Window;
-      Buf    : String;
-      Width  : Field;
-      Signal : Boolean := True;
-      Ljust  : Boolean := False)
+   procedure Put_Buf
+     (Win    : Window;
+      Buf    : String;
+      Width  : Field;
+      Signal : Boolean := True;
+      Ljust  : Boolean := False)
    is
-      L   : Field;
-      Len : Field;
-      W   : Field := Width;
-      LC  : Line_Count;
-      CC  : Column_Count;
-      Y   : Line_Position;
-      X   : Column_Position;
+      L   : Field;
+      Len : Field;
+      W   : Field := Width;
+      LC  : Line_Count;
+      CC  : Column_Count;
+      Y   : Line_Position;
+      X   : Column_Position;
 
-      procedure Output (From, To : Field);
+      procedure Output (From, To : Field);
 
-      procedure Output (From, To : Field)
+      procedure Output (From, To : Field)
       is
       begin
-         if Len > 0 then
-            if W = 0 then
-               W := Len;
+         if Len > 0 then
+            if W = 0 then
+               W := Len;
             end if;
-            if Len > W then
-               --  LRM A10.6 (7) says this
-               W := Len;
+            if Len > W then
+               --  LRM A10.6 (7) says this
+               W := Len;
             end if;
 
-            pragma Assert (Len <= W);
-            Get_Size (Win, LC, CC);
-            if Column_Count (Len) > CC then
-               if Signal then
-                  raise Layout_Error;
+            pragma Assert (Len <= W);
+            Get_Size (Win, LC, CC);
+            if Column_Count (Len) > CC then
+               if Signal then
+                  raise Layout_Error;
                else
                   return;
                end if;
             else
-               if Len < W and then not Ljust then
+               if Len < W and then not Ljust then
                   declare
-                     Filler : constant String (1 .. (W - Len))
+                     Filler : constant String (1 .. (W - Len))
                        := (others => ' ');
                   begin
-                     Put (Win, Filler);
+                     Put (Win, Filler);
                   end;
                end if;
-               Get_Cursor_Position (Win, Y, X);
-               if (X + Column_Position (Len)) > CC then
-                  New_Line (Win);
+               Get_Cursor_Position (Win, Y, X);
+               if (X + Column_Position (Len)) > CC then
+                  New_Line (Win);
                end if;
-               Put (Win, Buf (From .. To));
-               if Len < W and then Ljust then
+               Put (Win, Buf (From .. To));
+               if Len < W and then Ljust then
                   declare
-                     Filler : constant String (1 .. (W - Len))
+                     Filler : constant String (1 .. (W - Len))
                        := (others => ' ');
                   begin
-                     Put (Win, Filler);
+                     Put (Win, Filler);
                   end;
                end if;
             end if;
          end if;
-      end Output;
+      end Output;
 
    begin
-      pragma Assert (Win /= Null_Window);
-      if Ljust then
-         L := 1;
-         for I in 1 .. Buf'Length loop
-            exit when Buf (L) = ' ';
-            L := L + 1;
+      pragma Assert (Win /= Null_Window);
+      if Ljust then
+         L := 1;
+         for I in 1 .. Buf'Length loop
+            exit when Buf (L) = ' ';
+            L := L + 1;
          end loop;
-         Len := L - 1;
-         Output (1, Len);
-      else  -- input buffer is not left justified
-         L := Buf'Length;
-         for I in 1 .. Buf'Length loop
-            exit when Buf (L) = ' ';
-            L := L - 1;
+         Len := L - 1;
+         Output (1, Len);
+      else  -- input buffer is not left justified
+         L := Buf'Length;
+         for I in 1 .. Buf'Length loop
+            exit when Buf (L) = ' ';
+            L := L - 1;
          end loop;
-         Len := Buf'Length - L;
-         Output (L + 1, Buf'Length);
+         Len := Buf'Length - L;
+         Output (L + 1, Buf'Length);
       end if;
-   end Put_Buf;
+   end Put_Buf;
 
-end Terminal_Interface.Curses.Text_IO.Aux;
-
+end Terminal_Interface.Curses.Text_IO.Aux; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm index 62eac4ca..82589864 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-aux__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-aux.ads + + +terminal_interface-curses-text_io-aux.ads - - -

File : terminal_interface-curses-text_io-aux.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                   Terminal_Interface.Curses.Text_IO.Aux                  --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2006,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.15 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-private package Terminal_Interface.Curses.Text_IO.Aux is
-   --  pragma Preelaborate (Aux);
+
+
+

File : terminal_interface-curses-text_io-aux.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                   Terminal_Interface.Curses.Text_IO.Aux                  --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2006,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.15 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+private package Terminal_Interface.Curses.Text_IO.Aux is
+   --  pragma Preelaborate (Aux);
 
-   --  This routine is called from the Text_IO output routines for numeric
-   --  and enumeration types.
-   --
-   procedure Put_Buf
-     (Win    : Window;               -- The output window
-      Buf    : String;               -- The buffer containing the text
-      Width  : Field;                -- The width of the output field
-      Signal : Boolean := True;      -- If true, we raise Layout_Error
-      Ljust  : Boolean := False);    -- The Buf is left justified
+   --  This routine is called from the Text_IO output routines for numeric
+   --  and enumeration types.
+   --
+   procedure Put_Buf
+     (Win    : Window;               -- The output window
+      Buf    : String;               -- The buffer containing the text
+      Width  : Field;                -- The width of the output field
+      Signal : Boolean := True;      -- If true, we raise Layout_Error
+      Ljust  : Boolean := False);    -- The Buf is left justified
 
-end Terminal_Interface.Curses.Text_IO.Aux;
-
+end Terminal_Interface.Curses.Text_IO.Aux; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm index bc8e1178..cad3300a 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-complex_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-complex_io.adb + + +terminal_interface-curses-text_io-complex_io.adb - - -

File : terminal_interface-curses-text_io-complex_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Complex_IO               --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Terminal_Interface.Curses.Text_IO.Float_IO;
+
+
+

File : terminal_interface-curses-text_io-complex_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Complex_IO               --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Text_IO.Float_IO;
 
-package body Terminal_Interface.Curses.Text_IO.Complex_IO is
+package body Terminal_Interface.Curses.Text_IO.Complex_IO is
 
    package FIO is new
-     Terminal_Interface.Curses.Text_IO.Float_IO (Complex_Types.Real'Base);
+     Terminal_Interface.Curses.Text_IO.Float_IO (Complex_Types.Real'Base);
 
-   procedure Put
-     (Win  : Window;
+   procedure Put
+     (Win  : Window;
       Item : Complex;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp)
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp)
    is
    begin
-      Put (Win, '(');
-      FIO.Put (Win, Item.Re, Fore, Aft, Exp);
-      Put (Win, ',');
-      FIO.Put (Win, Item.Im, Fore, Aft, Exp);
-      Put (Win, ')');
-   end Put;
+      Put (Win, '(');
+      FIO.Put (Win, Item.Re, Fore, Aft, Exp);
+      Put (Win, ',');
+      FIO.Put (Win, Item.Im, Fore, Aft, Exp);
+      Put (Win, ')');
+   end Put;
 
-   procedure Put
+   procedure Put
      (Item : Complex;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp)
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp)
    is
    begin
-      Put (Get_Window, Item, Fore, Aft, Exp);
-   end Put;
+      Put (Get_Window, Item, Fore, Aft, Exp);
+   end Put;
 
-end Terminal_Interface.Curses.Text_IO.Complex_IO;
-
+end Terminal_Interface.Curses.Text_IO.Complex_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm index 7abdb640..ac7607eb 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-complex_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-complex_io.ads + + +terminal_interface-curses-text_io-complex_io.ads - - -

File : terminal_interface-curses-text_io-complex_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Complex_IO               --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-complex_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Complex_IO               --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Numerics.Generic_Complex_Types;
 
 generic
-   with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (<>);
+   with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (<>);
 
-package Terminal_Interface.Curses.Text_IO.Complex_IO is
+package Terminal_Interface.Curses.Text_IO.Complex_IO is
 
    use Complex_Types;
 
-   Default_Fore : Field := 2;
-   Default_Aft  : Field := Real'Digits - 1;
-   Default_Exp  : Field := 3;
+   Default_Fore : Field := 2;
+   Default_Aft  : Field := Real'Digits - 1;
+   Default_Exp  : Field := 3;
 
-   procedure Put
-     (Win  : Window;
-      Item : Complex;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Win  : Window;
+      Item : Complex;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
-   procedure Put
-     (Item : Complex;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Item : Complex;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
 private
    pragma Inline (Put);
 
-end Terminal_Interface.Curses.Text_IO.Complex_IO;
-
+end Terminal_Interface.Curses.Text_IO.Complex_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm index 4dc88020..7977d76d 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-decimal_io.adb + + +terminal_interface-curses-text_io-decimal_io.adb - - -

File : terminal_interface-curses-text_io-decimal_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Decimal_IO               --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-decimal_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Decimal_IO               --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
+with Terminal_Interface.Curses.Text_IO.Aux;
 
-package body Terminal_Interface.Curses.Text_IO.Decimal_IO is
+package body Terminal_Interface.Curses.Text_IO.Decimal_IO is
 
-   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
-   package DIO is new Ada.Text_IO.Decimal_IO (Num);
+   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+   package DIO is new Ada.Text_IO.Decimal_IO (Num);
 
-   procedure Put
-     (Win  : Window;
-      Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp)
+   procedure Put
+     (Win  : Window;
+      Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp)
    is
-      Buf : String (1 .. Field'Last);
-      Len : Field := Fore + 1 + Aft;
+      Buf : String (1 .. Field'Last);
+      Len : Field := Fore + 1 + Aft;
    begin
-      if Exp > 0 then
-         Len := Len + 1 + Exp;
+      if Exp > 0 then
+         Len := Len + 1 + Exp;
       end if;
-      DIO.Put (Buf, Item, Aft, Exp);
-      Aux.Put_Buf (Win, Buf, Len, False);
-   end Put;
+      DIO.Put (Buf, Item, Aft, Exp);
+      Aux.Put_Buf (Win, Buf, Len, False);
+   end Put;
 
-   procedure Put
-     (Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp) is
+   procedure Put
+     (Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp) is
    begin
-      Put (Get_Window, Item, Fore, Aft, Exp);
-   end Put;
+      Put (Get_Window, Item, Fore, Aft, Exp);
+   end Put;
 
-end Terminal_Interface.Curses.Text_IO.Decimal_IO;
-
+end Terminal_Interface.Curses.Text_IO.Decimal_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm index f3db7e75..727165e0 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-decimal_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-decimal_io.ads + + +terminal_interface-curses-text_io-decimal_io.ads - - -

File : terminal_interface-curses-text_io-decimal_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Decimal_IO               --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-decimal_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Decimal_IO               --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 generic
-   type Num is delta <> digits <>;
+   type Num is delta <> digits <>;
 
-package Terminal_Interface.Curses.Text_IO.Decimal_IO is
+package Terminal_Interface.Curses.Text_IO.Decimal_IO is
 
-   Default_Fore : Field := Num'Fore;
-   Default_Aft  : Field := Num'Aft;
-   Default_Exp  : Field := 0;
+   Default_Fore : Field := Num'Fore;
+   Default_Aft  : Field := Num'Aft;
+   Default_Exp  : Field := 0;
 
-   procedure Put
-     (Win  : Window;
-      Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Win  : Window;
+      Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
-   procedure Put
-     (Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
 private
    pragma Inline (Put);
 
-end Terminal_Interface.Curses.Text_IO.Decimal_IO;
-
+end Terminal_Interface.Curses.Text_IO.Decimal_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm index fd959f14..9d316057 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-enumeration_io.adb + + +terminal_interface-curses-text_io-enumeration_io.adb - - -

File : terminal_interface-curses-text_io-enumeration_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---             Terminal_Interface.Curses.Text_IO.Enumeration_IO             --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-enumeration_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--             Terminal_Interface.Curses.Text_IO.Enumeration_IO             --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Text_IO;
 with Ada.Characters.Handling; use Ada.Characters.Handling;
-with Terminal_Interface.Curses.Text_IO.Aux;
+with Terminal_Interface.Curses.Text_IO.Aux;
 
-package body Terminal_Interface.Curses.Text_IO.Enumeration_IO is
+package body Terminal_Interface.Curses.Text_IO.Enumeration_IO is
 
-   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
-   package EIO is new Ada.Text_IO.Enumeration_IO (Enum);
+   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+   package EIO is new Ada.Text_IO.Enumeration_IO (Enum);
 
-   procedure Put
-     (Win   : Window;
-      Item  : Enum;
-      Width : Field := Default_Width;
-      Set   : Type_Set := Default_Setting)
+   procedure Put
+     (Win   : Window;
+      Item  : Enum;
+      Width : Field := Default_Width;
+      Set   : Type_Set := Default_Setting)
    is
-      Buf  : String (1 .. Field'Last);
-      Tset : Ada.Text_IO.Type_Set;
+      Buf  : String (1 .. Field'Last);
+      Tset : Ada.Text_IO.Type_Set;
    begin
-      if Set /= Mixed_Case then
-         Tset := Ada.Text_IO.Type_Set'Val (Type_Set'Pos (Set));
+      if Set /= Mixed_Case then
+         Tset := Ada.Text_IO.Type_Set'Val (Type_Set'Pos (Set));
       else
-         Tset := Ada.Text_IO.Lower_Case;
+         Tset := Ada.Text_IO.Lower_Case;
       end if;
-      EIO.Put (Buf, Item, Tset);
-      if Set = Mixed_Case then
-         Buf (Buf'First) := To_Upper (Buf (Buf'First));
+      EIO.Put (Buf, Item, Tset);
+      if Set = Mixed_Case then
+         Buf (Buf'First) := To_Upper (Buf (Buf'First));
       end if;
-      Aux.Put_Buf (Win, Buf, Width, True, True);
-   end Put;
+      Aux.Put_Buf (Win, Buf, Width, True, True);
+   end Put;
 
-   procedure Put
-     (Item  : Enum;
-      Width : Field := Default_Width;
-      Set   : Type_Set := Default_Setting)
+   procedure Put
+     (Item  : Enum;
+      Width : Field := Default_Width;
+      Set   : Type_Set := Default_Setting)
    is
    begin
-      Put (Get_Window, Item, Width, Set);
-   end Put;
+      Put (Get_Window, Item, Width, Set);
+   end Put;
 
-end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-
+end Terminal_Interface.Curses.Text_IO.Enumeration_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm index d29a51ef..4f7bc7fc 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-enumeration_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-enumeration_io.ads + + +terminal_interface-curses-text_io-enumeration_io.ads - - -

File : terminal_interface-curses-text_io-enumeration_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---             Terminal_Interface.Curses.Text_IO.Enumeration_IO             --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-enumeration_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--             Terminal_Interface.Curses.Text_IO.Enumeration_IO             --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 generic
-   type Enum is (<>);
+   type Enum is (<>);
 
-package Terminal_Interface.Curses.Text_IO.Enumeration_IO is
+package Terminal_Interface.Curses.Text_IO.Enumeration_IO is
 
-   Default_Width : Field := 0;
-   Default_Setting : Type_Set := Mixed_Case;
+   Default_Width : Field := 0;
+   Default_Setting : Type_Set := Mixed_Case;
 
-   procedure Put
-     (Win   : Window;
-      Item  : Enum;
-      Width : Field := Default_Width;
-      Set   : Type_Set := Default_Setting);
+   procedure Put
+     (Win   : Window;
+      Item  : Enum;
+      Width : Field := Default_Width;
+      Set   : Type_Set := Default_Setting);
 
-   procedure Put
-     (Item  : Enum;
-      Width : Field := Default_Width;
-      Set   : Type_Set := Default_Setting);
+   procedure Put
+     (Item  : Enum;
+      Width : Field := Default_Width;
+      Set   : Type_Set := Default_Setting);
 
 private
    pragma Inline (Put);
 
-end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
-
+end Terminal_Interface.Curses.Text_IO.Enumeration_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm index 51b88dce..b14e73ec 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-fixed_io.adb + + +terminal_interface-curses-text_io-fixed_io.adb - - -

File : terminal_interface-curses-text_io-fixed_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                Terminal_Interface.Curses.Text_IO.Fixed_IO                --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-fixed_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                Terminal_Interface.Curses.Text_IO.Fixed_IO                --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
+with Terminal_Interface.Curses.Text_IO.Aux;
 
-package body Terminal_Interface.Curses.Text_IO.Fixed_IO is
+package body Terminal_Interface.Curses.Text_IO.Fixed_IO is
 
-   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
-   package FIXIO is new Ada.Text_IO.Fixed_IO (Num);
+   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+   package FIXIO is new Ada.Text_IO.Fixed_IO (Num);
 
-   procedure Put
-     (Win  : Window;
-      Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp)
+   procedure Put
+     (Win  : Window;
+      Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp)
    is
-      Buf : String (1 .. Field'Last);
-      Len : Field := Fore + 1 + Aft;
+      Buf : String (1 .. Field'Last);
+      Len : Field := Fore + 1 + Aft;
    begin
-      if Exp > 0 then
-         Len := Len + 1 + Exp;
+      if Exp > 0 then
+         Len := Len + 1 + Exp;
       end if;
-      FIXIO.Put (Buf, Item, Aft, Exp);
-      Aux.Put_Buf (Win, Buf, Len, False);
-   end Put;
+      FIXIO.Put (Buf, Item, Aft, Exp);
+      Aux.Put_Buf (Win, Buf, Len, False);
+   end Put;
 
-   procedure Put
-     (Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp) is
+   procedure Put
+     (Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp) is
    begin
-      Put (Get_Window, Item, Fore, Aft, Exp);
-   end Put;
+      Put (Get_Window, Item, Fore, Aft, Exp);
+   end Put;
 
-end Terminal_Interface.Curses.Text_IO.Fixed_IO;
-
+end Terminal_Interface.Curses.Text_IO.Fixed_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm index f6f9eb86..abd2b999 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-fixed_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-fixed_io.ads + + +terminal_interface-curses-text_io-fixed_io.ads - - -

File : terminal_interface-curses-text_io-fixed_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                Terminal_Interface.Curses.Text_IO.Fixed_IO                --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-fixed_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                Terminal_Interface.Curses.Text_IO.Fixed_IO                --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 generic
-   type Num is delta <>;
+   type Num is delta <>;
 
-package Terminal_Interface.Curses.Text_IO.Fixed_IO is
+package Terminal_Interface.Curses.Text_IO.Fixed_IO is
 
-   Default_Fore : Field := Num'Fore;
-   Default_Aft  : Field := Num'Aft;
-   Default_Exp  : Field := 0;
+   Default_Fore : Field := Num'Fore;
+   Default_Aft  : Field := Num'Aft;
+   Default_Exp  : Field := 0;
 
-   procedure Put
-     (Win  : Window;
-      Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Win  : Window;
+      Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
-   procedure Put
-     (Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
 private
    pragma Inline (Put);
 
-end Terminal_Interface.Curses.Text_IO.Fixed_IO;
-
+end Terminal_Interface.Curses.Text_IO.Fixed_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm index d1512326..a0ba64c5 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-float_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-float_io.adb + + +terminal_interface-curses-text_io-float_io.adb - - -

File : terminal_interface-curses-text_io-float_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                Terminal_Interface.Curses.Text_IO.Float_IO                --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-float_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                Terminal_Interface.Curses.Text_IO.Float_IO                --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
+with Terminal_Interface.Curses.Text_IO.Aux;
 
-package body Terminal_Interface.Curses.Text_IO.Float_IO is
+package body Terminal_Interface.Curses.Text_IO.Float_IO is
 
-   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
-   package FIO is new Ada.Text_IO.Float_IO (Num);
+   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+   package FIO is new Ada.Text_IO.Float_IO (Num);
 
-   procedure Put
-     (Win  : Window;
-      Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp)
+   procedure Put
+     (Win  : Window;
+      Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp)
    is
-      Buf : String (1 .. Field'Last);
-      Len : Field := Fore + 1 + Aft;
+      Buf : String (1 .. Field'Last);
+      Len : Field := Fore + 1 + Aft;
    begin
-      if Exp > 0 then
-         Len := Len + 1 + Exp;
+      if Exp > 0 then
+         Len := Len + 1 + Exp;
       end if;
-      FIO.Put (Buf, Item, Aft, Exp);
-      Aux.Put_Buf (Win, Buf, Len, False);
-   end Put;
+      FIO.Put (Buf, Item, Aft, Exp);
+      Aux.Put_Buf (Win, Buf, Len, False);
+   end Put;
 
-   procedure Put
-     (Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp)
+   procedure Put
+     (Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp)
    is
    begin
-      Put (Get_Window, Item, Fore, Aft, Exp);
-   end Put;
+      Put (Get_Window, Item, Fore, Aft, Exp);
+   end Put;
 
-end Terminal_Interface.Curses.Text_IO.Float_IO;
-
+end Terminal_Interface.Curses.Text_IO.Float_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm index 4b16d638..a4382f19 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-float_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-float_io.ads + + +terminal_interface-curses-text_io-float_io.ads - - -

File : terminal_interface-curses-text_io-float_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                Terminal_Interface.Curses.Text_IO.Float_IO                --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-float_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                Terminal_Interface.Curses.Text_IO.Float_IO                --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 generic
-   type Num is digits <>;
+   type Num is digits <>;
 
-package Terminal_Interface.Curses.Text_IO.Float_IO is
+package Terminal_Interface.Curses.Text_IO.Float_IO is
 
-   Default_Fore : Field := 2;
-   Default_Aft  : Field := Num'Digits - 1;
-   Default_Exp  : Field := 3;
+   Default_Fore : Field := 2;
+   Default_Aft  : Field := Num'Digits - 1;
+   Default_Exp  : Field := 3;
 
-   procedure Put
-     (Win  : Window;
-      Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Win  : Window;
+      Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
-   procedure Put
-     (Item : Num;
-      Fore : Field := Default_Fore;
-      Aft  : Field := Default_Aft;
-      Exp  : Field := Default_Exp);
+   procedure Put
+     (Item : Num;
+      Fore : Field := Default_Fore;
+      Aft  : Field := Default_Aft;
+      Exp  : Field := Default_Exp);
 
 private
    pragma Inline (Put);
 
-end Terminal_Interface.Curses.Text_IO.Float_IO;
-
+end Terminal_Interface.Curses.Text_IO.Float_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm index d92a03dd..f158e334 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-integer_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-integer_io.adb + + +terminal_interface-curses-text_io-integer_io.adb - - -

File : terminal_interface-curses-text_io-integer_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Integer_IO               --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-integer_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Integer_IO               --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
+with Terminal_Interface.Curses.Text_IO.Aux;
 
-package body Terminal_Interface.Curses.Text_IO.Integer_IO is
+package body Terminal_Interface.Curses.Text_IO.Integer_IO is
 
-   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
-   package IIO is new Ada.Text_IO.Integer_IO (Num);
+   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+   package IIO is new Ada.Text_IO.Integer_IO (Num);
 
-   procedure Put
-     (Win   : Window;
-      Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base)
+   procedure Put
+     (Win   : Window;
+      Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base)
    is
-      Buf : String (1 .. Field'Last);
+      Buf : String (1 .. Field'Last);
    begin
-      IIO.Put (Buf, Item, Base);
-      Aux.Put_Buf (Win, Buf, Width);
-   end Put;
+      IIO.Put (Buf, Item, Base);
+      Aux.Put_Buf (Win, Buf, Width);
+   end Put;
 
-   procedure Put
-     (Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base)
+   procedure Put
+     (Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base)
    is
    begin
-      Put (Get_Window, Item, Width, Base);
-   end Put;
+      Put (Get_Window, Item, Width, Base);
+   end Put;
 
-end Terminal_Interface.Curses.Text_IO.Integer_IO;
-
+end Terminal_Interface.Curses.Text_IO.Integer_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm index 52be27ea..23239f69 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-integer_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-integer_io.ads + + +terminal_interface-curses-text_io-integer_io.ads - - -

File : terminal_interface-curses-text_io-integer_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Integer_IO               --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-integer_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Integer_IO               --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 generic
-   type Num is range <>;
+   type Num is range <>;
 
-package Terminal_Interface.Curses.Text_IO.Integer_IO is
+package Terminal_Interface.Curses.Text_IO.Integer_IO is
 
-   Default_Width : Field := Num'Width;
-   Default_Base  : Number_Base := 10;
+   Default_Width : Field := Num'Width;
+   Default_Base  : Number_Base := 10;
 
-   procedure Put
-     (Win   : Window;
-      Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base);
+   procedure Put
+     (Win   : Window;
+      Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base);
 
-   procedure Put
-     (Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base);
+   procedure Put
+     (Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base);
 
 private
    pragma Inline (Put);
 
-end Terminal_Interface.Curses.Text_IO.Integer_IO;
-
+end Terminal_Interface.Curses.Text_IO.Integer_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm index bc5ebf88..0645bb6e 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-modular_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-modular_io.adb + + +terminal_interface-curses-text_io-modular_io.adb - - -

File : terminal_interface-curses-text_io-modular_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Modular_IO               --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-modular_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Modular_IO               --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Text_IO;
-with Terminal_Interface.Curses.Text_IO.Aux;
+with Terminal_Interface.Curses.Text_IO.Aux;
 
-package body Terminal_Interface.Curses.Text_IO.Modular_IO is
+package body Terminal_Interface.Curses.Text_IO.Modular_IO is
 
-   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
-   package MIO is new Ada.Text_IO.Modular_IO (Num);
+   package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+   package MIO is new Ada.Text_IO.Modular_IO (Num);
 
-   procedure Put
-     (Win   : Window;
-      Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base)
+   procedure Put
+     (Win   : Window;
+      Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base)
    is
-      Buf : String (1 .. Field'Last);
+      Buf : String (1 .. Field'Last);
    begin
-      MIO.Put (Buf, Item, Base);
-      Aux.Put_Buf (Win, Buf, Width);
-   end Put;
+      MIO.Put (Buf, Item, Base);
+      Aux.Put_Buf (Win, Buf, Width);
+   end Put;
 
-   procedure Put
-     (Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base)
+   procedure Put
+     (Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base)
    is
    begin
-      Put (Get_Window, Item, Width, Base);
-   end Put;
+      Put (Get_Window, Item, Width, Base);
+   end Put;
 
-end Terminal_Interface.Curses.Text_IO.Modular_IO;
-
+end Terminal_Interface.Curses.Text_IO.Modular_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm index f78a3692..043ac0a3 100644 --- a/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io-modular_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io-modular_io.ads + + +terminal_interface-curses-text_io-modular_io.ads - - -

File : terminal_interface-curses-text_io-modular_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---               Terminal_Interface.Curses.Text_IO.Modular_IO               --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.13 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io-modular_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--               Terminal_Interface.Curses.Text_IO.Modular_IO               --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.13 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 generic
-   type Num is mod <>;
+   type Num is mod <>;
 
-package Terminal_Interface.Curses.Text_IO.Modular_IO is
+package Terminal_Interface.Curses.Text_IO.Modular_IO is
 
-   Default_Width : Field := Num'Width;
-   Default_Base  : Number_Base := 10;
+   Default_Width : Field := Num'Width;
+   Default_Base  : Number_Base := 10;
 
-   procedure Put
-     (Win   : Window;
-      Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base);
+   procedure Put
+     (Win   : Window;
+      Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base);
 
-   procedure Put
-     (Item  : Num;
-      Width : Field := Default_Width;
-      Base  : Number_Base := Default_Base);
+   procedure Put
+     (Item  : Num;
+      Width : Field := Default_Width;
+      Base  : Number_Base := Default_Base);
 
 private
    pragma Inline (Put);
 
-end Terminal_Interface.Curses.Text_IO.Modular_IO;
-
+end Terminal_Interface.Curses.Text_IO.Modular_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io__adb.htm b/doc/html/ada/terminal_interface-curses-text_io__adb.htm index a1997113..379760c0 100644 --- a/doc/html/ada/terminal_interface-curses-text_io__adb.htm +++ b/doc/html/ada/terminal_interface-curses-text_io__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io.adb + + +terminal_interface-curses-text_io.adb - - -

File : terminal_interface-curses-text_io.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                     Terminal_Interface.Curses.Text_IO                    --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.23 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package body Terminal_Interface.Curses.Text_IO is
-
-   Default_Window : Window := Null_Window;
-
-   procedure Set_Window (Win : Window)
+
+
+

File : terminal_interface-curses-text_io.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                     Terminal_Interface.Curses.Text_IO                    --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.23 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package body Terminal_Interface.Curses.Text_IO is
+
+   Default_Window : Window := Null_Window;
+
+   procedure Set_Window (Win : Window)
    is
    begin
-      Default_Window := Win;
-   end Set_Window;
+      Default_Window := Win;
+   end Set_Window;
 
-   function Get_Window return Window
+   function Get_Window return Window
    is
    begin
-      if Default_Window = Null_Window then
-         return Standard_Window;
+      if Default_Window = Null_Window then
+         return Standard_Window;
       else
-         return Default_Window;
+         return Default_Window;
       end if;
-   end Get_Window;
-   pragma Inline (Get_Window);
+   end Get_Window;
+   pragma Inline (Get_Window);
 
-   procedure Flush (Win : Window)
+   procedure Flush (Win : Window)
    is
    begin
-      Refresh (Win);
-   end Flush;
+      Refresh (Win);
+   end Flush;
 
-   procedure Flush
+   procedure Flush
    is
    begin
-      Flush (Get_Window);
-   end Flush;
+      Flush (Get_Window);
+   end Flush;
 
-   --------------------------------------------
-   -- Specification of line and page lengths --
-   --------------------------------------------
+   --------------------------------------------
+   -- Specification of line and page lengths --
+   --------------------------------------------
 
-   --  There are no set routines in this package. I assume, that you allocate
-   --  the window with an appropriate size.
-   --  A scroll-window is interpreted as an page with unbounded page length,
-   --  i.e. it returns the conventional 0 as page length.
+   --  There are no set routines in this package. I assume, that you allocate
+   --  the window with an appropriate size.
+   --  A scroll-window is interpreted as an page with unbounded page length,
+   --  i.e. it returns the conventional 0 as page length.
 
-   function Line_Length (Win : Window) return Count
+   function Line_Length (Win : Window) return Count
    is
-      N_Lines : Line_Count;
-      N_Cols  : Column_Count;
+      N_Lines : Line_Count;
+      N_Cols  : Column_Count;
    begin
-      Get_Size (Win, N_Lines, N_Cols);
-      --  if Natural (N_Cols) > Natural (Count'Last) then
-      --     raise Layout_Error;
-      --  end if;
-      return Count (N_Cols);
-   end Line_Length;
-
-   function Line_Length return Count
+      Get_Size (Win, N_Lines, N_Cols);
+      --  if Natural (N_Cols) > Natural (Count'Last) then
+      --     raise Layout_Error;
+      --  end if;
+      return Count (N_Cols);
+   end Line_Length;
+
+   function Line_Length return Count
    is
    begin
-      return Line_Length (Get_Window);
-   end Line_Length;
+      return Line_Length (Get_Window);
+   end Line_Length;
 
-   function Page_Length (Win : Window) return Count
+   function Page_Length (Win : Window) return Count
    is
-      N_Lines : Line_Count;
-      N_Cols  : Column_Count;
+      N_Lines : Line_Count;
+      N_Cols  : Column_Count;
    begin
-      if Scrolling_Allowed (Win) then
+      if Scrolling_Allowed (Win) then
          return 0;
       else
-         Get_Size (Win, N_Lines, N_Cols);
-         --  if Natural (N_Lines) > Natural (Count'Last) then
-         --     raise Layout_Error;
-         --  end if;
-         return Count (N_Lines);
+         Get_Size (Win, N_Lines, N_Cols);
+         --  if Natural (N_Lines) > Natural (Count'Last) then
+         --     raise Layout_Error;
+         --  end if;
+         return Count (N_Lines);
       end if;
-   end Page_Length;
+   end Page_Length;
 
-   function Page_Length return Count
+   function Page_Length return Count
    is
    begin
-      return Page_Length (Get_Window);
-   end Page_Length;
+      return Page_Length (Get_Window);
+   end Page_Length;
 
-   ------------------------------------
-   -- Column, Line, and Page Control --
-   ------------------------------------
-   procedure New_Line (Win : Window; Spacing : Positive_Count := 1)
+   ------------------------------------
+   -- Column, Line, and Page Control --
+   ------------------------------------
+   procedure New_Line (Win : Window; Spacing : Positive_Count := 1)
    is
-      P_Size : constant Count := Page_Length (Win);
+      P_Size : constant Count := Page_Length (Win);
    begin
-      if not Spacing'Valid then
+      if not Spacing'Valid then
          raise Constraint_Error;
       end if;
 
-      for I in 1 .. Spacing loop
-         if P_Size > 0 and then Line (Win) >= P_Size then
-            New_Page (Win);
+      for I in 1 .. Spacing loop
+         if P_Size > 0 and then Line (Win) >= P_Size then
+            New_Page (Win);
          else
-            Add (Win, ASCII.LF);
+            Add (Win, ASCII.LF);
          end if;
       end loop;
-   end New_Line;
+   end New_Line;
 
-   procedure New_Line (Spacing : Positive_Count := 1)
+   procedure New_Line (Spacing : Positive_Count := 1)
    is
    begin
-      New_Line (Get_Window, Spacing);
-   end New_Line;
+      New_Line (Get_Window, Spacing);
+   end New_Line;
 
-   procedure New_Page (Win : Window)
+   procedure New_Page (Win : Window)
    is
    begin
-      Clear (Win);
-   end New_Page;
+      Clear (Win);
+   end New_Page;
 
-   procedure New_Page
+   procedure New_Page
    is
    begin
-      New_Page (Get_Window);
-   end New_Page;
+      New_Page (Get_Window);
+   end New_Page;
 
-   procedure Set_Col (Win : Window;  To : Positive_Count)
+   procedure Set_Col (Win : Window;  To : Positive_Count)
    is
-      Y  : Line_Position;
-      X1 : Column_Position;
-      X2 : Column_Position;
-      N  : Natural;
+      Y  : Line_Position;
+      X1 : Column_Position;
+      X2 : Column_Position;
+      N  : Natural;
    begin
-      if not To'Valid then
+      if not To'Valid then
          raise Constraint_Error;
       end if;
 
-      Get_Cursor_Position (Win, Y, X1);
-      N  := Natural (To); N := N - 1;
-      X2 := Column_Position (N);
-      if X1 > X2 then
-         New_Line (Win, 1);
-         X1 := 0;
+      Get_Cursor_Position (Win, Y, X1);
+      N  := Natural (To); N := N - 1;
+      X2 := Column_Position (N);
+      if X1 > X2 then
+         New_Line (Win, 1);
+         X1 := 0;
       end if;
-      if X1 < X2 then
+      if X1 < X2 then
          declare
-            Filler : constant String (Integer (X1) .. (Integer (X2) - 1))
+            Filler : constant String (Integer (X1) .. (Integer (X2) - 1))
               := (others => ' ');
          begin
-            Put (Win, Filler);
+            Put (Win, Filler);
          end;
       end if;
-   end Set_Col;
+   end Set_Col;
 
-   procedure Set_Col (To : Positive_Count)
+   procedure Set_Col (To : Positive_Count)
    is
    begin
-      Set_Col (Get_Window, To);
-   end Set_Col;
+      Set_Col (Get_Window, To);
+   end Set_Col;
 
-   procedure Set_Line (Win : Window; To : Positive_Count)
+   procedure Set_Line (Win : Window; To : Positive_Count)
    is
-      Y1 : Line_Position;
-      Y2 : Line_Position;
-      X  : Column_Position;
-      N  : Natural;
+      Y1 : Line_Position;
+      Y2 : Line_Position;
+      X  : Column_Position;
+      N  : Natural;
    begin
-      if not To'Valid then
+      if not To'Valid then
          raise Constraint_Error;
       end if;
 
-      Get_Cursor_Position (Win, Y1, X);
-      pragma Warnings (Off, X);         --  unreferenced
-      N  := Natural (To); N := N - 1;
-      Y2 := Line_Position (N);
-      if Y2 < Y1 then
-         New_Page (Win);
-         Y1 := 0;
+      Get_Cursor_Position (Win, Y1, X);
+      pragma Warnings (Off, X);         --  unreferenced
+      N  := Natural (To); N := N - 1;
+      Y2 := Line_Position (N);
+      if Y2 < Y1 then
+         New_Page (Win);
+         Y1 := 0;
       end if;
-      if Y1 < Y2 then
-         New_Line (Win, Positive_Count (Y2 - Y1));
+      if Y1 < Y2 then
+         New_Line (Win, Positive_Count (Y2 - Y1));
       end if;
-   end Set_Line;
+   end Set_Line;
 
-   procedure Set_Line (To : Positive_Count)
+   procedure Set_Line (To : Positive_Count)
    is
    begin
-      Set_Line (Get_Window, To);
-   end Set_Line;
+      Set_Line (Get_Window, To);
+   end Set_Line;
 
-   function Col (Win : Window) return Positive_Count
+   function Col (Win : Window) return Positive_Count
    is
-      Y : Line_Position;
-      X : Column_Position;
-      N : Natural;
+      Y : Line_Position;
+      X : Column_Position;
+      N : Natural;
    begin
-      Get_Cursor_Position (Win, Y, X);
-      N := Natural (X); N := N + 1;
-      --  if N > Natural (Count'Last) then
-      --     raise Layout_Error;
-      --  end if;
-      return Positive_Count (N);
-   end Col;
-
-   function Col return Positive_Count
+      Get_Cursor_Position (Win, Y, X);
+      N := Natural (X); N := N + 1;
+      --  if N > Natural (Count'Last) then
+      --     raise Layout_Error;
+      --  end if;
+      return Positive_Count (N);
+   end Col;
+
+   function Col return Positive_Count
    is
    begin
-      return Col (Get_Window);
-   end Col;
+      return Col (Get_Window);
+   end Col;
 
-   function Line (Win : Window) return Positive_Count
+   function Line (Win : Window) return Positive_Count
    is
-      Y : Line_Position;
-      X : Column_Position;
-      N : Natural;
+      Y : Line_Position;
+      X : Column_Position;
+      N : Natural;
    begin
-      Get_Cursor_Position (Win, Y, X);
-      N := Natural (Y); N := N + 1;
-      --  if N > Natural (Count'Last) then
-      --     raise Layout_Error;
-      --  end if;
-      return Positive_Count (N);
-   end Line;
-
-   function Line return Positive_Count
+      Get_Cursor_Position (Win, Y, X);
+      N := Natural (Y); N := N + 1;
+      --  if N > Natural (Count'Last) then
+      --     raise Layout_Error;
+      --  end if;
+      return Positive_Count (N);
+   end Line;
+
+   function Line return Positive_Count
    is
    begin
-      return Line (Get_Window);
-   end Line;
+      return Line (Get_Window);
+   end Line;
 
-   -----------------------
-   -- Characters Output --
-   -----------------------
+   -----------------------
+   -- Characters Output --
+   -----------------------
 
-   procedure Put (Win  : Window; Item : Character)
+   procedure Put (Win  : Window; Item : Character)
    is
-      P_Size : constant Count := Page_Length (Win);
-      Y : Line_Position;
-      X : Column_Position;
-      L : Line_Count;
-      C : Column_Count;
+      P_Size : constant Count := Page_Length (Win);
+      Y : Line_Position;
+      X : Column_Position;
+      L : Line_Count;
+      C : Column_Count;
    begin
-      if P_Size > 0 then
-         Get_Cursor_Position (Win, Y, X);
-         Get_Size (Win, L, C);
-         if (Y + 1) = L and then (X + 1) = C then
-            New_Page (Win);
+      if P_Size > 0 then
+         Get_Cursor_Position (Win, Y, X);
+         Get_Size (Win, L, C);
+         if (Y + 1) = L and then (X + 1) = C then
+            New_Page (Win);
          end if;
       end if;
-      Add (Win, Item);
-   end Put;
+      Add (Win, Item);
+   end Put;
 
-   procedure Put (Item : Character)
+   procedure Put (Item : Character)
    is
    begin
-      Put (Get_Window, Item);
-   end Put;
+      Put (Get_Window, Item);
+   end Put;
 
-   --------------------
-   -- Strings-Output --
-   --------------------
+   --------------------
+   -- Strings-Output --
+   --------------------
 
-   procedure Put (Win  : Window; Item : String)
+   procedure Put (Win  : Window; Item : String)
    is
-      P_Size : constant Count := Page_Length (Win);
-      Y : Line_Position;
-      X : Column_Position;
-      L : Line_Count;
-      C : Column_Count;
+      P_Size : constant Count := Page_Length (Win);
+      Y : Line_Position;
+      X : Column_Position;
+      L : Line_Count;
+      C : Column_Count;
    begin
-      if P_Size > 0 then
-         Get_Cursor_Position (Win, Y, X);
-         Get_Size (Win, L, C);
-         if (Y + 1) = L and then (X + 1 + Item'Length) >= C then
-            New_Page (Win);
+      if P_Size > 0 then
+         Get_Cursor_Position (Win, Y, X);
+         Get_Size (Win, L, C);
+         if (Y + 1) = L and then (X + 1 + Item'Length) >= C then
+            New_Page (Win);
          end if;
       end if;
-      Add (Win, Item);
-   end Put;
+      Add (Win, Item);
+   end Put;
 
-   procedure Put (Item : String)
+   procedure Put (Item : String)
    is
    begin
-      Put (Get_Window, Item);
-   end Put;
+      Put (Get_Window, Item);
+   end Put;
 
-   procedure Put_Line
-     (Win  : Window;
-      Item : String)
+   procedure Put_Line
+     (Win  : Window;
+      Item : String)
    is
    begin
-      Put (Win, Item);
-      New_Line (Win, 1);
-   end Put_Line;
+      Put (Win, Item);
+      New_Line (Win, 1);
+   end Put_Line;
 
-   procedure Put_Line
-     (Item : String)
+   procedure Put_Line
+     (Item : String)
    is
    begin
-      Put_Line (Get_Window, Item);
-   end Put_Line;
+      Put_Line (Get_Window, Item);
+   end Put_Line;
 
-end Terminal_Interface.Curses.Text_IO;
-
+end Terminal_Interface.Curses.Text_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-text_io__ads.htm b/doc/html/ada/terminal_interface-curses-text_io__ads.htm index 03ee64b7..580dd824 100644 --- a/doc/html/ada/terminal_interface-curses-text_io__ads.htm +++ b/doc/html/ada/terminal_interface-curses-text_io__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-text_io.ads + + +terminal_interface-curses-text_io.ads - - -

File : terminal_interface-curses-text_io.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                     Terminal_Interface.Curses.Text_IO                    --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2009 Free 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, 1996
---  Version Control:
---  @Revision: 1.15 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-text_io.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                     Terminal_Interface.Curses.Text_IO                    --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2009 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.15 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with Ada.Text_IO;
 with Ada.IO_Exceptions;
 
-package Terminal_Interface.Curses.Text_IO is
+package Terminal_Interface.Curses.Text_IO is
 
    use type Ada.Text_IO.Count;
-   subtype Count is Ada.Text_IO.Count;
-   subtype Positive_Count is Count range 1 .. Count'Last;
+   subtype Count is Ada.Text_IO.Count;
+   subtype Positive_Count is Count range 1 .. Count'Last;
 
-   subtype Field is Ada.Text_IO.Field;
-   subtype Number_Base is Integer range 2 .. 16;
+   subtype Field is Ada.Text_IO.Field;
+   subtype Number_Base is Integer range 2 .. 16;
 
-   type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
+   type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
 
-   --  For most of the routines you will see a version without a Window
-   --  type parameter. They will operate on a default window, which can
-   --  be set by the user. It is initially equal to Standard_Window.
+   --  For most of the routines you will see a version without a Window
+   --  type parameter. They will operate on a default window, which can
+   --  be set by the user. It is initially equal to Standard_Window.
 
-   procedure Set_Window (Win : Window);
-   --  Set Win as the default window
+   procedure Set_Window (Win : Window);
+   --  Set Win as the default window
 
-   function Get_Window return Window;
-   --  Get the current default window
+   function Get_Window return Window;
+   --  Get the current default window
 
-   procedure Flush (Win : Window);
-   procedure Flush;
+   procedure Flush (Win : Window);
+   procedure Flush;
 
-   --------------------------------------------
-   -- Specification of line and page lengths --
-   --------------------------------------------
+   --------------------------------------------
+   -- Specification of line and page lengths --
+   --------------------------------------------
 
-   --  There are no set routines in this package. I assume, that you allocate
-   --  the window with an appropriate size.
-   --  A scroll-window is interpreted as an page with unbounded page length,
-   --  i.e. it returns the conventional 0 as page length.
+   --  There are no set routines in this package. I assume, that you allocate
+   --  the window with an appropriate size.
+   --  A scroll-window is interpreted as an page with unbounded page length,
+   --  i.e. it returns the conventional 0 as page length.
 
-   function Line_Length (Win : Window) return Count;
-   function Line_Length return Count;
+   function Line_Length (Win : Window) return Count;
+   function Line_Length return Count;
 
-   function Page_Length (Win : Window) return Count;
-   function Page_Length return Count;
+   function Page_Length (Win : Window) return Count;
+   function Page_Length return Count;
 
-   ------------------------------------
-   -- Column, Line, and Page Control --
-   ------------------------------------
-   procedure New_Line (Win : Window; Spacing : Positive_Count := 1);
-   procedure New_Line (Spacing : Positive_Count := 1);
+   ------------------------------------
+   -- Column, Line, and Page Control --
+   ------------------------------------
+   procedure New_Line (Win : Window; Spacing : Positive_Count := 1);
+   procedure New_Line (Spacing : Positive_Count := 1);
 
-   procedure New_Page (Win : Window);
-   procedure New_Page;
+   procedure New_Page (Win : Window);
+   procedure New_Page;
 
-   procedure Set_Col (Win : Window;  To : Positive_Count);
-   procedure Set_Col (To : Positive_Count);
+   procedure Set_Col (Win : Window;  To : Positive_Count);
+   procedure Set_Col (To : Positive_Count);
 
-   procedure Set_Line (Win : Window; To : Positive_Count);
-   procedure Set_Line (To : Positive_Count);
+   procedure Set_Line (Win : Window; To : Positive_Count);
+   procedure Set_Line (To : Positive_Count);
 
-   function Col (Win : Window) return Positive_Count;
-   function Col return Positive_Count;
+   function Col (Win : Window) return Positive_Count;
+   function Col return Positive_Count;
 
-   function Line (Win : Window) return Positive_Count;
-   function Line return Positive_Count;
+   function Line (Win : Window) return Positive_Count;
+   function Line return Positive_Count;
 
-   -----------------------
-   -- Characters-Output --
-   -----------------------
+   -----------------------
+   -- Characters-Output --
+   -----------------------
 
-   procedure Put (Win  : Window; Item : Character);
-   procedure Put (Item : Character);
+   procedure Put (Win  : Window; Item : Character);
+   procedure Put (Item : Character);
 
-   --------------------
-   -- Strings-Output --
-   --------------------
+   --------------------
+   -- Strings-Output --
+   --------------------
 
-   procedure Put (Win  : Window; Item : String);
-   procedure Put (Item : String);
+   procedure Put (Win  : Window; Item : String);
+   procedure Put (Item : String);
 
-   procedure Put_Line
-     (Win  : Window;
-      Item : String);
+   procedure Put_Line
+     (Win  : Window;
+      Item : String);
 
-   procedure Put_Line
-     (Item : String);
+   procedure Put_Line
+     (Item : String);
 
-   --  Exceptions
+   --  Exceptions
 
-   Status_Error : exception renames Ada.IO_Exceptions.Status_Error;
-   Mode_Error   : exception renames Ada.IO_Exceptions.Mode_Error;
-   Name_Error   : exception renames Ada.IO_Exceptions.Name_Error;
-   Use_Error    : exception renames Ada.IO_Exceptions.Use_Error;
-   Device_Error : exception renames Ada.IO_Exceptions.Device_Error;
-   End_Error    : exception renames Ada.IO_Exceptions.End_Error;
-   Data_Error   : exception renames Ada.IO_Exceptions.Data_Error;
-   Layout_Error : exception renames Ada.IO_Exceptions.Layout_Error;
+   Status_Error : exception renames Ada.IO_Exceptions.Status_Error;
+   Mode_Error   : exception renames Ada.IO_Exceptions.Mode_Error;
+   Name_Error   : exception renames Ada.IO_Exceptions.Name_Error;
+   Use_Error    : exception renames Ada.IO_Exceptions.Use_Error;
+   Device_Error : exception renames Ada.IO_Exceptions.Device_Error;
+   End_Error    : exception renames Ada.IO_Exceptions.End_Error;
+   Data_Error   : exception renames Ada.IO_Exceptions.Data_Error;
+   Layout_Error : exception renames Ada.IO_Exceptions.Layout_Error;
 
-end Terminal_Interface.Curses.Text_IO;
-
+end Terminal_Interface.Curses.Text_IO; +
diff --git a/doc/html/ada/terminal_interface-curses-trace__adb.htm b/doc/html/ada/terminal_interface-curses-trace__adb.htm index a5952109..05455ee8 100644 --- a/doc/html/ada/terminal_interface-curses-trace__adb.htm +++ b/doc/html/ada/terminal_interface-curses-trace__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-trace.adb + + +terminal_interface-curses-trace.adb - - -

File : terminal_interface-curses-trace.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Trace                     --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2001-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.12 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-with Interfaces.C; use Interfaces.C;
+
+
+

File : terminal_interface-curses-trace.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Trace                     --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2001-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.12 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C; use Interfaces.C;
 
-package body Terminal_Interface.Curses.Trace is
+package body Terminal_Interface.Curses.Trace is
 
-   procedure Trace_On (x : Trace_Attribute_Set) is
-      procedure traceC (y : Trace_Attribute_Set);
+   procedure Trace_On (x : Trace_Attribute_Set) is
+      procedure traceC (y : Trace_Attribute_Set);
       pragma Import (C, traceC, "trace");
    begin
-      traceC (x);
-   end Trace_On;
+      traceC (x);
+   end Trace_On;
 
-   procedure Trace_Put (str : String) is
-      procedure tracef (format : char_array; s : char_array);
+   procedure Trace_Put (str : String) is
+      procedure tracef (format : char_array; s : char_array);
       pragma Import (C, tracef, "_traces");
-      --  _traces() is defined in c_varargs_to_ada.h
+      --  _traces() is defined in c_varargs_to_ada.h
    begin
-      tracef (To_C ("%s"), To_C (str));
-   end Trace_Put;
+      tracef (To_C ("%s"), To_C (str));
+   end Trace_Put;
 
-end Terminal_Interface.Curses.Trace;
-
+end Terminal_Interface.Curses.Trace; +
diff --git a/doc/html/ada/terminal_interface-curses-trace__ads.htm b/doc/html/ada/terminal_interface-curses-trace__ads.htm index 136c93fc..43695163 100644 --- a/doc/html/ada/terminal_interface-curses-trace__ads.htm +++ b/doc/html/ada/terminal_interface-curses-trace__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses-trace.ads + + +terminal_interface-curses-trace.ads - - -

File : terminal_interface-curses-trace.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                      Terminal_Interface.Curses.Trace                     --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 2000,2014 Free 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: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
---  Version Control:
---  @Revision: 1.5 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses-trace.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                      Terminal_Interface.Curses.Trace                     --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 2000,2014 Free 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: Eugene V. Melaragno <aldomel@ix.netcom.com> 2000
+--  Version Control:
+--  @Revision: 1.5 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 
-package Terminal_Interface.Curses.Trace is
-   pragma Preelaborate (Terminal_Interface.Curses.Trace);
+package Terminal_Interface.Curses.Trace is
+   pragma Preelaborate (Terminal_Interface.Curses.Trace);
 
-   type Trace_Attribute_Set is
+   type Trace_Attribute_Set is
       record
-         Times            : Boolean;
-         Tputs            : Boolean;
-         Update           : Boolean;
-         Cursor_Move      : Boolean;
-         Character_Output : Boolean;
-         Calls            : Boolean;
-         Virtual_Puts     : Boolean;
-         Input_Events     : Boolean;
-         TTY_State        : Boolean;
-         Internal_Calls   : Boolean;
-         Character_Calls  : Boolean;
-         Termcap_TermInfo : Boolean;
-         Attribute_Color  : Boolean;
+         Times            : Boolean;
+         Tputs            : Boolean;
+         Update           : Boolean;
+         Cursor_Move      : Boolean;
+         Character_Output : Boolean;
+         Calls            : Boolean;
+         Virtual_Puts     : Boolean;
+         Input_Events     : Boolean;
+         TTY_State        : Boolean;
+         Internal_Calls   : Boolean;
+         Character_Calls  : Boolean;
+         Termcap_TermInfo : Boolean;
+         Attribute_Color  : Boolean;
       end record;
-   pragma Convention (C_Pass_By_Copy, Trace_Attribute_Set);
+   pragma Convention (C_Pass_By_Copy, Trace_Attribute_Set);
 
-   for Trace_Attribute_Set use
+   for Trace_Attribute_Set use
       record
-         Times            at 0 range Curses_Constants.TRACE_TIMES_First
-           .. Curses_Constants.TRACE_TIMES_Last;
-         Tputs            at 0 range Curses_Constants.TRACE_TPUTS_First
-           .. Curses_Constants.TRACE_TPUTS_Last;
-         Update           at 0 range Curses_Constants.TRACE_UPDATE_First
-           .. Curses_Constants.TRACE_UPDATE_Last;
-         Cursor_Move      at 0 range Curses_Constants.TRACE_MOVE_First
-           .. Curses_Constants.TRACE_MOVE_Last;
-         Character_Output at 0 range Curses_Constants.TRACE_CHARPUT_First
-           .. Curses_Constants.TRACE_CHARPUT_Last;
-         Calls            at 0 range Curses_Constants.TRACE_CALLS_First
-           .. Curses_Constants.TRACE_CALLS_Last;
-         Virtual_Puts     at 0 range Curses_Constants.TRACE_VIRTPUT_First
-           .. Curses_Constants.TRACE_VIRTPUT_Last;
-         Input_Events     at 0 range Curses_Constants.TRACE_IEVENT_First
-           .. Curses_Constants.TRACE_IEVENT_Last;
-         TTY_State        at 0 range Curses_Constants.TRACE_BITS_First
-           .. Curses_Constants.TRACE_BITS_Last;
-         Internal_Calls   at 0 range Curses_Constants.TRACE_ICALLS_First
-           .. Curses_Constants.TRACE_ICALLS_Last;
-         Character_Calls  at 0 range Curses_Constants.TRACE_CCALLS_First
-           .. Curses_Constants.TRACE_CCALLS_Last;
-         Termcap_TermInfo at 0 range Curses_Constants.TRACE_DATABASE_First
-           .. Curses_Constants.TRACE_DATABASE_Last;
-         Attribute_Color  at 0 range Curses_Constants.TRACE_ATTRS_First
-           .. Curses_Constants.TRACE_ATTRS_Last;
+         Times            at 0 range Curses_Constants.TRACE_TIMES_First
+           .. Curses_Constants.TRACE_TIMES_Last;
+         Tputs            at 0 range Curses_Constants.TRACE_TPUTS_First
+           .. Curses_Constants.TRACE_TPUTS_Last;
+         Update           at 0 range Curses_Constants.TRACE_UPDATE_First
+           .. Curses_Constants.TRACE_UPDATE_Last;
+         Cursor_Move      at 0 range Curses_Constants.TRACE_MOVE_First
+           .. Curses_Constants.TRACE_MOVE_Last;
+         Character_Output at 0 range Curses_Constants.TRACE_CHARPUT_First
+           .. Curses_Constants.TRACE_CHARPUT_Last;
+         Calls            at 0 range Curses_Constants.TRACE_CALLS_First
+           .. Curses_Constants.TRACE_CALLS_Last;
+         Virtual_Puts     at 0 range Curses_Constants.TRACE_VIRTPUT_First
+           .. Curses_Constants.TRACE_VIRTPUT_Last;
+         Input_Events     at 0 range Curses_Constants.TRACE_IEVENT_First
+           .. Curses_Constants.TRACE_IEVENT_Last;
+         TTY_State        at 0 range Curses_Constants.TRACE_BITS_First
+           .. Curses_Constants.TRACE_BITS_Last;
+         Internal_Calls   at 0 range Curses_Constants.TRACE_ICALLS_First
+           .. Curses_Constants.TRACE_ICALLS_Last;
+         Character_Calls  at 0 range Curses_Constants.TRACE_CCALLS_First
+           .. Curses_Constants.TRACE_CCALLS_Last;
+         Termcap_TermInfo at 0 range Curses_Constants.TRACE_DATABASE_First
+           .. Curses_Constants.TRACE_DATABASE_Last;
+         Attribute_Color  at 0 range Curses_Constants.TRACE_ATTRS_First
+           .. Curses_Constants.TRACE_ATTRS_Last;
       end record;
    pragma Warnings (Off);
-   for Trace_Attribute_Set'Size use Curses_Constants.Trace_Size;
+   for Trace_Attribute_Set'Size use Curses_Constants.Trace_Size;
    pragma Warnings (On);
 
-   Trace_Disable  : constant Trace_Attribute_Set := (others => False);
+   Trace_Disable  : constant Trace_Attribute_Set := (others => False);
 
-   Trace_Ordinary : constant Trace_Attribute_Set :=
-     (Times            => True,
-      Tputs            => True,
-      Update           => True,
-      Cursor_Move      => True,
-      Character_Output => True,
+   Trace_Ordinary : constant Trace_Attribute_Set :=
+     (Times            => True,
+      Tputs            => True,
+      Update           => True,
+      Cursor_Move      => True,
+      Character_Output => True,
       others           => False);
-   Trace_Maximum : constant Trace_Attribute_Set := (others => True);
+   Trace_Maximum : constant Trace_Attribute_Set := (others => True);
 
-------------------------------------------------------------------------------
+------------------------------------------------------------------------------
 
-   --  |=====================================================================
-   --  | Man page curs_trace.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page curs_trace.3x
+   --  |=====================================================================
 
-   --  |
-   procedure Trace_On (x : Trace_Attribute_Set);
-   --  The debugging library has trace.
+   --  |
+   procedure Trace_On (x : Trace_Attribute_Set);
+   --  The debugging library has trace.
 
-   --  |
-   procedure Trace_Put (str : String);
-   --  AKA: _tracef()
+   --  |
+   procedure Trace_Put (str : String);
+   --  AKA: _tracef()
 
-   Current_Trace_Setting : Trace_Attribute_Set;
-   pragma Import (C, Current_Trace_Setting, "_nc_tracing");
+   Current_Trace_Setting : Trace_Attribute_Set;
+   pragma Import (C, Current_Trace_Setting, "_nc_tracing");
 
-end Terminal_Interface.Curses.Trace;
-
+end Terminal_Interface.Curses.Trace; +
diff --git a/doc/html/ada/terminal_interface-curses__adb.htm b/doc/html/ada/terminal_interface-curses__adb.htm index ca1df916..53636619 100644 --- a/doc/html/ada/terminal_interface-curses__adb.htm +++ b/doc/html/ada/terminal_interface-curses__adb.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses.adb + + +terminal_interface-curses.adb - - -

File : terminal_interface-curses.adb


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                        Terminal_Interface.Curses                         --
---                                                                          --
---                                 B O D Y                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2018,2020 Thomas E. Dickey                                     --
--- Copyright 2007-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.16 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses.adb


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                        Terminal_Interface.Curses                         --
+--                                                                          --
+--                                 B O D Y                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2018,2020 Thomas E. Dickey                                     --
+-- Copyright 2007-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.16 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System;
 
-with Terminal_Interface.Curses.Aux;
-with Interfaces.C;                  use Interfaces.C;
-with Interfaces.C.Strings;          use Interfaces.C.Strings;
+with Terminal_Interface.Curses.Aux;
+with Interfaces.C;                  use Interfaces.C;
+with Interfaces.C.Strings;          use Interfaces.C.Strings;
 with Ada.Characters.Handling;       use Ada.Characters.Handling;
 with Ada.Strings.Fixed;
 
-package body Terminal_Interface.Curses is
+package body Terminal_Interface.Curses is
 
-   use Aux;
+   use Aux;
 
-   package ASF renames Ada.Strings.Fixed;
+   package ASF renames Ada.Strings.Fixed;
 
    type chtype_array is array (size_t range <>)
-      of aliased Attributed_Character;
+      of aliased Attributed_Character;
    pragma Convention (C, chtype_array);
 
-------------------------------------------------------------------------------
-   function Key_Name (Key : Real_Key_Code) return String
+------------------------------------------------------------------------------
+   function Key_Name (Key : Real_Key_Code) return String
    is
-      function Keyname (K : C_Int) return chars_ptr;
+      function Keyname (K : C_Int) return chars_ptr;
       pragma Import (C, Keyname, "keyname");
 
-      Ch : Character;
+      Ch : Character;
    begin
-      if Key <= Character'Pos (Character'Last) then
-         Ch := Character'Val (Key);
-         if Is_Control (Ch) then
-            return Un_Control (Attributed_Character'(Ch    => Ch,
-                                                     Color => Color_Pair'First,
-                                                     Attr  => Normal_Video));
-         elsif Is_Graphic (Ch) then
+      if Key <= Character'Pos (Character'Last) then
+         Ch := Character'Val (Key);
+         if Is_Control (Ch) then
+            return Un_Control (Attributed_Character'(Ch    => Ch,
+                                                     Color => Color_Pair'First,
+                                                     Attr  => Normal_Video));
+         elsif Is_Graphic (Ch) then
             declare
-               S : String (1 .. 1);
+               S : String (1 .. 1);
             begin
-               S (1) := Ch;
-               return S;
+               S (1) := Ch;
+               return S;
             end;
          else
             return "";
          end if;
       else
-         return Fill_String (Keyname (C_Int (Key)));
+         return Fill_String (Keyname (C_Int (Key)));
       end if;
-   end Key_Name;
+   end Key_Name;
 
-   procedure Key_Name (Key  :  Real_Key_Code;
-                       Name : out String)
+   procedure Key_Name (Key  :  Real_Key_Code;
+                       Name : out String)
    is
    begin
-      ASF.Move (Key_Name (Key), Name);
-   end Key_Name;
+      ASF.Move (Key_Name (Key), Name);
+   end Key_Name;
 
-------------------------------------------------------------------------------
-   procedure Init_Screen
+------------------------------------------------------------------------------
+   procedure Init_Screen
    is
-      function Initscr return Window;
+      function Initscr return Window;
       pragma Import (C, Initscr, "initscr");
 
-      W : Window;
+      W : Window;
    begin
-      W := Initscr;
-      if W = Null_Window then
-         raise Curses_Exception;
+      W := Initscr;
+      if W = Null_Window then
+         raise Curses_Exception;
       end if;
-   end Init_Screen;
+   end Init_Screen;
 
-   procedure End_Windows
+   procedure End_Windows
    is
-      function Endwin return C_Int;
+      function Endwin return C_Int;
       pragma Import (C, Endwin, "endwin");
    begin
-      if Endwin = Curses_Err then
-         raise Curses_Exception;
+      if Endwin = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end End_Windows;
+   end End_Windows;
 
-   function Is_End_Window return Boolean
+   function Is_End_Window return Boolean
    is
-      function Isendwin return Curses_Bool;
+      function Isendwin return Curses_Bool;
       pragma Import (C, Isendwin, "isendwin");
    begin
-      if Isendwin = Curses_Bool_False then
+      if Isendwin = Curses_Bool_False then
          return False;
       else
          return True;
       end if;
-   end Is_End_Window;
-------------------------------------------------------------------------------
-   procedure Move_Cursor (Win    : Window := Standard_Window;
-                          Line   : Line_Position;
-                          Column : Column_Position)
+   end Is_End_Window;
+------------------------------------------------------------------------------
+   procedure Move_Cursor (Win    : Window := Standard_Window;
+                          Line   : Line_Position;
+                          Column : Column_Position)
    is
-      function Wmove (Win    : Window;
-                      Line   : C_Int;
-                      Column : C_Int
-                     ) return C_Int;
+      function Wmove (Win    : Window;
+                      Line   : C_Int;
+                      Column : C_Int
+                     ) return C_Int;
       pragma Import (C, Wmove, "wmove");
    begin
-      if Wmove (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
-         raise Curses_Exception;
+      if Wmove (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Move_Cursor;
-------------------------------------------------------------------------------
-   procedure Add (Win : Window := Standard_Window;
-                  Ch  : Attributed_Character)
+   end Move_Cursor;
+------------------------------------------------------------------------------
+   procedure Add (Win : Window := Standard_Window;
+                  Ch  : Attributed_Character)
    is
-      function Waddch (W  : Window;
-                       Ch : Attributed_Character) return C_Int;
+      function Waddch (W  : Window;
+                       Ch : Attributed_Character) return C_Int;
       pragma Import (C, Waddch, "waddch");
    begin
-      if Waddch (Win, Ch) = Curses_Err then
-         raise Curses_Exception;
+      if Waddch (Win, Ch) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Add;
+   end Add;
 
-   procedure Add (Win : Window := Standard_Window;
-                  Ch  : Character)
+   procedure Add (Win : Window := Standard_Window;
+                  Ch  : Character)
    is
    begin
-      Add (Win,
-           Attributed_Character'(Ch    => Ch,
-                                 Color => Color_Pair'First,
-                                 Attr  => Normal_Video));
-   end Add;
+      Add (Win,
+           Attributed_Character'(Ch    => Ch,
+                                 Color => Color_Pair'First,
+                                 Attr  => Normal_Video));
+   end Add;
 
-   procedure Add
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Ch     : Attributed_Character)
+   procedure Add
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Ch     : Attributed_Character)
    is
-      function mvwaddch (W  : Window;
-                         Y  : C_Int;
-                         X  : C_Int;
-                         Ch : Attributed_Character) return C_Int;
+      function mvwaddch (W  : Window;
+                         Y  : C_Int;
+                         X  : C_Int;
+                         Ch : Attributed_Character) return C_Int;
       pragma Import (C, mvwaddch, "mvwaddch");
    begin
-      if mvwaddch (Win, C_Int (Line),
-                   C_Int (Column),
-                   Ch) = Curses_Err
+      if mvwaddch (Win, C_Int (Line),
+                   C_Int (Column),
+                   Ch) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Add;
+   end Add;
 
-   procedure Add
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Ch     : Character)
+   procedure Add
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Ch     : Character)
    is
    begin
-      Add (Win,
-           Line,
-           Column,
-           Attributed_Character'(Ch    => Ch,
-                                 Color => Color_Pair'First,
-                                 Attr  => Normal_Video));
-   end Add;
+      Add (Win,
+           Line,
+           Column,
+           Attributed_Character'(Ch    => Ch,
+                                 Color => Color_Pair'First,
+                                 Attr  => Normal_Video));
+   end Add;
 
-   procedure Add_With_Immediate_Echo
-     (Win : Window := Standard_Window;
-      Ch  : Attributed_Character)
+   procedure Add_With_Immediate_Echo
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character)
    is
-      function Wechochar (W  : Window;
-                          Ch : Attributed_Character) return C_Int;
+      function Wechochar (W  : Window;
+                          Ch : Attributed_Character) return C_Int;
       pragma Import (C, Wechochar, "wechochar");
    begin
-      if Wechochar (Win, Ch) = Curses_Err then
-         raise Curses_Exception;
+      if Wechochar (Win, Ch) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Add_With_Immediate_Echo;
+   end Add_With_Immediate_Echo;
 
-   procedure Add_With_Immediate_Echo
-     (Win : Window := Standard_Window;
-      Ch  : Character)
+   procedure Add_With_Immediate_Echo
+     (Win : Window := Standard_Window;
+      Ch  : Character)
    is
    begin
-      Add_With_Immediate_Echo
-        (Win,
-         Attributed_Character'(Ch    => Ch,
-                               Color => Color_Pair'First,
-                               Attr  => Normal_Video));
-   end Add_With_Immediate_Echo;
-------------------------------------------------------------------------------
-   function Create (Number_Of_Lines       : Line_Count;
-                    Number_Of_Columns     : Column_Count;
-                    First_Line_Position   : Line_Position;
-                    First_Column_Position : Column_Position) return Window
+      Add_With_Immediate_Echo
+        (Win,
+         Attributed_Character'(Ch    => Ch,
+                               Color => Color_Pair'First,
+                               Attr  => Normal_Video));
+   end Add_With_Immediate_Echo;
+------------------------------------------------------------------------------
+   function Create (Number_Of_Lines       : Line_Count;
+                    Number_Of_Columns     : Column_Count;
+                    First_Line_Position   : Line_Position;
+                    First_Column_Position : Column_Position) return Window
    is
-      function Newwin (Number_Of_Lines       : C_Int;
-                       Number_Of_Columns     : C_Int;
-                       First_Line_Position   : C_Int;
-                       First_Column_Position : C_Int) return Window;
+      function Newwin (Number_Of_Lines       : C_Int;
+                       Number_Of_Columns     : C_Int;
+                       First_Line_Position   : C_Int;
+                       First_Column_Position : C_Int) return Window;
       pragma Import (C, Newwin, "newwin");
 
-      W : Window;
+      W : Window;
    begin
-      W := Newwin (C_Int (Number_Of_Lines),
-                   C_Int (Number_Of_Columns),
-                   C_Int (First_Line_Position),
-                   C_Int (First_Column_Position));
-      if W = Null_Window then
-         raise Curses_Exception;
+      W := Newwin (C_Int (Number_Of_Lines),
+                   C_Int (Number_Of_Columns),
+                   C_Int (First_Line_Position),
+                   C_Int (First_Column_Position));
+      if W = Null_Window then
+         raise Curses_Exception;
       end if;
-      return W;
-   end Create;
+      return W;
+   end Create;
 
-   procedure Delete (Win : in out Window)
+   procedure Delete (Win : in out Window)
    is
-      function Wdelwin (W : Window) return C_Int;
+      function Wdelwin (W : Window) return C_Int;
       pragma Import (C, Wdelwin, "delwin");
    begin
-      if Wdelwin (Win) = Curses_Err then
-         raise Curses_Exception;
-      end if;
-      Win := Null_Window;
-   end Delete;
-
-   function Sub_Window
-     (Win                   : Window := Standard_Window;
-      Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window
-   is
-      function Subwin
-        (Win                   : Window;
-         Number_Of_Lines       : C_Int;
-         Number_Of_Columns     : C_Int;
-         First_Line_Position   : C_Int;
-         First_Column_Position : C_Int) return Window;
+      if Wdelwin (Win) = Curses_Err then
+         raise Curses_Exception;
+      end if;
+      Win := Null_Window;
+   end Delete;
+
+   function Sub_Window
+     (Win                   : Window := Standard_Window;
+      Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window
+   is
+      function Subwin
+        (Win                   : Window;
+         Number_Of_Lines       : C_Int;
+         Number_Of_Columns     : C_Int;
+         First_Line_Position   : C_Int;
+         First_Column_Position : C_Int) return Window;
       pragma Import (C, Subwin, "subwin");
 
-      W : Window;
-   begin
-      W := Subwin (Win,
-                   C_Int (Number_Of_Lines),
-                   C_Int (Number_Of_Columns),
-                   C_Int (First_Line_Position),
-                   C_Int (First_Column_Position));
-      if W = Null_Window then
-         raise Curses_Exception;
-      end if;
-      return W;
-   end Sub_Window;
-
-   function Derived_Window
-     (Win                   : Window := Standard_Window;
-      Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window
-   is
-      function Derwin
-        (Win                   : Window;
-         Number_Of_Lines       : C_Int;
-         Number_Of_Columns     : C_Int;
-         First_Line_Position   : C_Int;
-         First_Column_Position : C_Int) return Window;
+      W : Window;
+   begin
+      W := Subwin (Win,
+                   C_Int (Number_Of_Lines),
+                   C_Int (Number_Of_Columns),
+                   C_Int (First_Line_Position),
+                   C_Int (First_Column_Position));
+      if W = Null_Window then
+         raise Curses_Exception;
+      end if;
+      return W;
+   end Sub_Window;
+
+   function Derived_Window
+     (Win                   : Window := Standard_Window;
+      Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window
+   is
+      function Derwin
+        (Win                   : Window;
+         Number_Of_Lines       : C_Int;
+         Number_Of_Columns     : C_Int;
+         First_Line_Position   : C_Int;
+         First_Column_Position : C_Int) return Window;
       pragma Import (C, Derwin, "derwin");
 
-      W : Window;
+      W : Window;
    begin
-      W := Derwin (Win,
-                   C_Int (Number_Of_Lines),
-                   C_Int (Number_Of_Columns),
-                   C_Int (First_Line_Position),
-                   C_Int (First_Column_Position));
-      if W = Null_Window then
-         raise Curses_Exception;
+      W := Derwin (Win,
+                   C_Int (Number_Of_Lines),
+                   C_Int (Number_Of_Columns),
+                   C_Int (First_Line_Position),
+                   C_Int (First_Column_Position));
+      if W = Null_Window then
+         raise Curses_Exception;
       end if;
-      return W;
-   end Derived_Window;
+      return W;
+   end Derived_Window;
 
-   function Duplicate (Win : Window) return Window
+   function Duplicate (Win : Window) return Window
    is
-      function Dupwin (Win : Window) return Window;
+      function Dupwin (Win : Window) return Window;
       pragma Import (C, Dupwin, "dupwin");
 
-      W : constant Window := Dupwin (Win);
+      W : constant Window := Dupwin (Win);
    begin
-      if W = Null_Window then
-         raise Curses_Exception;
+      if W = Null_Window then
+         raise Curses_Exception;
       end if;
-      return W;
-   end Duplicate;
+      return W;
+   end Duplicate;
 
-   procedure Move_Window (Win    : Window;
-                          Line   : Line_Position;
-                          Column : Column_Position)
+   procedure Move_Window (Win    : Window;
+                          Line   : Line_Position;
+                          Column : Column_Position)
    is
-      function Mvwin (Win    : Window;
-                      Line   : C_Int;
-                      Column : C_Int) return C_Int;
+      function Mvwin (Win    : Window;
+                      Line   : C_Int;
+                      Column : C_Int) return C_Int;
       pragma Import (C, Mvwin, "mvwin");
    begin
-      if Mvwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
-         raise Curses_Exception;
+      if Mvwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Move_Window;
+   end Move_Window;
 
-   procedure Move_Derived_Window (Win    : Window;
-                                  Line   : Line_Position;
-                                  Column : Column_Position)
+   procedure Move_Derived_Window (Win    : Window;
+                                  Line   : Line_Position;
+                                  Column : Column_Position)
    is
-      function Mvderwin (Win    : Window;
-                         Line   : C_Int;
-                         Column : C_Int) return C_Int;
+      function Mvderwin (Win    : Window;
+                         Line   : C_Int;
+                         Column : C_Int) return C_Int;
       pragma Import (C, Mvderwin, "mvderwin");
    begin
-      if Mvderwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
-         raise Curses_Exception;
+      if Mvderwin (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Move_Derived_Window;
+   end Move_Derived_Window;
 
-   procedure Set_Synch_Mode (Win  : Window  := Standard_Window;
-                             Mode : Boolean := False)
+   procedure Set_Synch_Mode (Win  : Window  := Standard_Window;
+                             Mode : Boolean := False)
    is
-      function Syncok (Win  : Window;
-                       Mode : Curses_Bool) return C_Int;
+      function Syncok (Win  : Window;
+                       Mode : Curses_Bool) return C_Int;
       pragma Import (C, Syncok, "syncok");
    begin
-      if Syncok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
-         raise Curses_Exception;
+      if Syncok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Synch_Mode;
-------------------------------------------------------------------------------
-   procedure Add (Win : Window := Standard_Window;
-                  Str : String;
-                  Len : Integer := -1)
+   end Set_Synch_Mode;
+------------------------------------------------------------------------------
+   procedure Add (Win : Window := Standard_Window;
+                  Str : String;
+                  Len : Integer := -1)
    is
-      function Waddnstr (Win : Window;
-                         Str : char_array;
-                         Len : C_Int := -1) return C_Int;
+      function Waddnstr (Win : Window;
+                         Str : char_array;
+                         Len : C_Int := -1) return C_Int;
       pragma Import (C, Waddnstr, "waddnstr");
 
-      Txt    : char_array (0 .. Str'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Str'Length);
+      Length : size_t;
    begin
-      To_C (Str, Txt, Length);
-      if Waddnstr (Win, Txt, C_Int (Len)) = Curses_Err then
-         raise Curses_Exception;
+      To_C (Str, Txt, Length);
+      if Waddnstr (Win, Txt, C_Int (Len)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Add;
+   end Add;
 
-   procedure Add
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Str    : String;
-      Len    : Integer := -1)
+   procedure Add
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Str    : String;
+      Len    : Integer := -1)
    is
    begin
-      Move_Cursor (Win, Line, Column);
-      Add (Win, Str, Len);
-   end Add;
-------------------------------------------------------------------------------
-   procedure Add
-     (Win : Window := Standard_Window;
-      Str : Attributed_String;
-      Len : Integer := -1)
+      Move_Cursor (Win, Line, Column);
+      Add (Win, Str, Len);
+   end Add;
+------------------------------------------------------------------------------
+   procedure Add
+     (Win : Window := Standard_Window;
+      Str : Attributed_String;
+      Len : Integer := -1)
    is
-      function Waddchnstr (Win : Window;
-                           Str : chtype_array;
-                           Len : C_Int := -1) return C_Int;
+      function Waddchnstr (Win : Window;
+                           Str : chtype_array;
+                           Len : C_Int := -1) return C_Int;
       pragma Import (C, Waddchnstr, "waddchnstr");
 
-      Txt : chtype_array (0 .. Str'Length);
+      Txt : chtype_array (0 .. Str'Length);
    begin
-      for Length in 1 .. size_t (Str'Length) loop
-         Txt (Length - 1) := Str (Natural (Length));
+      for Length in 1 .. size_t (Str'Length) loop
+         Txt (Length - 1) := Str (Natural (Length));
       end loop;
-      Txt (Str'Length) := Default_Character;
-      if Waddchnstr (Win,
-                     Txt,
-                     C_Int (Len)) = Curses_Err
+      Txt (Str'Length) := Default_Character;
+      if Waddchnstr (Win,
+                     Txt,
+                     C_Int (Len)) = Curses_Err
       then
-         raise Curses_Exception;
-      end if;
-   end Add;
-
-   procedure Add
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Str    : Attributed_String;
-      Len    : Integer := -1)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Add (Win, Str, Len);
-   end Add;
-------------------------------------------------------------------------------
-   procedure Border
-     (Win                       : Window := Standard_Window;
-      Left_Side_Symbol          : Attributed_Character := Default_Character;
-      Right_Side_Symbol         : Attributed_Character := Default_Character;
-      Top_Side_Symbol           : Attributed_Character := Default_Character;
-      Bottom_Side_Symbol        : Attributed_Character := Default_Character;
-      Upper_Left_Corner_Symbol  : Attributed_Character := Default_Character;
-      Upper_Right_Corner_Symbol : Attributed_Character := Default_Character;
-      Lower_Left_Corner_Symbol  : Attributed_Character := Default_Character;
-      Lower_Right_Corner_Symbol : Attributed_Character := Default_Character)
-   is
-      function Wborder (W   : Window;
-                        LS  : Attributed_Character;
-                        RS  : Attributed_Character;
-                        TS  : Attributed_Character;
-                        BS  : Attributed_Character;
-                        ULC : Attributed_Character;
-                        URC : Attributed_Character;
-                        LLC : Attributed_Character;
-                        LRC : Attributed_Character) return C_Int;
+         raise Curses_Exception;
+      end if;
+   end Add;
+
+   procedure Add
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Str    : Attributed_String;
+      Len    : Integer := -1)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Add (Win, Str, Len);
+   end Add;
+------------------------------------------------------------------------------
+   procedure Border
+     (Win                       : Window := Standard_Window;
+      Left_Side_Symbol          : Attributed_Character := Default_Character;
+      Right_Side_Symbol         : Attributed_Character := Default_Character;
+      Top_Side_Symbol           : Attributed_Character := Default_Character;
+      Bottom_Side_Symbol        : Attributed_Character := Default_Character;
+      Upper_Left_Corner_Symbol  : Attributed_Character := Default_Character;
+      Upper_Right_Corner_Symbol : Attributed_Character := Default_Character;
+      Lower_Left_Corner_Symbol  : Attributed_Character := Default_Character;
+      Lower_Right_Corner_Symbol : Attributed_Character := Default_Character)
+   is
+      function Wborder (W   : Window;
+                        LS  : Attributed_Character;
+                        RS  : Attributed_Character;
+                        TS  : Attributed_Character;
+                        BS  : Attributed_Character;
+                        ULC : Attributed_Character;
+                        URC : Attributed_Character;
+                        LLC : Attributed_Character;
+                        LRC : Attributed_Character) return C_Int;
       pragma Import (C, Wborder, "wborder");
    begin
-      if Wborder (Win,
-                  Left_Side_Symbol,
-                  Right_Side_Symbol,
-                  Top_Side_Symbol,
-                  Bottom_Side_Symbol,
-                  Upper_Left_Corner_Symbol,
-                  Upper_Right_Corner_Symbol,
-                  Lower_Left_Corner_Symbol,
-                  Lower_Right_Corner_Symbol) = Curses_Err
+      if Wborder (Win,
+                  Left_Side_Symbol,
+                  Right_Side_Symbol,
+                  Top_Side_Symbol,
+                  Bottom_Side_Symbol,
+                  Upper_Left_Corner_Symbol,
+                  Upper_Right_Corner_Symbol,
+                  Lower_Left_Corner_Symbol,
+                  Lower_Right_Corner_Symbol) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Border;
+   end Border;
 
-   procedure Box
-     (Win               : Window := Standard_Window;
-      Vertical_Symbol   : Attributed_Character := Default_Character;
-      Horizontal_Symbol : Attributed_Character := Default_Character)
+   procedure Box
+     (Win               : Window := Standard_Window;
+      Vertical_Symbol   : Attributed_Character := Default_Character;
+      Horizontal_Symbol : Attributed_Character := Default_Character)
    is
    begin
-      Border (Win,
-              Vertical_Symbol, Vertical_Symbol,
-              Horizontal_Symbol, Horizontal_Symbol);
-   end Box;
+      Border (Win,
+              Vertical_Symbol, Vertical_Symbol,
+              Horizontal_Symbol, Horizontal_Symbol);
+   end Box;
 
-   procedure Horizontal_Line
-     (Win         : Window := Standard_Window;
-      Line_Size   : Natural;
-      Line_Symbol : Attributed_Character := Default_Character)
+   procedure Horizontal_Line
+     (Win         : Window := Standard_Window;
+      Line_Size   : Natural;
+      Line_Symbol : Attributed_Character := Default_Character)
    is
-      function Whline (W   : Window;
-                       Ch  : Attributed_Character;
-                       Len : C_Int) return C_Int;
+      function Whline (W   : Window;
+                       Ch  : Attributed_Character;
+                       Len : C_Int) return C_Int;
       pragma Import (C, Whline, "whline");
    begin
-      if Whline (Win,
-                 Line_Symbol,
-                 C_Int (Line_Size)) = Curses_Err
+      if Whline (Win,
+                 Line_Symbol,
+                 C_Int (Line_Size)) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Horizontal_Line;
+   end Horizontal_Line;
 
-   procedure Vertical_Line
-     (Win         : Window := Standard_Window;
-      Line_Size   : Natural;
-      Line_Symbol : Attributed_Character := Default_Character)
+   procedure Vertical_Line
+     (Win         : Window := Standard_Window;
+      Line_Size   : Natural;
+      Line_Symbol : Attributed_Character := Default_Character)
    is
-      function Wvline (W   : Window;
-                       Ch  : Attributed_Character;
-                       Len : C_Int) return C_Int;
+      function Wvline (W   : Window;
+                       Ch  : Attributed_Character;
+                       Len : C_Int) return C_Int;
       pragma Import (C, Wvline, "wvline");
    begin
-      if Wvline (Win,
-                 Line_Symbol,
-                 C_Int (Line_Size)) = Curses_Err
+      if Wvline (Win,
+                 Line_Symbol,
+                 C_Int (Line_Size)) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Vertical_Line;
+   end Vertical_Line;
 
-------------------------------------------------------------------------------
-   function Get_Keystroke (Win : Window := Standard_Window)
-     return Real_Key_Code
+------------------------------------------------------------------------------
+   function Get_Keystroke (Win : Window := Standard_Window)
+     return Real_Key_Code
    is
-      function Wgetch (W : Window) return C_Int;
+      function Wgetch (W : Window) return C_Int;
       pragma Import (C, Wgetch, "wgetch");
 
-      C : constant C_Int := Wgetch (Win);
+      C : constant C_Int := Wgetch (Win);
    begin
-      if C = Curses_Err then
-         return Key_None;
+      if C = Curses_Err then
+         return Key_None;
       else
-         return Real_Key_Code (C);
+         return Real_Key_Code (C);
       end if;
-   end Get_Keystroke;
+   end Get_Keystroke;
 
-   procedure Undo_Keystroke (Key : Real_Key_Code)
+   procedure Undo_Keystroke (Key : Real_Key_Code)
    is
-      function Ungetch (Ch : C_Int) return C_Int;
+      function Ungetch (Ch : C_Int) return C_Int;
       pragma Import (C, Ungetch, "ungetch");
    begin
-      if Ungetch (C_Int (Key)) = Curses_Err then
-         raise Curses_Exception;
+      if Ungetch (C_Int (Key)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Undo_Keystroke;
+   end Undo_Keystroke;
 
-   function Has_Key (Key : Special_Key_Code) return Boolean
+   function Has_Key (Key : Special_Key_Code) return Boolean
    is
-      function Haskey (Key : C_Int) return C_Int;
+      function Haskey (Key : C_Int) return C_Int;
       pragma Import (C, Haskey, "has_key");
    begin
-      if Haskey (C_Int (Key)) = Curses_False then
+      if Haskey (C_Int (Key)) = Curses_False then
          return False;
       else
          return True;
       end if;
-   end Has_Key;
+   end Has_Key;
 
-   function Is_Function_Key (Key : Special_Key_Code) return Boolean
+   function Is_Function_Key (Key : Special_Key_Code) return Boolean
    is
-      L : constant Special_Key_Code  := Special_Key_Code (Natural (Key_F0) +
-        Natural (Function_Key_Number'Last));
+      L : constant Special_Key_Code  := Special_Key_Code (Natural (Key_F0) +
+        Natural (Function_Key_Number'Last));
    begin
-      if (Key >= Key_F0) and then (Key <= L) then
+      if (Key >= Key_F0) and then (Key <= L) then
          return True;
       else
          return False;
       end if;
-   end Is_Function_Key;
+   end Is_Function_Key;
 
-   function Function_Key (Key : Real_Key_Code)
-                          return Function_Key_Number
+   function Function_Key (Key : Real_Key_Code)
+                          return Function_Key_Number
    is
    begin
-      if Is_Function_Key (Key) then
-         return Function_Key_Number (Key - Key_F0);
+      if Is_Function_Key (Key) then
+         return Function_Key_Number (Key - Key_F0);
       else
          raise Constraint_Error;
       end if;
-   end Function_Key;
+   end Function_Key;
 
-   function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code
+   function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code
    is
    begin
-      return Real_Key_Code (Natural (Key_F0) + Natural (Key));
-   end Function_Key_Code;
-------------------------------------------------------------------------------
-   procedure Standout (Win : Window  := Standard_Window;
-                       On  : Boolean := True)
+      return Real_Key_Code (Natural (Key_F0) + Natural (Key));
+   end Function_Key_Code;
+------------------------------------------------------------------------------
+   procedure Standout (Win : Window  := Standard_Window;
+                       On  : Boolean := True)
    is
-      function wstandout (Win : Window) return C_Int;
+      function wstandout (Win : Window) return C_Int;
       pragma Import (C, wstandout, "wstandout");
-      function wstandend (Win : Window) return C_Int;
+      function wstandend (Win : Window) return C_Int;
       pragma Import (C, wstandend, "wstandend");
 
-      Err : C_Int;
+      Err : C_Int;
    begin
-      if On then
-         Err := wstandout (Win);
+      if On then
+         Err := wstandout (Win);
       else
-         Err := wstandend (Win);
+         Err := wstandend (Win);
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Standout;
+   end Standout;
 
-   procedure Switch_Character_Attribute
-     (Win  : Window := Standard_Window;
-      Attr : Character_Attribute_Set := Normal_Video;
-      On   : Boolean := True)
+   procedure Switch_Character_Attribute
+     (Win  : Window := Standard_Window;
+      Attr : Character_Attribute_Set := Normal_Video;
+      On   : Boolean := True)
    is
-      function Wattron (Win    : Window;
-                        C_Attr : Attributed_Character) return C_Int;
+      function Wattron (Win    : Window;
+                        C_Attr : Attributed_Character) return C_Int;
       pragma Import (C, Wattron, "wattr_on");
-      function Wattroff (Win    : Window;
-                         C_Attr : Attributed_Character) return C_Int;
+      function Wattroff (Win    : Window;
+                         C_Attr : Attributed_Character) return C_Int;
       pragma Import (C, Wattroff, "wattr_off");
-      --  In Ada we use the On Boolean to control whether or not we want to
-      --  switch on or off the attributes in the set.
-      Err : C_Int;
-      AC  : constant Attributed_Character := (Ch    => Character'First,
-                                              Color => Color_Pair'First,
-                                              Attr  => Attr);
-   begin
-      if On then
-         Err := Wattron  (Win, AC);
+      --  In Ada we use the On Boolean to control whether or not we want to
+      --  switch on or off the attributes in the set.
+      Err : C_Int;
+      AC  : constant Attributed_Character := (Ch    => Character'First,
+                                              Color => Color_Pair'First,
+                                              Attr  => Attr);
+   begin
+      if On then
+         Err := Wattron  (Win, AC);
       else
-         Err := Wattroff (Win, AC);
+         Err := Wattroff (Win, AC);
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Switch_Character_Attribute;
+   end Switch_Character_Attribute;
 
-   procedure Set_Character_Attributes
-     (Win   : Window := Standard_Window;
-      Attr  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First)
+   procedure Set_Character_Attributes
+     (Win   : Window := Standard_Window;
+      Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First)
    is
-      function Wattrset (Win    : Window;
-                         C_Attr : Attributed_Character) return C_Int;
-      pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
+      function Wattrset (Win    : Window;
+                         C_Attr : Attributed_Character) return C_Int;
+      pragma Import (C, Wattrset, "wattrset"); -- ??? wattr_set
    begin
-      if Wattrset (Win, (Ch => Character'First,
-                         Color => Color,
-                         Attr => Attr)) = Curses_Err
+      if Wattrset (Win, (Ch => Character'First,
+                         Color => Color,
+                         Attr => Attr)) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Set_Character_Attributes;
+   end Set_Character_Attributes;
 
-   function Get_Character_Attribute (Win : Window := Standard_Window)
-                                     return Character_Attribute_Set
+   function Get_Character_Attribute (Win : Window := Standard_Window)
+                                     return Character_Attribute_Set
    is
-      function Wattrget (Win : Window;
-                         Atr : access Attributed_Character;
-                         Col : access C_Short;
-                         Opt : System.Address) return C_Int;
+      function Wattrget (Win : Window;
+                         Atr : access Attributed_Character;
+                         Col : access C_Short;
+                         Opt : System.Address) return C_Int;
       pragma Import (C, Wattrget, "wattr_get");
 
-      Attr : aliased Attributed_Character;
-      Col  : aliased C_Short;
-      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
+      Attr : aliased Attributed_Character;
+      Col  : aliased C_Short;
+      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
                                          System.Null_Address);
    begin
-      if Res = Curses_Ok then
-         return Attr.Attr;
+      if Res = Curses_Ok then
+         return Attr.Attr;
       else
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Get_Character_Attribute;
+   end Get_Character_Attribute;
 
-   function Get_Character_Attribute (Win : Window := Standard_Window)
-                                     return Color_Pair
+   function Get_Character_Attribute (Win : Window := Standard_Window)
+                                     return Color_Pair
    is
-      function Wattrget (Win : Window;
-                         Atr : access Attributed_Character;
-                         Col : access C_Short;
-                         Opt : System.Address) return C_Int;
+      function Wattrget (Win : Window;
+                         Atr : access Attributed_Character;
+                         Col : access C_Short;
+                         Opt : System.Address) return C_Int;
       pragma Import (C, Wattrget, "wattr_get");
 
-      Attr : aliased Attributed_Character;
-      Col  : aliased C_Short;
-      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
+      Attr : aliased Attributed_Character;
+      Col  : aliased C_Short;
+      Res  : constant C_Int := Wattrget (Win, Attr'Access, Col'Access,
                                          System.Null_Address);
    begin
-      if Res = Curses_Ok then
-         return Attr.Color;
+      if Res = Curses_Ok then
+         return Attr.Color;
       else
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Get_Character_Attribute;
+   end Get_Character_Attribute;
 
-   procedure Set_Color (Win  : Window := Standard_Window;
-                        Pair : Color_Pair)
+   procedure Set_Color (Win  : Window := Standard_Window;
+                        Pair : Color_Pair)
    is
-      function Wset_Color (Win   : Window;
-                           Color : C_Short;
-                           Opts  : C_Void_Ptr) return C_Int;
+      function Wset_Color (Win   : Window;
+                           Color : C_Short;
+                           Opts  : C_Void_Ptr) return C_Int;
       pragma Import (C, Wset_Color, "wcolor_set");
    begin
-      if Wset_Color (Win,
-                     C_Short (Pair),
-                     C_Void_Ptr (System.Null_Address)) = Curses_Err
+      if Wset_Color (Win,
+                     C_Short (Pair),
+                     C_Void_Ptr (System.Null_Address)) = Curses_Err
       then
-         raise Curses_Exception;
-      end if;
-   end Set_Color;
-
-   procedure Change_Attributes
-     (Win   : Window := Standard_Window;
-      Count : Integer := -1;
-      Attr  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First)
-   is
-      function Wchgat (Win   : Window;
-                       Cnt   : C_Int;
-                       Attr  : Attributed_Character;
-                       Color : C_Short;
-                       Opts  : System.Address := System.Null_Address)
-                       return C_Int;
+         raise Curses_Exception;
+      end if;
+   end Set_Color;
+
+   procedure Change_Attributes
+     (Win   : Window := Standard_Window;
+      Count : Integer := -1;
+      Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First)
+   is
+      function Wchgat (Win   : Window;
+                       Cnt   : C_Int;
+                       Attr  : Attributed_Character;
+                       Color : C_Short;
+                       Opts  : System.Address := System.Null_Address)
+                       return C_Int;
       pragma Import (C, Wchgat, "wchgat");
    begin
-      if Wchgat (Win,
-                 C_Int (Count),
-                 (Ch => Character'First,
-                  Color => Color_Pair'First,
-                  Attr => Attr),
-                 C_Short (Color)) = Curses_Err
+      if Wchgat (Win,
+                 C_Int (Count),
+                 (Ch => Character'First,
+                  Color => Color_Pair'First,
+                  Attr => Attr),
+                 C_Short (Color)) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Change_Attributes;
+   end Change_Attributes;
 
-   procedure Change_Attributes
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position := Line_Position'First;
-      Column : Column_Position := Column_Position'First;
-      Count  : Integer := -1;
-      Attr   : Character_Attribute_Set := Normal_Video;
-      Color  : Color_Pair := Color_Pair'First)
+   procedure Change_Attributes
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position := Line_Position'First;
+      Column : Column_Position := Column_Position'First;
+      Count  : Integer := -1;
+      Attr   : Character_Attribute_Set := Normal_Video;
+      Color  : Color_Pair := Color_Pair'First)
    is
    begin
-      Move_Cursor (Win, Line, Column);
-      Change_Attributes (Win, Count, Attr, Color);
-   end Change_Attributes;
-------------------------------------------------------------------------------
-   procedure Beep
+      Move_Cursor (Win, Line, Column);
+      Change_Attributes (Win, Count, Attr, Color);
+   end Change_Attributes;
+------------------------------------------------------------------------------
+   procedure Beep
    is
-      function Beeper return C_Int;
+      function Beeper return C_Int;
       pragma Import (C, Beeper, "beep");
    begin
-      if Beeper = Curses_Err then
-         raise Curses_Exception;
+      if Beeper = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Beep;
+   end Beep;
 
-   procedure Flash_Screen
+   procedure Flash_Screen
    is
-      function Flash return C_Int;
+      function Flash return C_Int;
       pragma Import (C, Flash, "flash");
    begin
-      if Flash = Curses_Err then
-         raise Curses_Exception;
+      if Flash = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Flash_Screen;
-------------------------------------------------------------------------------
-   procedure Set_Cbreak_Mode (SwitchOn : Boolean := True)
+   end Flash_Screen;
+------------------------------------------------------------------------------
+   procedure Set_Cbreak_Mode (SwitchOn : Boolean := True)
    is
-      function Cbreak return C_Int;
+      function Cbreak return C_Int;
       pragma Import (C, Cbreak, "cbreak");
-      function NoCbreak return C_Int;
+      function NoCbreak return C_Int;
       pragma Import (C, NoCbreak, "nocbreak");
 
-      Err : C_Int;
+      Err : C_Int;
    begin
-      if SwitchOn then
-         Err := Cbreak;
+      if SwitchOn then
+         Err := Cbreak;
       else
-         Err := NoCbreak;
+         Err := NoCbreak;
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Cbreak_Mode;
+   end Set_Cbreak_Mode;
 
-   procedure Set_Raw_Mode (SwitchOn : Boolean := True)
+   procedure Set_Raw_Mode (SwitchOn : Boolean := True)
    is
-      function Raw return C_Int;
+      function Raw return C_Int;
       pragma Import (C, Raw, "raw");
-      function NoRaw return C_Int;
+      function NoRaw return C_Int;
       pragma Import (C, NoRaw, "noraw");
 
-      Err : C_Int;
+      Err : C_Int;
    begin
-      if SwitchOn then
-         Err := Raw;
+      if SwitchOn then
+         Err := Raw;
       else
-         Err := NoRaw;
+         Err := NoRaw;
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Raw_Mode;
+   end Set_Raw_Mode;
 
-   procedure Set_Echo_Mode (SwitchOn : Boolean := True)
+   procedure Set_Echo_Mode (SwitchOn : Boolean := True)
    is
-      function Echo return C_Int;
+      function Echo return C_Int;
       pragma Import (C, Echo, "echo");
-      function NoEcho return C_Int;
+      function NoEcho return C_Int;
       pragma Import (C, NoEcho, "noecho");
 
-      Err : C_Int;
+      Err : C_Int;
    begin
-      if SwitchOn then
-         Err := Echo;
+      if SwitchOn then
+         Err := Echo;
       else
-         Err := NoEcho;
+         Err := NoEcho;
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Echo_Mode;
+   end Set_Echo_Mode;
 
-   procedure Set_Meta_Mode (Win      : Window := Standard_Window;
-                            SwitchOn : Boolean := True)
+   procedure Set_Meta_Mode (Win      : Window := Standard_Window;
+                            SwitchOn : Boolean := True)
    is
-      function Meta (W : Window; Mode : Curses_Bool) return C_Int;
+      function Meta (W : Window; Mode : Curses_Bool) return C_Int;
       pragma Import (C, Meta, "meta");
    begin
-      if Meta (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
-         raise Curses_Exception;
+      if Meta (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Meta_Mode;
+   end Set_Meta_Mode;
 
-   procedure Set_KeyPad_Mode (Win      : Window := Standard_Window;
-                              SwitchOn : Boolean := True)
+   procedure Set_KeyPad_Mode (Win      : Window := Standard_Window;
+                              SwitchOn : Boolean := True)
    is
-      function Keypad (W : Window; Mode : Curses_Bool) return C_Int;
+      function Keypad (W : Window; Mode : Curses_Bool) return C_Int;
       pragma Import (C, Keypad, "keypad");
    begin
-      if Keypad (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
-         raise Curses_Exception;
+      if Keypad (Win, Curses_Bool (Boolean'Pos (SwitchOn))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_KeyPad_Mode;
+   end Set_KeyPad_Mode;
 
-   function Get_KeyPad_Mode (Win : Window := Standard_Window)
+   function Get_KeyPad_Mode (Win : Window := Standard_Window)
                              return Boolean
    is
-      function Is_Keypad (W : Window) return Curses_Bool;
+      function Is_Keypad (W : Window) return Curses_Bool;
       pragma Import (C, Is_Keypad, "is_keypad");
    begin
-      return (Is_Keypad (Win) /= Curses_Bool_False);
-   end Get_KeyPad_Mode;
+      return (Is_Keypad (Win) /= Curses_Bool_False);
+   end Get_KeyPad_Mode;
 
-   procedure Half_Delay (Amount : Half_Delay_Amount)
+   procedure Half_Delay (Amount : Half_Delay_Amount)
    is
-      function Halfdelay (Amount : C_Int) return C_Int;
+      function Halfdelay (Amount : C_Int) return C_Int;
       pragma Import (C, Halfdelay, "halfdelay");
    begin
-      if Halfdelay (C_Int (Amount)) = Curses_Err then
-         raise Curses_Exception;
+      if Halfdelay (C_Int (Amount)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Half_Delay;
+   end Half_Delay;
 
-   procedure Set_Flush_On_Interrupt_Mode
-     (Win  : Window := Standard_Window;
-      Mode : Boolean := True)
+   procedure Set_Flush_On_Interrupt_Mode
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := True)
    is
-      function Intrflush (Win : Window; Mode : Curses_Bool) return C_Int;
+      function Intrflush (Win : Window; Mode : Curses_Bool) return C_Int;
       pragma Import (C, Intrflush, "intrflush");
    begin
-      if Intrflush (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
-         raise Curses_Exception;
+      if Intrflush (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Flush_On_Interrupt_Mode;
+   end Set_Flush_On_Interrupt_Mode;
 
-   procedure Set_Queue_Interrupt_Mode
-     (Win   : Window := Standard_Window;
-      Flush : Boolean := True)
+   procedure Set_Queue_Interrupt_Mode
+     (Win   : Window := Standard_Window;
+      Flush : Boolean := True)
    is
-      procedure Qiflush;
+      procedure Qiflush;
       pragma Import (C, Qiflush, "qiflush");
-      procedure No_Qiflush;
+      procedure No_Qiflush;
       pragma Import (C, No_Qiflush, "noqiflush");
    begin
-      if Win = Null_Window then
-         raise Curses_Exception;
+      if Win = Null_Window then
+         raise Curses_Exception;
       end if;
-      if Flush then
-         Qiflush;
+      if Flush then
+         Qiflush;
       else
-         No_Qiflush;
+         No_Qiflush;
       end if;
-   end Set_Queue_Interrupt_Mode;
+   end Set_Queue_Interrupt_Mode;
 
-   procedure Set_NoDelay_Mode
-     (Win  : Window := Standard_Window;
-      Mode : Boolean := False)
+   procedure Set_NoDelay_Mode
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False)
    is
-      function Nodelay (Win : Window; Mode : Curses_Bool) return C_Int;
+      function Nodelay (Win : Window; Mode : Curses_Bool) return C_Int;
       pragma Import (C, Nodelay, "nodelay");
    begin
-      if Nodelay (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
-         raise Curses_Exception;
+      if Nodelay (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_NoDelay_Mode;
+   end Set_NoDelay_Mode;
 
-   procedure Set_Timeout_Mode (Win    : Window := Standard_Window;
-                               Mode   : Timeout_Mode;
-                               Amount : Natural)
+   procedure Set_Timeout_Mode (Win    : Window := Standard_Window;
+                               Mode   : Timeout_Mode;
+                               Amount : Natural)
    is
-      procedure Wtimeout (Win : Window; Amount : C_Int);
+      procedure Wtimeout (Win : Window; Amount : C_Int);
       pragma Import (C, Wtimeout, "wtimeout");
 
-      Time : C_Int;
+      Time : C_Int;
    begin
-      case Mode is
-         when Blocking     => Time := -1;
-         when Non_Blocking => Time := 0;
-         when Delayed      =>
-            if Amount = 0 then
+      case Mode is
+         when Blocking     => Time := -1;
+         when Non_Blocking => Time := 0;
+         when Delayed      =>
+            if Amount = 0 then
                raise Constraint_Error;
             end if;
-            Time := C_Int (Amount);
+            Time := C_Int (Amount);
       end case;
-      Wtimeout (Win, Time);
-   end Set_Timeout_Mode;
+      Wtimeout (Win, Time);
+   end Set_Timeout_Mode;
 
-   procedure Set_Escape_Timer_Mode
-     (Win       : Window := Standard_Window;
-      Timer_Off : Boolean := False)
+   procedure Set_Escape_Timer_Mode
+     (Win       : Window := Standard_Window;
+      Timer_Off : Boolean := False)
    is
-      function Notimeout (Win : Window; Mode : Curses_Bool) return C_Int;
+      function Notimeout (Win : Window; Mode : Curses_Bool) return C_Int;
       pragma Import (C, Notimeout, "notimeout");
    begin
-      if Notimeout (Win, Curses_Bool (Boolean'Pos (Timer_Off)))
-        = Curses_Err
+      if Notimeout (Win, Curses_Bool (Boolean'Pos (Timer_Off)))
+        = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Set_Escape_Timer_Mode;
+   end Set_Escape_Timer_Mode;
 
-------------------------------------------------------------------------------
-   procedure Set_NL_Mode (SwitchOn : Boolean := True)
+------------------------------------------------------------------------------
+   procedure Set_NL_Mode (SwitchOn : Boolean := True)
    is
-      function NL return C_Int;
+      function NL return C_Int;
       pragma Import (C, NL, "nl");
-      function NoNL return C_Int;
+      function NoNL return C_Int;
       pragma Import (C, NoNL, "nonl");
 
-      Err : C_Int;
+      Err : C_Int;
    begin
-      if SwitchOn then
-         Err := NL;
+      if SwitchOn then
+         Err := NL;
       else
-         Err := NoNL;
+         Err := NoNL;
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_NL_Mode;
+   end Set_NL_Mode;
 
-   procedure Clear_On_Next_Update
-     (Win      : Window := Standard_Window;
-      Do_Clear : Boolean := True)
+   procedure Clear_On_Next_Update
+     (Win      : Window := Standard_Window;
+      Do_Clear : Boolean := True)
    is
-      function Clear_Ok (W : Window; Flag : Curses_Bool) return C_Int;
+      function Clear_Ok (W : Window; Flag : Curses_Bool) return C_Int;
       pragma Import (C, Clear_Ok, "clearok");
    begin
-      if Clear_Ok (Win, Curses_Bool (Boolean'Pos (Do_Clear))) = Curses_Err then
-         raise Curses_Exception;
+      if Clear_Ok (Win, Curses_Bool (Boolean'Pos (Do_Clear))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Clear_On_Next_Update;
+   end Clear_On_Next_Update;
 
-   procedure Use_Insert_Delete_Line
-     (Win    : Window := Standard_Window;
-      Do_Idl : Boolean := True)
+   procedure Use_Insert_Delete_Line
+     (Win    : Window := Standard_Window;
+      Do_Idl : Boolean := True)
    is
-      function IDL_Ok (W : Window; Flag : Curses_Bool) return C_Int;
+      function IDL_Ok (W : Window; Flag : Curses_Bool) return C_Int;
       pragma Import (C, IDL_Ok, "idlok");
    begin
-      if IDL_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idl))) = Curses_Err then
-         raise Curses_Exception;
+      if IDL_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idl))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Use_Insert_Delete_Line;
+   end Use_Insert_Delete_Line;
 
-   procedure Use_Insert_Delete_Character
-     (Win    : Window := Standard_Window;
-      Do_Idc : Boolean := True)
+   procedure Use_Insert_Delete_Character
+     (Win    : Window := Standard_Window;
+      Do_Idc : Boolean := True)
    is
-      procedure IDC_Ok (W : Window; Flag : Curses_Bool);
+      procedure IDC_Ok (W : Window; Flag : Curses_Bool);
       pragma Import (C, IDC_Ok, "idcok");
    begin
-      IDC_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idc)));
-   end Use_Insert_Delete_Character;
+      IDC_Ok (Win, Curses_Bool (Boolean'Pos (Do_Idc)));
+   end Use_Insert_Delete_Character;
 
-   procedure Leave_Cursor_After_Update
-     (Win      : Window := Standard_Window;
-      Do_Leave : Boolean := True)
+   procedure Leave_Cursor_After_Update
+     (Win      : Window := Standard_Window;
+      Do_Leave : Boolean := True)
    is
-      function Leave_Ok (W : Window; Flag : Curses_Bool) return C_Int;
+      function Leave_Ok (W : Window; Flag : Curses_Bool) return C_Int;
       pragma Import (C, Leave_Ok, "leaveok");
    begin
-      if Leave_Ok (Win, Curses_Bool (Boolean'Pos (Do_Leave))) = Curses_Err then
-         raise Curses_Exception;
+      if Leave_Ok (Win, Curses_Bool (Boolean'Pos (Do_Leave))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Leave_Cursor_After_Update;
+   end Leave_Cursor_After_Update;
 
-   procedure Immediate_Update_Mode
-     (Win  : Window := Standard_Window;
-      Mode : Boolean := False)
+   procedure Immediate_Update_Mode
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False)
    is
-      procedure Immedok (Win : Window; Mode : Curses_Bool);
+      procedure Immedok (Win : Window; Mode : Curses_Bool);
       pragma Import (C, Immedok, "immedok");
    begin
-      Immedok (Win, Curses_Bool (Boolean'Pos (Mode)));
-   end Immediate_Update_Mode;
+      Immedok (Win, Curses_Bool (Boolean'Pos (Mode)));
+   end Immediate_Update_Mode;
 
-   procedure Allow_Scrolling
-     (Win  : Window  := Standard_Window;
-      Mode : Boolean := False)
+   procedure Allow_Scrolling
+     (Win  : Window  := Standard_Window;
+      Mode : Boolean := False)
    is
-      function Scrollok (Win : Window; Mode : Curses_Bool) return C_Int;
+      function Scrollok (Win : Window; Mode : Curses_Bool) return C_Int;
       pragma Import (C, Scrollok, "scrollok");
    begin
-      if Scrollok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
-         raise Curses_Exception;
+      if Scrollok (Win, Curses_Bool (Boolean'Pos (Mode))) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Allow_Scrolling;
+   end Allow_Scrolling;
 
-   function Scrolling_Allowed (Win : Window := Standard_Window)
+   function Scrolling_Allowed (Win : Window := Standard_Window)
                                return Boolean
    is
-      function Is_Scroll_Ok (W : Window) return Curses_Bool;
+      function Is_Scroll_Ok (W : Window) return Curses_Bool;
       pragma Import (C, Is_Scroll_Ok, "is_scrollok");
    begin
-      return (Is_Scroll_Ok (Win) /= Curses_Bool_False);
-   end Scrolling_Allowed;
+      return (Is_Scroll_Ok (Win) /= Curses_Bool_False);
+   end Scrolling_Allowed;
 
-   procedure Set_Scroll_Region
-     (Win         : Window := Standard_Window;
-      Top_Line    : Line_Position;
-      Bottom_Line : Line_Position)
+   procedure Set_Scroll_Region
+     (Win         : Window := Standard_Window;
+      Top_Line    : Line_Position;
+      Bottom_Line : Line_Position)
    is
-      function Wsetscrreg (Win : Window;
-                           Lin : C_Int;
-                           Col : C_Int) return C_Int;
+      function Wsetscrreg (Win : Window;
+                           Lin : C_Int;
+                           Col : C_Int) return C_Int;
       pragma Import (C, Wsetscrreg, "wsetscrreg");
    begin
-      if Wsetscrreg (Win, C_Int (Top_Line), C_Int (Bottom_Line))
-        = Curses_Err
+      if Wsetscrreg (Win, C_Int (Top_Line), C_Int (Bottom_Line))
+        = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Set_Scroll_Region;
-------------------------------------------------------------------------------
-   procedure Update_Screen
+   end Set_Scroll_Region;
+------------------------------------------------------------------------------
+   procedure Update_Screen
    is
-      function Do_Update return C_Int;
+      function Do_Update return C_Int;
       pragma Import (C, Do_Update, "doupdate");
    begin
-      if Do_Update = Curses_Err then
-         raise Curses_Exception;
+      if Do_Update = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Update_Screen;
+   end Update_Screen;
 
-   procedure Refresh (Win : Window := Standard_Window)
+   procedure Refresh (Win : Window := Standard_Window)
    is
-      function Wrefresh (W : Window) return C_Int;
+      function Wrefresh (W : Window) return C_Int;
       pragma Import (C, Wrefresh, "wrefresh");
    begin
-      if Wrefresh (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Wrefresh (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Refresh;
+   end Refresh;
 
-   procedure Refresh_Without_Update
-     (Win : Window := Standard_Window)
+   procedure Refresh_Without_Update
+     (Win : Window := Standard_Window)
    is
-      function Wnoutrefresh (W : Window) return C_Int;
+      function Wnoutrefresh (W : Window) return C_Int;
       pragma Import (C, Wnoutrefresh, "wnoutrefresh");
    begin
-      if Wnoutrefresh (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Wnoutrefresh (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Refresh_Without_Update;
+   end Refresh_Without_Update;
 
-   procedure Redraw (Win : Window := Standard_Window)
+   procedure Redraw (Win : Window := Standard_Window)
    is
-      function Redrawwin (Win : Window) return C_Int;
+      function Redrawwin (Win : Window) return C_Int;
       pragma Import (C, Redrawwin, "redrawwin");
    begin
-      if Redrawwin (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Redrawwin (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Redraw;
+   end Redraw;
 
-   procedure Redraw
-     (Win        : Window := Standard_Window;
-      Begin_Line : Line_Position;
-      Line_Count : Positive)
+   procedure Redraw
+     (Win        : Window := Standard_Window;
+      Begin_Line : Line_Position;
+      Line_Count : Positive)
    is
-      function Wredrawln (Win : Window; First : C_Int; Cnt : C_Int)
-                          return C_Int;
+      function Wredrawln (Win : Window; First : C_Int; Cnt : C_Int)
+                          return C_Int;
       pragma Import (C, Wredrawln, "wredrawln");
    begin
-      if Wredrawln (Win,
-                    C_Int (Begin_Line),
-                    C_Int (Line_Count)) = Curses_Err
+      if Wredrawln (Win,
+                    C_Int (Begin_Line),
+                    C_Int (Line_Count)) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Redraw;
+   end Redraw;
 
-------------------------------------------------------------------------------
-   procedure Erase (Win : Window := Standard_Window)
+------------------------------------------------------------------------------
+   procedure Erase (Win : Window := Standard_Window)
    is
-      function Werase (W : Window) return C_Int;
+      function Werase (W : Window) return C_Int;
       pragma Import (C, Werase, "werase");
    begin
-      if Werase (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Werase (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Erase;
+   end Erase;
 
-   procedure Clear (Win : Window := Standard_Window)
+   procedure Clear (Win : Window := Standard_Window)
    is
-      function Wclear (W : Window) return C_Int;
+      function Wclear (W : Window) return C_Int;
       pragma Import (C, Wclear, "wclear");
    begin
-      if Wclear (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Wclear (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Clear;
+   end Clear;
 
-   procedure Clear_To_End_Of_Screen (Win : Window := Standard_Window)
+   procedure Clear_To_End_Of_Screen (Win : Window := Standard_Window)
    is
-      function Wclearbot (W : Window) return C_Int;
+      function Wclearbot (W : Window) return C_Int;
       pragma Import (C, Wclearbot, "wclrtobot");
    begin
-      if Wclearbot (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Wclearbot (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Clear_To_End_Of_Screen;
+   end Clear_To_End_Of_Screen;
 
-   procedure Clear_To_End_Of_Line (Win : Window := Standard_Window)
+   procedure Clear_To_End_Of_Line (Win : Window := Standard_Window)
    is
-      function Wcleareol (W : Window) return C_Int;
+      function Wcleareol (W : Window) return C_Int;
       pragma Import (C, Wcleareol, "wclrtoeol");
    begin
-      if Wcleareol (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Wcleareol (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Clear_To_End_Of_Line;
-------------------------------------------------------------------------------
-   procedure Set_Background
-     (Win : Window := Standard_Window;
-      Ch  : Attributed_Character)
+   end Clear_To_End_Of_Line;
+------------------------------------------------------------------------------
+   procedure Set_Background
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character)
    is
-      procedure WBackground (W : Window; Ch : Attributed_Character);
+      procedure WBackground (W : Window; Ch : Attributed_Character);
       pragma Import (C, WBackground, "wbkgdset");
    begin
-      WBackground (Win, Ch);
-   end Set_Background;
+      WBackground (Win, Ch);
+   end Set_Background;
 
-   procedure Change_Background
-     (Win : Window := Standard_Window;
-      Ch  : Attributed_Character)
+   procedure Change_Background
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character)
    is
-      function WChangeBkgd (W : Window; Ch : Attributed_Character)
-         return C_Int;
+      function WChangeBkgd (W : Window; Ch : Attributed_Character)
+         return C_Int;
       pragma Import (C, WChangeBkgd, "wbkgd");
    begin
-      if WChangeBkgd (Win, Ch) = Curses_Err then
-         raise Curses_Exception;
+      if WChangeBkgd (Win, Ch) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Change_Background;
+   end Change_Background;
 
-   function Get_Background (Win : Window := Standard_Window)
-     return Attributed_Character
+   function Get_Background (Win : Window := Standard_Window)
+     return Attributed_Character
    is
-      function Wgetbkgd (Win : Window) return Attributed_Character;
+      function Wgetbkgd (Win : Window) return Attributed_Character;
       pragma Import (C, Wgetbkgd, "getbkgd");
    begin
-      return Wgetbkgd (Win);
-   end Get_Background;
-------------------------------------------------------------------------------
-   procedure Change_Lines_Status (Win   : Window := Standard_Window;
-                                  Start : Line_Position;
-                                  Count : Positive;
-                                  State : Boolean)
-   is
-      function Wtouchln (Win : Window;
-                         Sta : C_Int;
-                         Cnt : C_Int;
-                         Chg : C_Int) return C_Int;
+      return Wgetbkgd (Win);
+   end Get_Background;
+------------------------------------------------------------------------------
+   procedure Change_Lines_Status (Win   : Window := Standard_Window;
+                                  Start : Line_Position;
+                                  Count : Positive;
+                                  State : Boolean)
+   is
+      function Wtouchln (Win : Window;
+                         Sta : C_Int;
+                         Cnt : C_Int;
+                         Chg : C_Int) return C_Int;
       pragma Import (C, Wtouchln, "wtouchln");
    begin
-      if Wtouchln (Win, C_Int (Start), C_Int (Count),
-                   C_Int (Boolean'Pos (State))) = Curses_Err
+      if Wtouchln (Win, C_Int (Start), C_Int (Count),
+                   C_Int (Boolean'Pos (State))) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Change_Lines_Status;
+   end Change_Lines_Status;
 
-   procedure Touch (Win : Window := Standard_Window)
+   procedure Touch (Win : Window := Standard_Window)
    is
-      Y : Line_Position;
-      X : Column_Position;
+      Y : Line_Position;
+      X : Column_Position;
    begin
-      Get_Size (Win, Y, X);
-      pragma Warnings (Off, X);         --  unreferenced
-      Change_Lines_Status (Win, 0, Positive (Y), True);
-   end Touch;
+      Get_Size (Win, Y, X);
+      pragma Warnings (Off, X);         --  unreferenced
+      Change_Lines_Status (Win, 0, Positive (Y), True);
+   end Touch;
 
-   procedure Untouch (Win : Window := Standard_Window)
+   procedure Untouch (Win : Window := Standard_Window)
    is
-      Y : Line_Position;
-      X : Column_Position;
+      Y : Line_Position;
+      X : Column_Position;
    begin
-      Get_Size (Win, Y, X);
-      pragma Warnings (Off, X);         --  unreferenced
-      Change_Lines_Status (Win, 0, Positive (Y), False);
-   end Untouch;
+      Get_Size (Win, Y, X);
+      pragma Warnings (Off, X);         --  unreferenced
+      Change_Lines_Status (Win, 0, Positive (Y), False);
+   end Untouch;
 
-   procedure Touch (Win   : Window := Standard_Window;
-                    Start : Line_Position;
-                    Count : Positive)
+   procedure Touch (Win   : Window := Standard_Window;
+                    Start : Line_Position;
+                    Count : Positive)
    is
    begin
-      Change_Lines_Status (Win, Start, Count, True);
-   end Touch;
+      Change_Lines_Status (Win, Start, Count, True);
+   end Touch;
 
-   function Is_Touched
-     (Win  : Window := Standard_Window;
-      Line : Line_Position) return Boolean
+   function Is_Touched
+     (Win  : Window := Standard_Window;
+      Line : Line_Position) return Boolean
    is
-      function WLineTouched (W : Window; L : C_Int) return Curses_Bool;
+      function WLineTouched (W : Window; L : C_Int) return Curses_Bool;
       pragma Import (C, WLineTouched, "is_linetouched");
    begin
-      if WLineTouched (Win, C_Int (Line)) = Curses_Bool_False then
+      if WLineTouched (Win, C_Int (Line)) = Curses_Bool_False then
          return False;
       else
          return True;
       end if;
-   end Is_Touched;
+   end Is_Touched;
 
-   function Is_Touched
-     (Win : Window := Standard_Window) return Boolean
+   function Is_Touched
+     (Win : Window := Standard_Window) return Boolean
    is
-      function WWinTouched (W : Window) return Curses_Bool;
+      function WWinTouched (W : Window) return Curses_Bool;
       pragma Import (C, WWinTouched, "is_wintouched");
    begin
-      if WWinTouched (Win) = Curses_Bool_False then
+      if WWinTouched (Win) = Curses_Bool_False then
          return False;
       else
          return True;
       end if;
-   end Is_Touched;
-------------------------------------------------------------------------------
-   procedure Copy
-     (Source_Window            : Window;
-      Destination_Window       : Window;
-      Source_Top_Row           : Line_Position;
-      Source_Left_Column       : Column_Position;
-      Destination_Top_Row      : Line_Position;
-      Destination_Left_Column  : Column_Position;
-      Destination_Bottom_Row   : Line_Position;
-      Destination_Right_Column : Column_Position;
-      Non_Destructive_Mode     : Boolean := True)
-   is
-      function Copywin (Src : Window;
-                        Dst : Window;
-                        Str : C_Int;
-                        Slc : C_Int;
-                        Dtr : C_Int;
-                        Dlc : C_Int;
-                        Dbr : C_Int;
-                        Drc : C_Int;
-                        Ndm : C_Int) return C_Int;
+   end Is_Touched;
+------------------------------------------------------------------------------
+   procedure Copy
+     (Source_Window            : Window;
+      Destination_Window       : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position;
+      Non_Destructive_Mode     : Boolean := True)
+   is
+      function Copywin (Src : Window;
+                        Dst : Window;
+                        Str : C_Int;
+                        Slc : C_Int;
+                        Dtr : C_Int;
+                        Dlc : C_Int;
+                        Dbr : C_Int;
+                        Drc : C_Int;
+                        Ndm : C_Int) return C_Int;
       pragma Import (C, Copywin, "copywin");
    begin
-      if Copywin (Source_Window,
-                  Destination_Window,
-                  C_Int (Source_Top_Row),
-                  C_Int (Source_Left_Column),
-                  C_Int (Destination_Top_Row),
-                  C_Int (Destination_Left_Column),
-                  C_Int (Destination_Bottom_Row),
-                  C_Int (Destination_Right_Column),
-                  Boolean'Pos (Non_Destructive_Mode)
-                 ) = Curses_Err
+      if Copywin (Source_Window,
+                  Destination_Window,
+                  C_Int (Source_Top_Row),
+                  C_Int (Source_Left_Column),
+                  C_Int (Destination_Top_Row),
+                  C_Int (Destination_Left_Column),
+                  C_Int (Destination_Bottom_Row),
+                  C_Int (Destination_Right_Column),
+                  Boolean'Pos (Non_Destructive_Mode)
+                 ) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Copy;
+   end Copy;
 
-   procedure Overwrite
-     (Source_Window      : Window;
-      Destination_Window : Window)
+   procedure Overwrite
+     (Source_Window      : Window;
+      Destination_Window : Window)
    is
-      function Overwrite (Src : Window; Dst : Window) return C_Int;
+      function Overwrite (Src : Window; Dst : Window) return C_Int;
       pragma Import (C, Overwrite, "overwrite");
    begin
-      if Overwrite (Source_Window, Destination_Window) = Curses_Err then
-         raise Curses_Exception;
+      if Overwrite (Source_Window, Destination_Window) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Overwrite;
+   end Overwrite;
 
-   procedure Overlay
-     (Source_Window      : Window;
-      Destination_Window : Window)
+   procedure Overlay
+     (Source_Window      : Window;
+      Destination_Window : Window)
    is
-      function Overlay (Src : Window; Dst : Window) return C_Int;
+      function Overlay (Src : Window; Dst : Window) return C_Int;
       pragma Import (C, Overlay, "overlay");
    begin
-      if Overlay (Source_Window, Destination_Window) = Curses_Err then
-         raise Curses_Exception;
+      if Overlay (Source_Window, Destination_Window) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Overlay;
+   end Overlay;
 
-------------------------------------------------------------------------------
-   procedure Insert_Delete_Lines
-     (Win   : Window := Standard_Window;
-      Lines : Integer       := 1) -- default is to insert one line above
+------------------------------------------------------------------------------
+   procedure Insert_Delete_Lines
+     (Win   : Window := Standard_Window;
+      Lines : Integer       := 1) -- default is to insert one line above
    is
-      function Winsdelln (W : Window; N : C_Int) return C_Int;
+      function Winsdelln (W : Window; N : C_Int) return C_Int;
       pragma Import (C, Winsdelln, "winsdelln");
    begin
-      if Winsdelln (Win, C_Int (Lines)) = Curses_Err then
-         raise Curses_Exception;
+      if Winsdelln (Win, C_Int (Lines)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Insert_Delete_Lines;
+   end Insert_Delete_Lines;
 
-   procedure Delete_Line (Win : Window := Standard_Window)
+   procedure Delete_Line (Win : Window := Standard_Window)
    is
    begin
-      Insert_Delete_Lines (Win, -1);
-   end Delete_Line;
+      Insert_Delete_Lines (Win, -1);
+   end Delete_Line;
 
-   procedure Insert_Line (Win : Window := Standard_Window)
+   procedure Insert_Line (Win : Window := Standard_Window)
    is
    begin
-      Insert_Delete_Lines (Win, 1);
-   end Insert_Line;
-------------------------------------------------------------------------------
+      Insert_Delete_Lines (Win, 1);
+   end Insert_Line;
+------------------------------------------------------------------------------
 
-   procedure Get_Size
-     (Win               : Window := Standard_Window;
-      Number_Of_Lines   : out Line_Count;
-      Number_Of_Columns : out Column_Count)
+   procedure Get_Size
+     (Win               : Window := Standard_Window;
+      Number_Of_Lines   : out Line_Count;
+      Number_Of_Columns : out Column_Count)
    is
-      function GetMaxY (W : Window) return C_Int;
+      function GetMaxY (W : Window) return C_Int;
       pragma Import (C, GetMaxY, "getmaxy");
 
-      function GetMaxX (W : Window) return C_Int;
+      function GetMaxX (W : Window) return C_Int;
       pragma Import (C, GetMaxX, "getmaxx");
 
-      Y : constant C_Int := GetMaxY (Win);
-      X : constant C_Int := GetMaxX (Win);
+      Y : constant C_Int := GetMaxY (Win);
+      X : constant C_Int := GetMaxX (Win);
    begin
-      Number_Of_Lines   := Line_Count (Y);
-      Number_Of_Columns := Column_Count (X);
-   end Get_Size;
+      Number_Of_Lines   := Line_Count (Y);
+      Number_Of_Columns := Column_Count (X);
+   end Get_Size;
 
-   procedure Get_Window_Position
-     (Win             : Window := Standard_Window;
-      Top_Left_Line   : out Line_Position;
-      Top_Left_Column : out Column_Position)
+   procedure Get_Window_Position
+     (Win             : Window := Standard_Window;
+      Top_Left_Line   : out Line_Position;
+      Top_Left_Column : out Column_Position)
    is
-      function GetBegY (W : Window) return C_Int;
+      function GetBegY (W : Window) return C_Int;
       pragma Import (C, GetBegY, "getbegy");
 
-      function GetBegX (W : Window) return C_Int;
+      function GetBegX (W : Window) return C_Int;
       pragma Import (C, GetBegX, "getbegx");
 
-      Y : constant C_Short := C_Short (GetBegY (Win));
-      X : constant C_Short := C_Short (GetBegX (Win));
+      Y : constant C_Short := C_Short (GetBegY (Win));
+      X : constant C_Short := C_Short (GetBegX (Win));
    begin
-      Top_Left_Line   := Line_Position (Y);
-      Top_Left_Column := Column_Position (X);
-   end Get_Window_Position;
+      Top_Left_Line   := Line_Position (Y);
+      Top_Left_Column := Column_Position (X);
+   end Get_Window_Position;
 
-   procedure Get_Cursor_Position
-     (Win    :  Window := Standard_Window;
-      Line   : out Line_Position;
-      Column : out Column_Position)
+   procedure Get_Cursor_Position
+     (Win    :  Window := Standard_Window;
+      Line   : out Line_Position;
+      Column : out Column_Position)
    is
-      function GetCurY (W : Window) return C_Int;
+      function GetCurY (W : Window) return C_Int;
       pragma Import (C, GetCurY, "getcury");
 
-      function GetCurX (W : Window) return C_Int;
+      function GetCurX (W : Window) return C_Int;
       pragma Import (C, GetCurX, "getcurx");
 
-      Y : constant C_Short := C_Short (GetCurY (Win));
-      X : constant C_Short := C_Short (GetCurX (Win));
+      Y : constant C_Short := C_Short (GetCurY (Win));
+      X : constant C_Short := C_Short (GetCurX (Win));
    begin
-      Line   := Line_Position (Y);
-      Column := Column_Position (X);
-   end Get_Cursor_Position;
+      Line   := Line_Position (Y);
+      Column := Column_Position (X);
+   end Get_Cursor_Position;
 
-   procedure Get_Origin_Relative_To_Parent
-     (Win                :  Window;
-      Top_Left_Line      : out Line_Position;
-      Top_Left_Column    : out Column_Position;
-      Is_Not_A_Subwindow : out Boolean)
+   procedure Get_Origin_Relative_To_Parent
+     (Win                :  Window;
+      Top_Left_Line      : out Line_Position;
+      Top_Left_Column    : out Column_Position;
+      Is_Not_A_Subwindow : out Boolean)
    is
-      function GetParY (W : Window) return C_Int;
+      function GetParY (W : Window) return C_Int;
       pragma Import (C, GetParY, "getpary");
 
-      function GetParX (W : Window) return C_Int;
+      function GetParX (W : Window) return C_Int;
       pragma Import (C, GetParX, "getparx");
 
-      Y : constant C_Int := GetParY (Win);
-      X : constant C_Int := GetParX (Win);
+      Y : constant C_Int := GetParY (Win);
+      X : constant C_Int := GetParX (Win);
    begin
-      if Y = -1 then
-         Top_Left_Line   := Line_Position'Last;
-         Top_Left_Column := Column_Position'Last;
-         Is_Not_A_Subwindow := True;
+      if Y = -1 then
+         Top_Left_Line   := Line_Position'Last;
+         Top_Left_Column := Column_Position'Last;
+         Is_Not_A_Subwindow := True;
       else
-         Top_Left_Line   := Line_Position (Y);
-         Top_Left_Column := Column_Position (X);
-         Is_Not_A_Subwindow := False;
+         Top_Left_Line   := Line_Position (Y);
+         Top_Left_Column := Column_Position (X);
+         Is_Not_A_Subwindow := False;
       end if;
-   end Get_Origin_Relative_To_Parent;
-------------------------------------------------------------------------------
-   function New_Pad (Lines   : Line_Count;
-                     Columns : Column_Count) return Window
+   end Get_Origin_Relative_To_Parent;
+------------------------------------------------------------------------------
+   function New_Pad (Lines   : Line_Count;
+                     Columns : Column_Count) return Window
    is
-      function Newpad (Lines : C_Int; Columns : C_Int) return Window;
+      function Newpad (Lines : C_Int; Columns : C_Int) return Window;
       pragma Import (C, Newpad, "newpad");
 
-      W : Window;
+      W : Window;
    begin
-      W := Newpad (C_Int (Lines), C_Int (Columns));
-      if W = Null_Window then
-         raise Curses_Exception;
+      W := Newpad (C_Int (Lines), C_Int (Columns));
+      if W = Null_Window then
+         raise Curses_Exception;
       end if;
-      return W;
-   end New_Pad;
+      return W;
+   end New_Pad;
 
-   function Sub_Pad
-     (Pad                   : Window;
-      Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window
+   function Sub_Pad
+     (Pad                   : Window;
+      Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window
    is
-      function Subpad
-        (Pad                   : Window;
-         Number_Of_Lines       : C_Int;
-         Number_Of_Columns     : C_Int;
-         First_Line_Position   : C_Int;
-         First_Column_Position : C_Int) return Window;
+      function Subpad
+        (Pad                   : Window;
+         Number_Of_Lines       : C_Int;
+         Number_Of_Columns     : C_Int;
+         First_Line_Position   : C_Int;
+         First_Column_Position : C_Int) return Window;
       pragma Import (C, Subpad, "subpad");
 
-      W : Window;
-   begin
-      W := Subpad (Pad,
-                   C_Int (Number_Of_Lines),
-                   C_Int (Number_Of_Columns),
-                   C_Int (First_Line_Position),
-                   C_Int (First_Column_Position));
-      if W = Null_Window then
-         raise Curses_Exception;
-      end if;
-      return W;
-   end Sub_Pad;
-
-   procedure Refresh
-     (Pad                      : Window;
-      Source_Top_Row           : Line_Position;
-      Source_Left_Column       : Column_Position;
-      Destination_Top_Row      : Line_Position;
-      Destination_Left_Column  : Column_Position;
-      Destination_Bottom_Row   : Line_Position;
-      Destination_Right_Column : Column_Position)
-   is
-      function Prefresh
-        (Pad                      : Window;
-         Source_Top_Row           : C_Int;
-         Source_Left_Column       : C_Int;
-         Destination_Top_Row      : C_Int;
-         Destination_Left_Column  : C_Int;
-         Destination_Bottom_Row   : C_Int;
-         Destination_Right_Column : C_Int) return C_Int;
+      W : Window;
+   begin
+      W := Subpad (Pad,
+                   C_Int (Number_Of_Lines),
+                   C_Int (Number_Of_Columns),
+                   C_Int (First_Line_Position),
+                   C_Int (First_Column_Position));
+      if W = Null_Window then
+         raise Curses_Exception;
+      end if;
+      return W;
+   end Sub_Pad;
+
+   procedure Refresh
+     (Pad                      : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position)
+   is
+      function Prefresh
+        (Pad                      : Window;
+         Source_Top_Row           : C_Int;
+         Source_Left_Column       : C_Int;
+         Destination_Top_Row      : C_Int;
+         Destination_Left_Column  : C_Int;
+         Destination_Bottom_Row   : C_Int;
+         Destination_Right_Column : C_Int) return C_Int;
       pragma Import (C, Prefresh, "prefresh");
    begin
-      if Prefresh (Pad,
-                   C_Int (Source_Top_Row),
-                   C_Int (Source_Left_Column),
-                   C_Int (Destination_Top_Row),
-                   C_Int (Destination_Left_Column),
-                   C_Int (Destination_Bottom_Row),
-                   C_Int (Destination_Right_Column)) = Curses_Err
+      if Prefresh (Pad,
+                   C_Int (Source_Top_Row),
+                   C_Int (Source_Left_Column),
+                   C_Int (Destination_Top_Row),
+                   C_Int (Destination_Left_Column),
+                   C_Int (Destination_Bottom_Row),
+                   C_Int (Destination_Right_Column)) = Curses_Err
       then
-         raise Curses_Exception;
-      end if;
-   end Refresh;
-
-   procedure Refresh_Without_Update
-     (Pad                      : Window;
-      Source_Top_Row           : Line_Position;
-      Source_Left_Column       : Column_Position;
-      Destination_Top_Row      : Line_Position;
-      Destination_Left_Column  : Column_Position;
-      Destination_Bottom_Row   : Line_Position;
-      Destination_Right_Column : Column_Position)
-   is
-      function Pnoutrefresh
-        (Pad                      : Window;
-         Source_Top_Row           : C_Int;
-         Source_Left_Column       : C_Int;
-         Destination_Top_Row      : C_Int;
-         Destination_Left_Column  : C_Int;
-         Destination_Bottom_Row   : C_Int;
-         Destination_Right_Column : C_Int) return C_Int;
+         raise Curses_Exception;
+      end if;
+   end Refresh;
+
+   procedure Refresh_Without_Update
+     (Pad                      : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position)
+   is
+      function Pnoutrefresh
+        (Pad                      : Window;
+         Source_Top_Row           : C_Int;
+         Source_Left_Column       : C_Int;
+         Destination_Top_Row      : C_Int;
+         Destination_Left_Column  : C_Int;
+         Destination_Bottom_Row   : C_Int;
+         Destination_Right_Column : C_Int) return C_Int;
       pragma Import (C, Pnoutrefresh, "pnoutrefresh");
    begin
-      if Pnoutrefresh (Pad,
-                       C_Int (Source_Top_Row),
-                       C_Int (Source_Left_Column),
-                       C_Int (Destination_Top_Row),
-                       C_Int (Destination_Left_Column),
-                       C_Int (Destination_Bottom_Row),
-                       C_Int (Destination_Right_Column)) = Curses_Err
+      if Pnoutrefresh (Pad,
+                       C_Int (Source_Top_Row),
+                       C_Int (Source_Left_Column),
+                       C_Int (Destination_Top_Row),
+                       C_Int (Destination_Left_Column),
+                       C_Int (Destination_Bottom_Row),
+                       C_Int (Destination_Right_Column)) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Refresh_Without_Update;
+   end Refresh_Without_Update;
 
-   procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : Window;
-      Ch  : Attributed_Character)
+   procedure Add_Character_To_Pad_And_Echo_It
+     (Pad : Window;
+      Ch  : Attributed_Character)
    is
-      function Pechochar (Pad : Window; Ch : Attributed_Character)
-                          return C_Int;
+      function Pechochar (Pad : Window; Ch : Attributed_Character)
+                          return C_Int;
       pragma Import (C, Pechochar, "pechochar");
    begin
-      if Pechochar (Pad, Ch) = Curses_Err then
-         raise Curses_Exception;
+      if Pechochar (Pad, Ch) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Add_Character_To_Pad_And_Echo_It;
+   end Add_Character_To_Pad_And_Echo_It;
 
-   procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : Window;
-      Ch  : Character)
+   procedure Add_Character_To_Pad_And_Echo_It
+     (Pad : Window;
+      Ch  : Character)
    is
    begin
-      Add_Character_To_Pad_And_Echo_It
-        (Pad,
-         Attributed_Character'(Ch    => Ch,
-                               Color => Color_Pair'First,
-                               Attr  => Normal_Video));
-   end Add_Character_To_Pad_And_Echo_It;
-------------------------------------------------------------------------------
-   procedure Scroll (Win    : Window := Standard_Window;
-                     Amount : Integer := 1)
+      Add_Character_To_Pad_And_Echo_It
+        (Pad,
+         Attributed_Character'(Ch    => Ch,
+                               Color => Color_Pair'First,
+                               Attr  => Normal_Video));
+   end Add_Character_To_Pad_And_Echo_It;
+------------------------------------------------------------------------------
+   procedure Scroll (Win    : Window := Standard_Window;
+                     Amount : Integer := 1)
    is
-      function Wscrl (Win : Window; N : C_Int) return C_Int;
+      function Wscrl (Win : Window; N : C_Int) return C_Int;
       pragma Import (C, Wscrl, "wscrl");
 
    begin
-      if Wscrl (Win, C_Int (Amount)) = Curses_Err then
-         raise Curses_Exception;
+      if Wscrl (Win, C_Int (Amount)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Scroll;
+   end Scroll;
 
-------------------------------------------------------------------------------
-   procedure Delete_Character (Win : Window := Standard_Window)
+------------------------------------------------------------------------------
+   procedure Delete_Character (Win : Window := Standard_Window)
    is
-      function Wdelch (Win : Window) return C_Int;
+      function Wdelch (Win : Window) return C_Int;
       pragma Import (C, Wdelch, "wdelch");
    begin
-      if Wdelch (Win) = Curses_Err then
-         raise Curses_Exception;
+      if Wdelch (Win) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Delete_Character;
+   end Delete_Character;
 
-   procedure Delete_Character
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position)
+   procedure Delete_Character
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position)
    is
-      function Mvwdelch (Win : Window;
-                         Lin : C_Int;
-                         Col : C_Int) return C_Int;
+      function Mvwdelch (Win : Window;
+                         Lin : C_Int;
+                         Col : C_Int) return C_Int;
       pragma Import (C, Mvwdelch, "mvwdelch");
    begin
-      if Mvwdelch (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
-         raise Curses_Exception;
+      if Mvwdelch (Win, C_Int (Line), C_Int (Column)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Delete_Character;
-------------------------------------------------------------------------------
-   function Peek (Win : Window := Standard_Window)
-     return Attributed_Character
+   end Delete_Character;
+------------------------------------------------------------------------------
+   function Peek (Win : Window := Standard_Window)
+     return Attributed_Character
    is
-      function Winch (Win : Window) return Attributed_Character;
+      function Winch (Win : Window) return Attributed_Character;
       pragma Import (C, Winch, "winch");
    begin
-      return Winch (Win);
-   end Peek;
+      return Winch (Win);
+   end Peek;
 
-   function Peek
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position) return Attributed_Character
+   function Peek
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position) return Attributed_Character
    is
-      function Mvwinch (Win : Window;
-                        Lin : C_Int;
-                        Col : C_Int) return Attributed_Character;
+      function Mvwinch (Win : Window;
+                        Lin : C_Int;
+                        Col : C_Int) return Attributed_Character;
       pragma Import (C, Mvwinch, "mvwinch");
    begin
-      return Mvwinch (Win, C_Int (Line), C_Int (Column));
-   end Peek;
-------------------------------------------------------------------------------
-   procedure Insert (Win : Window := Standard_Window;
-                     Ch  : Attributed_Character)
+      return Mvwinch (Win, C_Int (Line), C_Int (Column));
+   end Peek;
+------------------------------------------------------------------------------
+   procedure Insert (Win : Window := Standard_Window;
+                     Ch  : Attributed_Character)
    is
-      function Winsch (Win : Window; Ch : Attributed_Character) return C_Int;
+      function Winsch (Win : Window; Ch : Attributed_Character) return C_Int;
       pragma Import (C, Winsch, "winsch");
    begin
-      if Winsch (Win, Ch) = Curses_Err then
-         raise Curses_Exception;
+      if Winsch (Win, Ch) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Insert;
+   end Insert;
 
-   procedure Insert
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Ch     : Attributed_Character)
+   procedure Insert
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Ch     : Attributed_Character)
    is
-      function Mvwinsch (Win : Window;
-                         Lin : C_Int;
-                         Col : C_Int;
-                         Ch  : Attributed_Character) return C_Int;
+      function Mvwinsch (Win : Window;
+                         Lin : C_Int;
+                         Col : C_Int;
+                         Ch  : Attributed_Character) return C_Int;
       pragma Import (C, Mvwinsch, "mvwinsch");
    begin
-      if Mvwinsch (Win,
-                   C_Int (Line),
-                   C_Int (Column),
-                   Ch) = Curses_Err
+      if Mvwinsch (Win,
+                   C_Int (Line),
+                   C_Int (Column),
+                   Ch) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Insert;
-------------------------------------------------------------------------------
-   procedure Insert (Win : Window := Standard_Window;
-                     Str : String;
-                     Len : Integer := -1)
+   end Insert;
+------------------------------------------------------------------------------
+   procedure Insert (Win : Window := Standard_Window;
+                     Str : String;
+                     Len : Integer := -1)
    is
-      function Winsnstr (Win : Window;
-                         Str : char_array;
-                         Len : Integer := -1) return C_Int;
+      function Winsnstr (Win : Window;
+                         Str : char_array;
+                         Len : Integer := -1) return C_Int;
       pragma Import (C, Winsnstr, "winsnstr");
 
-      Txt    : char_array (0 .. Str'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Str'Length);
+      Length : size_t;
    begin
-      To_C (Str, Txt, Length);
-      if Winsnstr (Win, Txt, Len) = Curses_Err then
-         raise Curses_Exception;
+      To_C (Str, Txt, Length);
+      if Winsnstr (Win, Txt, Len) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Insert;
+   end Insert;
 
-   procedure Insert
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Str    : String;
-      Len    : Integer := -1)
+   procedure Insert
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Str    : String;
+      Len    : Integer := -1)
    is
-      function Mvwinsnstr (Win    : Window;
-                           Line   : C_Int;
-                           Column : C_Int;
-                           Str    : char_array;
-                           Len    : C_Int) return C_Int;
+      function Mvwinsnstr (Win    : Window;
+                           Line   : C_Int;
+                           Column : C_Int;
+                           Str    : char_array;
+                           Len    : C_Int) return C_Int;
       pragma Import (C, Mvwinsnstr, "mvwinsnstr");
 
-      Txt    : char_array (0 .. Str'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Str'Length);
+      Length : size_t;
    begin
-      To_C (Str, Txt, Length);
-      if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
-        = Curses_Err
+      To_C (Str, Txt, Length);
+      if Mvwinsnstr (Win, C_Int (Line), C_Int (Column), Txt, C_Int (Len))
+        = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Insert;
-------------------------------------------------------------------------------
-   procedure Peek (Win :  Window := Standard_Window;
-                   Str : out String;
-                   Len :  Integer := -1)
+   end Insert;
+------------------------------------------------------------------------------
+   procedure Peek (Win :  Window := Standard_Window;
+                   Str : out String;
+                   Len :  Integer := -1)
    is
-      function Winnstr (Win : Window;
-                        Str : char_array;
-                        Len : C_Int) return C_Int;
+      function Winnstr (Win : Window;
+                        Str : char_array;
+                        Len : C_Int) return C_Int;
       pragma Import (C, Winnstr, "winnstr");
 
-      N   : Integer := Len;
-      Txt : char_array (0 .. Str'Length);
-      Cnt : Natural;
+      N   : Integer := Len;
+      Txt : char_array (0 .. Str'Length);
+      Cnt : Natural;
    begin
-      if N < 0 then
-         N := Str'Length;
+      if N < 0 then
+         N := Str'Length;
       end if;
-      if N > Str'Length then
+      if N > Str'Length then
          raise Constraint_Error;
       end if;
-      Txt (0) := Interfaces.C.char'First;
-      if Winnstr (Win, Txt, C_Int (N)) = Curses_Err then
-         raise Curses_Exception;
+      Txt (0) := Interfaces.C.char'First;
+      if Winnstr (Win, Txt, C_Int (N)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-      To_Ada (Txt, Str, Cnt, True);
-      if Cnt < Str'Length then
-         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
+      To_Ada (Txt, Str, Cnt, True);
+      if Cnt < Str'Length then
+         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
       end if;
-   end Peek;
+   end Peek;
 
-   procedure Peek
-     (Win    :  Window := Standard_Window;
-      Line   :  Line_Position;
-      Column :  Column_Position;
-      Str    : out String;
-      Len    :  Integer := -1)
+   procedure Peek
+     (Win    :  Window := Standard_Window;
+      Line   :  Line_Position;
+      Column :  Column_Position;
+      Str    : out String;
+      Len    :  Integer := -1)
    is
    begin
-      Move_Cursor (Win, Line, Column);
-      Peek (Win, Str, Len);
-   end Peek;
-------------------------------------------------------------------------------
-   procedure Peek
-     (Win :  Window := Standard_Window;
-      Str : out Attributed_String;
-      Len :  Integer := -1)
+      Move_Cursor (Win, Line, Column);
+      Peek (Win, Str, Len);
+   end Peek;
+------------------------------------------------------------------------------
+   procedure Peek
+     (Win :  Window := Standard_Window;
+      Str : out Attributed_String;
+      Len :  Integer := -1)
    is
-      function Winchnstr (Win : Window;
-                          Str : chtype_array;             -- out
-                          Len : C_Int) return C_Int;
+      function Winchnstr (Win : Window;
+                          Str : chtype_array;             -- out
+                          Len : C_Int) return C_Int;
       pragma Import (C, Winchnstr, "winchnstr");
 
-      N   : Integer := Len;
-      Txt : constant chtype_array (0 .. Str'Length)
-          := (0 => Default_Character);
-      Cnt : Natural := 0;
+      N   : Integer := Len;
+      Txt : constant chtype_array (0 .. Str'Length)
+          := (0 => Default_Character);
+      Cnt : Natural := 0;
    begin
-      if N < 0 then
-         N := Str'Length;
+      if N < 0 then
+         N := Str'Length;
       end if;
-      if N > Str'Length then
+      if N > Str'Length then
          raise Constraint_Error;
       end if;
-      if Winchnstr (Win, Txt, C_Int (N)) = Curses_Err then
-         raise Curses_Exception;
+      if Winchnstr (Win, Txt, C_Int (N)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-      for To in Str'Range loop
-         exit when Txt (size_t (Cnt)) = Default_Character;
-         Str (To) := Txt (size_t (Cnt));
-         Cnt := Cnt + 1;
+      for To in Str'Range loop
+         exit when Txt (size_t (Cnt)) = Default_Character;
+         Str (To) := Txt (size_t (Cnt));
+         Cnt := Cnt + 1;
       end loop;
-      if Cnt < Str'Length then
-         Str ((Str'First + Cnt) .. Str'Last) :=
-           (others => (Ch => ' ',
-                       Color => Color_Pair'First,
-                       Attr => Normal_Video));
-      end if;
-   end Peek;
-
-   procedure Peek
-     (Win    :  Window := Standard_Window;
-      Line   :  Line_Position;
-      Column :  Column_Position;
-      Str    : out Attributed_String;
-      Len    : Integer := -1)
-   is
-   begin
-      Move_Cursor (Win, Line, Column);
-      Peek (Win, Str, Len);
-   end Peek;
-------------------------------------------------------------------------------
-   procedure Get (Win :  Window := Standard_Window;
-                  Str : out String;
-                  Len :  Integer := -1)
-   is
-      function Wgetnstr (Win : Window;
-                         Str : char_array;
-                         Len : C_Int) return C_Int;
+      if Cnt < Str'Length then
+         Str ((Str'First + Cnt) .. Str'Last) :=
+           (others => (Ch => ' ',
+                       Color => Color_Pair'First,
+                       Attr => Normal_Video));
+      end if;
+   end Peek;
+
+   procedure Peek
+     (Win    :  Window := Standard_Window;
+      Line   :  Line_Position;
+      Column :  Column_Position;
+      Str    : out Attributed_String;
+      Len    : Integer := -1)
+   is
+   begin
+      Move_Cursor (Win, Line, Column);
+      Peek (Win, Str, Len);
+   end Peek;
+------------------------------------------------------------------------------
+   procedure Get (Win :  Window := Standard_Window;
+                  Str : out String;
+                  Len :  Integer := -1)
+   is
+      function Wgetnstr (Win : Window;
+                         Str : char_array;
+                         Len : C_Int) return C_Int;
       pragma Import (C, Wgetnstr, "wgetnstr");
 
-      N   : Integer := Len;
-      Txt : char_array (0 .. Str'Length);
-      Cnt : Natural;
+      N   : Integer := Len;
+      Txt : char_array (0 .. Str'Length);
+      Cnt : Natural;
    begin
-      if N < 0 then
-         N := Str'Length;
+      if N < 0 then
+         N := Str'Length;
       end if;
-      if N > Str'Length then
+      if N > Str'Length then
          raise Constraint_Error;
       end if;
-      Txt (0) := Interfaces.C.char'First;
-      if Wgetnstr (Win, Txt, C_Int (N)) = Curses_Err then
-         raise Curses_Exception;
+      Txt (0) := Interfaces.C.char'First;
+      if Wgetnstr (Win, Txt, C_Int (N)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-      To_Ada (Txt, Str, Cnt, True);
-      if Cnt < Str'Length then
-         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
+      To_Ada (Txt, Str, Cnt, True);
+      if Cnt < Str'Length then
+         Str ((Str'First + Cnt) .. Str'Last) := (others => ' ');
       end if;
-   end Get;
+   end Get;
 
-   procedure Get
-     (Win    :  Window := Standard_Window;
-      Line   :  Line_Position;
-      Column :  Column_Position;
-      Str    : out String;
-      Len    :  Integer := -1)
+   procedure Get
+     (Win    :  Window := Standard_Window;
+      Line   :  Line_Position;
+      Column :  Column_Position;
+      Str    : out String;
+      Len    :  Integer := -1)
    is
    begin
-      Move_Cursor (Win, Line, Column);
-      Get (Win, Str, Len);
-   end Get;
-------------------------------------------------------------------------------
-   procedure Init_Soft_Label_Keys
-     (Format : Soft_Label_Key_Format := Three_Two_Three)
+      Move_Cursor (Win, Line, Column);
+      Get (Win, Str, Len);
+   end Get;
+------------------------------------------------------------------------------
+   procedure Init_Soft_Label_Keys
+     (Format : Soft_Label_Key_Format := Three_Two_Three)
    is
-      function Slk_Init (Fmt : C_Int) return C_Int;
+      function Slk_Init (Fmt : C_Int) return C_Int;
       pragma Import (C, Slk_Init, "slk_init");
    begin
-      if Slk_Init (Soft_Label_Key_Format'Pos (Format)) = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Init (Soft_Label_Key_Format'Pos (Format)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Init_Soft_Label_Keys;
+   end Init_Soft_Label_Keys;
 
-   procedure Set_Soft_Label_Key (Label : Label_Number;
-                                 Text  : String;
-                                 Fmt   : Label_Justification := Left)
+   procedure Set_Soft_Label_Key (Label : Label_Number;
+                                 Text  : String;
+                                 Fmt   : Label_Justification := Left)
    is
-      function Slk_Set (Label : C_Int;
-                        Txt   : char_array;
-                        Fmt   : C_Int) return C_Int;
+      function Slk_Set (Label : C_Int;
+                        Txt   : char_array;
+                        Fmt   : C_Int) return C_Int;
       pragma Import (C, Slk_Set, "slk_set");
 
-      Txt : char_array (0 .. Text'Length);
-      Len : size_t;
+      Txt : char_array (0 .. Text'Length);
+      Len : size_t;
    begin
-      To_C (Text, Txt, Len);
-      if Slk_Set (C_Int (Label), Txt,
-                  C_Int (Label_Justification'Pos (Fmt))) = Curses_Err
+      To_C (Text, Txt, Len);
+      if Slk_Set (C_Int (Label), Txt,
+                  C_Int (Label_Justification'Pos (Fmt))) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Set_Soft_Label_Key;
+   end Set_Soft_Label_Key;
 
-   procedure Refresh_Soft_Label_Keys
+   procedure Refresh_Soft_Label_Keys
    is
-      function Slk_Refresh return C_Int;
+      function Slk_Refresh return C_Int;
       pragma Import (C, Slk_Refresh, "slk_refresh");
    begin
-      if Slk_Refresh = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Refresh = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Refresh_Soft_Label_Keys;
+   end Refresh_Soft_Label_Keys;
 
-   procedure Refresh_Soft_Label_Keys_Without_Update
+   procedure Refresh_Soft_Label_Keys_Without_Update
    is
-      function Slk_Noutrefresh return C_Int;
+      function Slk_Noutrefresh return C_Int;
       pragma Import (C, Slk_Noutrefresh, "slk_noutrefresh");
    begin
-      if Slk_Noutrefresh = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Noutrefresh = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Refresh_Soft_Label_Keys_Without_Update;
+   end Refresh_Soft_Label_Keys_Without_Update;
 
-   procedure Get_Soft_Label_Key (Label : Label_Number;
-                                 Text  : out String)
+   procedure Get_Soft_Label_Key (Label : Label_Number;
+                                 Text  : out String)
    is
-      function Slk_Label (Label : C_Int) return chars_ptr;
+      function Slk_Label (Label : C_Int) return chars_ptr;
       pragma Import (C, Slk_Label, "slk_label");
    begin
-      Fill_String (Slk_Label (C_Int (Label)), Text);
-   end Get_Soft_Label_Key;
+      Fill_String (Slk_Label (C_Int (Label)), Text);
+   end Get_Soft_Label_Key;
 
-   function Get_Soft_Label_Key (Label : Label_Number) return String
+   function Get_Soft_Label_Key (Label : Label_Number) return String
    is
-      function Slk_Label (Label : C_Int) return chars_ptr;
+      function Slk_Label (Label : C_Int) return chars_ptr;
       pragma Import (C, Slk_Label, "slk_label");
    begin
-      return Fill_String (Slk_Label (C_Int (Label)));
-   end Get_Soft_Label_Key;
+      return Fill_String (Slk_Label (C_Int (Label)));
+   end Get_Soft_Label_Key;
 
-   procedure Clear_Soft_Label_Keys
+   procedure Clear_Soft_Label_Keys
    is
-      function Slk_Clear return C_Int;
+      function Slk_Clear return C_Int;
       pragma Import (C, Slk_Clear, "slk_clear");
    begin
-      if Slk_Clear = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Clear = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Clear_Soft_Label_Keys;
+   end Clear_Soft_Label_Keys;
 
-   procedure Restore_Soft_Label_Keys
+   procedure Restore_Soft_Label_Keys
    is
-      function Slk_Restore return C_Int;
+      function Slk_Restore return C_Int;
       pragma Import (C, Slk_Restore, "slk_restore");
    begin
-      if Slk_Restore = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Restore = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Restore_Soft_Label_Keys;
+   end Restore_Soft_Label_Keys;
 
-   procedure Touch_Soft_Label_Keys
+   procedure Touch_Soft_Label_Keys
    is
-      function Slk_Touch return C_Int;
+      function Slk_Touch return C_Int;
       pragma Import (C, Slk_Touch, "slk_touch");
    begin
-      if Slk_Touch = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Touch = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Touch_Soft_Label_Keys;
+   end Touch_Soft_Label_Keys;
 
-   procedure Switch_Soft_Label_Key_Attributes
-     (Attr : Character_Attribute_Set;
-      On   : Boolean := True)
+   procedure Switch_Soft_Label_Key_Attributes
+     (Attr : Character_Attribute_Set;
+      On   : Boolean := True)
    is
-      function Slk_Attron (Ch : Attributed_Character) return C_Int;
+      function Slk_Attron (Ch : Attributed_Character) return C_Int;
       pragma Import (C, Slk_Attron, "slk_attron");
-      function Slk_Attroff (Ch : Attributed_Character) return C_Int;
+      function Slk_Attroff (Ch : Attributed_Character) return C_Int;
       pragma Import (C, Slk_Attroff, "slk_attroff");
 
-      Err : C_Int;
-      Ch  : constant Attributed_Character := (Ch    => Character'First,
-                                              Attr  => Attr,
-                                              Color => Color_Pair'First);
+      Err : C_Int;
+      Ch  : constant Attributed_Character := (Ch    => Character'First,
+                                              Attr  => Attr,
+                                              Color => Color_Pair'First);
    begin
-      if On then
-         Err := Slk_Attron  (Ch);
+      if On then
+         Err := Slk_Attron  (Ch);
       else
-         Err := Slk_Attroff (Ch);
+         Err := Slk_Attroff (Ch);
       end if;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Switch_Soft_Label_Key_Attributes;
+   end Switch_Soft_Label_Key_Attributes;
 
-   procedure Set_Soft_Label_Key_Attributes
-     (Attr  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First)
+   procedure Set_Soft_Label_Key_Attributes
+     (Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First)
    is
-      function Slk_Attrset (Ch : Attributed_Character) return C_Int;
+      function Slk_Attrset (Ch : Attributed_Character) return C_Int;
       pragma Import (C, Slk_Attrset, "slk_attrset");
 
-      Ch : constant Attributed_Character := (Ch    => Character'First,
-                                             Attr  => Attr,
-                                             Color => Color);
+      Ch : constant Attributed_Character := (Ch    => Character'First,
+                                             Attr  => Attr,
+                                             Color => Color);
    begin
-      if Slk_Attrset (Ch) = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Attrset (Ch) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Soft_Label_Key_Attributes;
+   end Set_Soft_Label_Key_Attributes;
 
-   function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
+   function Get_Soft_Label_Key_Attributes return Character_Attribute_Set
    is
-      function Slk_Attr return Attributed_Character;
+      function Slk_Attr return Attributed_Character;
       pragma Import (C, Slk_Attr, "slk_attr");
 
-      Attr : constant Attributed_Character := Slk_Attr;
+      Attr : constant Attributed_Character := Slk_Attr;
    begin
-      return Attr.Attr;
-   end Get_Soft_Label_Key_Attributes;
+      return Attr.Attr;
+   end Get_Soft_Label_Key_Attributes;
 
-   function Get_Soft_Label_Key_Attributes return Color_Pair
+   function Get_Soft_Label_Key_Attributes return Color_Pair
    is
-      function Slk_Attr return Attributed_Character;
+      function Slk_Attr return Attributed_Character;
       pragma Import (C, Slk_Attr, "slk_attr");
 
-      Attr : constant Attributed_Character := Slk_Attr;
+      Attr : constant Attributed_Character := Slk_Attr;
    begin
-      return Attr.Color;
-   end Get_Soft_Label_Key_Attributes;
+      return Attr.Color;
+   end Get_Soft_Label_Key_Attributes;
 
-   procedure Set_Soft_Label_Key_Color (Pair : Color_Pair)
+   procedure Set_Soft_Label_Key_Color (Pair : Color_Pair)
    is
-      function Slk_Color (Color : C_Short) return C_Int;
+      function Slk_Color (Color : C_Short) return C_Int;
       pragma Import (C, Slk_Color, "slk_color");
    begin
-      if Slk_Color (C_Short (Pair)) = Curses_Err then
-         raise Curses_Exception;
+      if Slk_Color (C_Short (Pair)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Set_Soft_Label_Key_Color;
+   end Set_Soft_Label_Key_Color;
 
-------------------------------------------------------------------------------
-   procedure Enable_Key (Key    : Special_Key_Code;
-                         Enable : Boolean := True)
+------------------------------------------------------------------------------
+   procedure Enable_Key (Key    : Special_Key_Code;
+                         Enable : Boolean := True)
    is
-      function Keyok (Keycode : C_Int;
-                      On_Off  : Curses_Bool) return C_Int;
+      function Keyok (Keycode : C_Int;
+                      On_Off  : Curses_Bool) return C_Int;
       pragma Import (C, Keyok, "keyok");
    begin
-      if Keyok (C_Int (Key), Curses_Bool (Boolean'Pos (Enable)))
-        = Curses_Err
+      if Keyok (C_Int (Key), Curses_Bool (Boolean'Pos (Enable)))
+        = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Enable_Key;
-------------------------------------------------------------------------------
-   procedure Define_Key (Definition : String;
-                         Key        : Special_Key_Code)
+   end Enable_Key;
+------------------------------------------------------------------------------
+   procedure Define_Key (Definition : String;
+                         Key        : Special_Key_Code)
    is
-      function Defkey (Def : char_array;
-                       Key : C_Int) return C_Int;
+      function Defkey (Def : char_array;
+                       Key : C_Int) return C_Int;
       pragma Import (C, Defkey, "define_key");
 
-      Txt    : char_array (0 .. Definition'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Definition'Length);
+      Length : size_t;
    begin
-      To_C (Definition, Txt, Length);
-      if Defkey (Txt, C_Int (Key)) = Curses_Err then
-         raise Curses_Exception;
+      To_C (Definition, Txt, Length);
+      if Defkey (Txt, C_Int (Key)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Define_Key;
-------------------------------------------------------------------------------
-   procedure Un_Control (Ch  : Attributed_Character;
-                         Str : out String)
+   end Define_Key;
+------------------------------------------------------------------------------
+   procedure Un_Control (Ch  : Attributed_Character;
+                         Str : out String)
    is
-      function Unctrl (Ch : Attributed_Character) return chars_ptr;
+      function Unctrl (Ch : Attributed_Character) return chars_ptr;
       pragma Import (C, Unctrl, "unctrl");
    begin
-      Fill_String (Unctrl (Ch), Str);
-   end Un_Control;
+      Fill_String (Unctrl (Ch), Str);
+   end Un_Control;
 
-   function Un_Control (Ch : Attributed_Character) return String
+   function Un_Control (Ch : Attributed_Character) return String
    is
-      function Unctrl (Ch : Attributed_Character) return chars_ptr;
+      function Unctrl (Ch : Attributed_Character) return chars_ptr;
       pragma Import (C, Unctrl, "unctrl");
    begin
-      return Fill_String (Unctrl (Ch));
-   end Un_Control;
+      return Fill_String (Unctrl (Ch));
+   end Un_Control;
 
-   procedure Delay_Output (Msecs : Natural)
+   procedure Delay_Output (Msecs : Natural)
    is
-      function Delayoutput (Msecs : C_Int) return C_Int;
+      function Delayoutput (Msecs : C_Int) return C_Int;
       pragma Import (C, Delayoutput, "delay_output");
    begin
-      if Delayoutput (C_Int (Msecs)) = Curses_Err then
-         raise Curses_Exception;
+      if Delayoutput (C_Int (Msecs)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Delay_Output;
+   end Delay_Output;
 
-   procedure Flush_Input
+   procedure Flush_Input
    is
-      function Flushinp return C_Int;
+      function Flushinp return C_Int;
       pragma Import (C, Flushinp, "flushinp");
    begin
-      if Flushinp = Curses_Err then  -- docu says that never happens, but...
-         raise Curses_Exception;
+      if Flushinp = Curses_Err then  -- docu says that never happens, but...
+         raise Curses_Exception;
       end if;
-   end Flush_Input;
-------------------------------------------------------------------------------
-   function Baudrate return Natural
+   end Flush_Input;
+------------------------------------------------------------------------------
+   function Baudrate return Natural
    is
-      function Baud return C_Int;
+      function Baud return C_Int;
       pragma Import (C, Baud, "baudrate");
    begin
-      return Natural (Baud);
-   end Baudrate;
+      return Natural (Baud);
+   end Baudrate;
 
-   function Erase_Character return Character
+   function Erase_Character return Character
    is
-      function Erasechar return C_Int;
+      function Erasechar return C_Int;
       pragma Import (C, Erasechar, "erasechar");
    begin
-      return Character'Val (Erasechar);
-   end Erase_Character;
+      return Character'Val (Erasechar);
+   end Erase_Character;
 
-   function Kill_Character return Character
+   function Kill_Character return Character
    is
-      function Killchar return C_Int;
+      function Killchar return C_Int;
       pragma Import (C, Killchar, "killchar");
    begin
-      return Character'Val (Killchar);
-   end Kill_Character;
+      return Character'Val (Killchar);
+   end Kill_Character;
 
-   function Has_Insert_Character return Boolean
+   function Has_Insert_Character return Boolean
    is
-      function Has_Ic return Curses_Bool;
+      function Has_Ic return Curses_Bool;
       pragma Import (C, Has_Ic, "has_ic");
    begin
-      if Has_Ic = Curses_Bool_False then
+      if Has_Ic = Curses_Bool_False then
          return False;
       else
          return True;
       end if;
-   end Has_Insert_Character;
+   end Has_Insert_Character;
 
-   function Has_Insert_Line return Boolean
+   function Has_Insert_Line return Boolean
    is
-      function Has_Il return Curses_Bool;
+      function Has_Il return Curses_Bool;
       pragma Import (C, Has_Il, "has_il");
    begin
-      if Has_Il = Curses_Bool_False then
+      if Has_Il = Curses_Bool_False then
          return False;
       else
          return True;
       end if;
-   end Has_Insert_Line;
+   end Has_Insert_Line;
 
-   function Supported_Attributes return Character_Attribute_Set
+   function Supported_Attributes return Character_Attribute_Set
    is
-      function Termattrs return Attributed_Character;
+      function Termattrs return Attributed_Character;
       pragma Import (C, Termattrs, "termattrs");
 
-      Ch : constant Attributed_Character := Termattrs;
+      Ch : constant Attributed_Character := Termattrs;
    begin
-      return Ch.Attr;
-   end Supported_Attributes;
+      return Ch.Attr;
+   end Supported_Attributes;
 
-   procedure Long_Name (Name : out String)
+   procedure Long_Name (Name : out String)
    is
-      function Longname return chars_ptr;
+      function Longname return chars_ptr;
       pragma Import (C, Longname, "longname");
    begin
-      Fill_String (Longname, Name);
-   end Long_Name;
+      Fill_String (Longname, Name);
+   end Long_Name;
 
-   function Long_Name return String
+   function Long_Name return String
    is
-      function Longname return chars_ptr;
+      function Longname return chars_ptr;
       pragma Import (C, Longname, "longname");
    begin
-      return Fill_String (Longname);
-   end Long_Name;
+      return Fill_String (Longname);
+   end Long_Name;
 
-   procedure Terminal_Name (Name : out String)
+   procedure Terminal_Name (Name : out String)
    is
-      function Termname return chars_ptr;
+      function Termname return chars_ptr;
       pragma Import (C, Termname, "termname");
    begin
-      Fill_String (Termname, Name);
-   end Terminal_Name;
+      Fill_String (Termname, Name);
+   end Terminal_Name;
 
-   function Terminal_Name return String
+   function Terminal_Name return String
    is
-      function Termname return chars_ptr;
+      function Termname return chars_ptr;
       pragma Import (C, Termname, "termname");
    begin
-      return Fill_String (Termname);
-   end Terminal_Name;
-------------------------------------------------------------------------------
-   procedure Init_Pair (Pair : Redefinable_Color_Pair;
-                        Fore : Color_Number;
-                        Back : Color_Number)
+      return Fill_String (Termname);
+   end Terminal_Name;
+------------------------------------------------------------------------------
+   procedure Init_Pair (Pair : Redefinable_Color_Pair;
+                        Fore : Color_Number;
+                        Back : Color_Number)
    is
-      function Initpair (Pair : C_Short;
-                         Fore : C_Short;
-                         Back : C_Short) return C_Int;
+      function Initpair (Pair : C_Short;
+                         Fore : C_Short;
+                         Back : C_Short) return C_Int;
       pragma Import (C, Initpair, "init_pair");
    begin
-      if Integer (Pair) >= Number_Of_Color_Pairs then
+      if Integer (Pair) >= Number_Of_Color_Pairs then
          raise Constraint_Error;
       end if;
-      if Integer (Fore) >= Number_Of_Colors or else
-         Integer (Back) >= Number_Of_Colors
+      if Integer (Fore) >= Number_Of_Colors or else
+         Integer (Back) >= Number_Of_Colors
       then
          raise Constraint_Error;
       end if;
-      if Initpair (C_Short (Pair), C_Short (Fore), C_Short (Back))
-        = Curses_Err
+      if Initpair (C_Short (Pair), C_Short (Fore), C_Short (Back))
+        = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Init_Pair;
+   end Init_Pair;
 
-   procedure Pair_Content (Pair : Color_Pair;
-                           Fore : out Color_Number;
-                           Back : out Color_Number)
+   procedure Pair_Content (Pair : Color_Pair;
+                           Fore : out Color_Number;
+                           Back : out Color_Number)
    is
-      type C_Short_Access is access all C_Short;
-      function Paircontent (Pair : C_Short;
-                            Fp   : C_Short_Access;
-                            Bp   : C_Short_Access) return C_Int;
+      type C_Short_Access is access all C_Short;
+      function Paircontent (Pair : C_Short;
+                            Fp   : C_Short_Access;
+                            Bp   : C_Short_Access) return C_Int;
       pragma Import (C, Paircontent, "pair_content");
 
-      F, B : aliased C_Short;
+      F, B : aliased C_Short;
    begin
-      if Paircontent (C_Short (Pair), F'Access, B'Access) = Curses_Err then
-         raise Curses_Exception;
+      if Paircontent (C_Short (Pair), F'Access, B'Access) = Curses_Err then
+         raise Curses_Exception;
       else
-         Fore := Color_Number (F);
-         Back := Color_Number (B);
+         Fore := Color_Number (F);
+         Back := Color_Number (B);
       end if;
-   end Pair_Content;
+   end Pair_Content;
 
-   function Has_Colors return Boolean
+   function Has_Colors return Boolean
    is
-      function Hascolors return Curses_Bool;
+      function Hascolors return Curses_Bool;
       pragma Import (C, Hascolors, "has_colors");
    begin
-      if Hascolors = Curses_Bool_False then
+      if Hascolors = Curses_Bool_False then
          return False;
       else
          return True;
       end if;
-   end Has_Colors;
+   end Has_Colors;
 
-   procedure Init_Color (Color : Color_Number;
-                         Red   : RGB_Value;
-                         Green : RGB_Value;
-                         Blue  : RGB_Value)
+   procedure Init_Color (Color : Color_Number;
+                         Red   : RGB_Value;
+                         Green : RGB_Value;
+                         Blue  : RGB_Value)
    is
-      function Initcolor (Col   : C_Short;
-                          Red   : C_Short;
-                          Green : C_Short;
-                          Blue  : C_Short) return C_Int;
+      function Initcolor (Col   : C_Short;
+                          Red   : C_Short;
+                          Green : C_Short;
+                          Blue  : C_Short) return C_Int;
       pragma Import (C, Initcolor, "init_color");
    begin
-      if Initcolor (C_Short (Color), C_Short (Red), C_Short (Green),
-                    C_Short (Blue)) = Curses_Err
+      if Initcolor (C_Short (Color), C_Short (Red), C_Short (Green),
+                    C_Short (Blue)) = Curses_Err
       then
-            raise Curses_Exception;
+            raise Curses_Exception;
       end if;
-   end Init_Color;
+   end Init_Color;
 
-   function Can_Change_Color return Boolean
+   function Can_Change_Color return Boolean
    is
-      function Canchangecolor return Curses_Bool;
+      function Canchangecolor return Curses_Bool;
       pragma Import (C, Canchangecolor, "can_change_color");
    begin
-      if Canchangecolor = Curses_Bool_False then
+      if Canchangecolor = Curses_Bool_False then
          return False;
       else
          return True;
       end if;
-   end Can_Change_Color;
+   end Can_Change_Color;
 
-   procedure Color_Content (Color :  Color_Number;
-                            Red   : out RGB_Value;
-                            Green : out RGB_Value;
-                            Blue  : out RGB_Value)
+   procedure Color_Content (Color :  Color_Number;
+                            Red   : out RGB_Value;
+                            Green : out RGB_Value;
+                            Blue  : out RGB_Value)
    is
-      type C_Short_Access is access all C_Short;
+      type C_Short_Access is access all C_Short;
 
-      function Colorcontent (Color : C_Short; R, G, B : C_Short_Access)
-                             return C_Int;
+      function Colorcontent (Color : C_Short; R, G, B : C_Short_Access)
+                             return C_Int;
       pragma Import (C, Colorcontent, "color_content");
 
-      R, G, B : aliased C_Short;
+      R, G, B : aliased C_Short;
    begin
-      if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
-        Curses_Err
+      if Colorcontent (C_Short (Color), R'Access, G'Access, B'Access) =
+        Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       else
-         Red   := RGB_Value (R);
-         Green := RGB_Value (G);
-         Blue  := RGB_Value (B);
+         Red   := RGB_Value (R);
+         Green := RGB_Value (G);
+         Blue  := RGB_Value (B);
       end if;
-   end Color_Content;
+   end Color_Content;
 
-------------------------------------------------------------------------------
-   procedure Save_Curses_Mode (Mode : Curses_Mode)
+------------------------------------------------------------------------------
+   procedure Save_Curses_Mode (Mode : Curses_Mode)
    is
-      function Def_Prog_Mode return C_Int;
+      function Def_Prog_Mode return C_Int;
       pragma Import (C, Def_Prog_Mode, "def_prog_mode");
-      function Def_Shell_Mode return C_Int;
+      function Def_Shell_Mode return C_Int;
       pragma Import (C, Def_Shell_Mode, "def_shell_mode");
 
-      Err : C_Int;
+      Err : C_Int;
    begin
-      case Mode is
-         when Curses => Err := Def_Prog_Mode;
-         when Shell  => Err := Def_Shell_Mode;
+      case Mode is
+         when Curses => Err := Def_Prog_Mode;
+         when Shell  => Err := Def_Shell_Mode;
       end case;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Save_Curses_Mode;
+   end Save_Curses_Mode;
 
-   procedure Reset_Curses_Mode (Mode : Curses_Mode)
+   procedure Reset_Curses_Mode (Mode : Curses_Mode)
    is
-      function Reset_Prog_Mode return C_Int;
+      function Reset_Prog_Mode return C_Int;
       pragma Import (C, Reset_Prog_Mode, "reset_prog_mode");
-      function Reset_Shell_Mode return C_Int;
+      function Reset_Shell_Mode return C_Int;
       pragma Import (C, Reset_Shell_Mode, "reset_shell_mode");
 
-      Err : C_Int;
+      Err : C_Int;
    begin
-      case Mode is
-         when Curses => Err := Reset_Prog_Mode;
-         when Shell  => Err := Reset_Shell_Mode;
+      case Mode is
+         when Curses => Err := Reset_Prog_Mode;
+         when Shell  => Err := Reset_Shell_Mode;
       end case;
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Reset_Curses_Mode;
+   end Reset_Curses_Mode;
 
-   procedure Save_Terminal_State
+   procedure Save_Terminal_State
    is
-      function Savetty return C_Int;
+      function Savetty return C_Int;
       pragma Import (C, Savetty, "savetty");
    begin
-      if Savetty = Curses_Err then
-         raise Curses_Exception;
+      if Savetty = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Save_Terminal_State;
+   end Save_Terminal_State;
 
-   procedure Reset_Terminal_State
+   procedure Reset_Terminal_State
    is
-      function Resetty return C_Int;
+      function Resetty return C_Int;
       pragma Import (C, Resetty, "resetty");
    begin
-      if Resetty = Curses_Err then
-         raise Curses_Exception;
+      if Resetty = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Reset_Terminal_State;
+   end Reset_Terminal_State;
 
-   procedure Rip_Off_Lines (Lines : Integer;
-                            Proc  : Stdscr_Init_Proc)
+   procedure Rip_Off_Lines (Lines : Integer;
+                            Proc  : Stdscr_Init_Proc)
    is
-      function Ripoffline (Lines : C_Int;
-                           Proc  : Stdscr_Init_Proc) return C_Int;
+      function Ripoffline (Lines : C_Int;
+                           Proc  : Stdscr_Init_Proc) return C_Int;
       pragma Import (C, Ripoffline, "_nc_ripoffline");
    begin
-      if Ripoffline (C_Int (Lines), Proc) = Curses_Err then
-         raise Curses_Exception;
+      if Ripoffline (C_Int (Lines), Proc) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Rip_Off_Lines;
+   end Rip_Off_Lines;
 
-   procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility)
+   procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility)
    is
-      function Curs_Set (Curs : C_Int) return C_Int;
+      function Curs_Set (Curs : C_Int) return C_Int;
       pragma Import (C, Curs_Set, "curs_set");
 
-      Res : C_Int;
+      Res : C_Int;
    begin
-      Res := Curs_Set (Cursor_Visibility'Pos (Visibility));
-      if Res /= Curses_Err then
-         Visibility := Cursor_Visibility'Val (Res);
+      Res := Curs_Set (Cursor_Visibility'Pos (Visibility));
+      if Res /= Curses_Err then
+         Visibility := Cursor_Visibility'Val (Res);
       end if;
-   end Set_Cursor_Visibility;
+   end Set_Cursor_Visibility;
 
-   procedure Nap_Milli_Seconds (Ms : Natural)
+   procedure Nap_Milli_Seconds (Ms : Natural)
    is
-      function Napms (Ms : C_Int) return C_Int;
+      function Napms (Ms : C_Int) return C_Int;
       pragma Import (C, Napms, "napms");
    begin
-      if Napms (C_Int (Ms)) = Curses_Err then
-         raise Curses_Exception;
+      if Napms (C_Int (Ms)) = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Nap_Milli_Seconds;
-------------------------------------------------------------------------------
-   function Lines return Line_Count
+   end Nap_Milli_Seconds;
+------------------------------------------------------------------------------
+   function Lines return Line_Count
    is
-      function LINES_As_Function return Interfaces.C.int;
+      function LINES_As_Function return Interfaces.C.int;
       pragma Import (C, LINES_As_Function, "LINES_as_function");
    begin
-      return Line_Count (LINES_As_Function);
-   end Lines;
+      return Line_Count (LINES_As_Function);
+   end Lines;
 
-   function Columns return Column_Count
+   function Columns return Column_Count
    is
-      function COLS_As_Function return Interfaces.C.int;
+      function COLS_As_Function return Interfaces.C.int;
       pragma Import (C, COLS_As_Function, "COLS_as_function");
    begin
-      return Column_Count (COLS_As_Function);
-   end Columns;
+      return Column_Count (COLS_As_Function);
+   end Columns;
 
-   function Tab_Size return Natural
+   function Tab_Size return Natural
    is
-      function TABSIZE_As_Function return Interfaces.C.int;
+      function TABSIZE_As_Function return Interfaces.C.int;
       pragma Import (C, TABSIZE_As_Function, "TABSIZE_as_function");
 
    begin
-      return Natural (TABSIZE_As_Function);
-   end Tab_Size;
+      return Natural (TABSIZE_As_Function);
+   end Tab_Size;
 
-   function Number_Of_Colors return Natural
+   function Number_Of_Colors return Natural
    is
-      function COLORS_As_Function return Interfaces.C.int;
+      function COLORS_As_Function return Interfaces.C.int;
       pragma Import (C, COLORS_As_Function, "COLORS_as_function");
    begin
-      return Natural (COLORS_As_Function);
-   end Number_Of_Colors;
+      return Natural (COLORS_As_Function);
+   end Number_Of_Colors;
 
-   function Number_Of_Color_Pairs return Natural
+   function Number_Of_Color_Pairs return Natural
    is
-      function COLOR_PAIRS_As_Function return Interfaces.C.int;
+      function COLOR_PAIRS_As_Function return Interfaces.C.int;
       pragma Import (C, COLOR_PAIRS_As_Function, "COLOR_PAIRS_as_function");
    begin
-      return Natural (COLOR_PAIRS_As_Function);
-   end Number_Of_Color_Pairs;
-------------------------------------------------------------------------------
-   procedure Transform_Coordinates
-     (W      : Window := Standard_Window;
-      Line   : in out Line_Position;
-      Column : in out Column_Position;
-      Dir    : Transform_Direction := From_Screen)
-   is
-      type Int_Access is access all C_Int;
-      function Transform (W    : Window;
-                          Y, X : Int_Access;
-                          Dir  : Curses_Bool) return C_Int;
+      return Natural (COLOR_PAIRS_As_Function);
+   end Number_Of_Color_Pairs;
+------------------------------------------------------------------------------
+   procedure Transform_Coordinates
+     (W      : Window := Standard_Window;
+      Line   : in out Line_Position;
+      Column : in out Column_Position;
+      Dir    : Transform_Direction := From_Screen)
+   is
+      type Int_Access is access all C_Int;
+      function Transform (W    : Window;
+                          Y, X : Int_Access;
+                          Dir  : Curses_Bool) return C_Int;
       pragma Import (C, Transform, "wmouse_trafo");
 
-      X : aliased C_Int := C_Int (Column);
-      Y : aliased C_Int := C_Int (Line);
-      D : Curses_Bool := Curses_Bool_False;
-      R : C_Int;
+      X : aliased C_Int := C_Int (Column);
+      Y : aliased C_Int := C_Int (Line);
+      D : Curses_Bool := Curses_Bool_False;
+      R : C_Int;
    begin
-      if Dir = To_Screen then
-         D := 1;
+      if Dir = To_Screen then
+         D := 1;
       end if;
-      R := Transform (W, Y'Access, X'Access, D);
-      if R = Curses_False then
-         raise Curses_Exception;
+      R := Transform (W, Y'Access, X'Access, D);
+      if R = Curses_False then
+         raise Curses_Exception;
       else
-         Line   := Line_Position (Y);
-         Column := Column_Position (X);
+         Line   := Line_Position (Y);
+         Column := Column_Position (X);
       end if;
-   end Transform_Coordinates;
-------------------------------------------------------------------------------
-   procedure Use_Default_Colors is
-      function C_Use_Default_Colors return C_Int;
+   end Transform_Coordinates;
+------------------------------------------------------------------------------
+   procedure Use_Default_Colors is
+      function C_Use_Default_Colors return C_Int;
       pragma Import (C, C_Use_Default_Colors, "use_default_colors");
-      Err : constant C_Int := C_Use_Default_Colors;
+      Err : constant C_Int := C_Use_Default_Colors;
    begin
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Use_Default_Colors;
+   end Use_Default_Colors;
 
-   procedure Assume_Default_Colors (Fore : Color_Number := Default_Color;
-                                    Back : Color_Number := Default_Color)
+   procedure Assume_Default_Colors (Fore : Color_Number := Default_Color;
+                                    Back : Color_Number := Default_Color)
    is
-      function C_Assume_Default_Colors (Fore : C_Int;
-                                        Back : C_Int) return C_Int;
+      function C_Assume_Default_Colors (Fore : C_Int;
+                                        Back : C_Int) return C_Int;
       pragma Import (C, C_Assume_Default_Colors, "assume_default_colors");
 
-      Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
-                                                       C_Int (Back));
+      Err : constant C_Int := C_Assume_Default_Colors (C_Int (Fore),
+                                                       C_Int (Back));
    begin
-      if Err = Curses_Err then
-         raise Curses_Exception;
+      if Err = Curses_Err then
+         raise Curses_Exception;
       end if;
-   end Assume_Default_Colors;
-------------------------------------------------------------------------------
-   function Curses_Version return String
+   end Assume_Default_Colors;
+------------------------------------------------------------------------------
+   function Curses_Version return String
    is
-      function curses_versionC return chars_ptr;
+      function curses_versionC return chars_ptr;
       pragma Import (C, curses_versionC, "curses_version");
-      Result : constant chars_ptr := curses_versionC;
+      Result : constant chars_ptr := curses_versionC;
    begin
-      return Fill_String (Result);
-   end Curses_Version;
-------------------------------------------------------------------------------
-   procedure Curses_Free_All is
-      procedure curses_freeall;
+      return Fill_String (Result);
+   end Curses_Version;
+------------------------------------------------------------------------------
+   procedure Curses_Free_All is
+      procedure curses_freeall;
       pragma Import (C, curses_freeall, "_nc_freeall");
    begin
-      --  Use this only for testing: you cannot use curses after calling it,
-      --  so it has to be the "last" thing done before exiting the program.
-      --  This will not really free ALL of memory used by curses.  That is
-      --  because it cannot free the memory used for stdout's setbuf.  The
-      --  _nc_free_and_exit() procedure can do that, but it can be invoked
-      --  safely only from C - and again, that only as the "last" thing done
-      --  before exiting the program.
-      curses_freeall;
-   end Curses_Free_All;
-------------------------------------------------------------------------------
-   function Use_Extended_Names (Enable : Boolean) return Boolean
-   is
-      function use_extended_namesC (e : Curses_Bool) return C_Int;
+      --  Use this only for testing: you cannot use curses after calling it,
+      --  so it has to be the "last" thing done before exiting the program.
+      --  This will not really free ALL of memory used by curses.  That is
+      --  because it cannot free the memory used for stdout's setbuf.  The
+      --  _nc_free_and_exit() procedure can do that, but it can be invoked
+      --  safely only from C - and again, that only as the "last" thing done
+      --  before exiting the program.
+      curses_freeall;
+   end Curses_Free_All;
+------------------------------------------------------------------------------
+   function Use_Extended_Names (Enable : Boolean) return Boolean
+   is
+      function use_extended_namesC (e : Curses_Bool) return C_Int;
       pragma Import (C, use_extended_namesC, "use_extended_names");
 
-      Res : constant C_Int :=
-         use_extended_namesC (Curses_Bool (Boolean'Pos (Enable)));
+      Res : constant C_Int :=
+         use_extended_namesC (Curses_Bool (Boolean'Pos (Enable)));
    begin
-      if Res = C_Int (Curses_Bool_False) then
+      if Res = C_Int (Curses_Bool_False) then
          return False;
       else
          return True;
       end if;
-   end Use_Extended_Names;
-------------------------------------------------------------------------------
-   procedure Screen_Dump_To_File (Filename : String)
+   end Use_Extended_Names;
+------------------------------------------------------------------------------
+   procedure Screen_Dump_To_File (Filename : String)
    is
-      function scr_dump (f : char_array) return C_Int;
+      function scr_dump (f : char_array) return C_Int;
       pragma Import (C, scr_dump, "scr_dump");
-      Txt    : char_array (0 .. Filename'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
    begin
-      To_C (Filename, Txt, Length);
-      if Curses_Err = scr_dump (Txt) then
-         raise Curses_Exception;
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_dump (Txt) then
+         raise Curses_Exception;
       end if;
-   end Screen_Dump_To_File;
+   end Screen_Dump_To_File;
 
-   procedure Screen_Restore_From_File (Filename : String)
+   procedure Screen_Restore_From_File (Filename : String)
    is
-      function scr_restore (f : char_array) return C_Int;
+      function scr_restore (f : char_array) return C_Int;
       pragma Import (C, scr_restore, "scr_restore");
-      Txt    : char_array (0 .. Filename'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
    begin
-      To_C (Filename, Txt, Length);
-      if Curses_Err = scr_restore (Txt)  then
-         raise Curses_Exception;
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_restore (Txt)  then
+         raise Curses_Exception;
       end if;
-   end Screen_Restore_From_File;
+   end Screen_Restore_From_File;
 
-   procedure Screen_Init_From_File (Filename : String)
+   procedure Screen_Init_From_File (Filename : String)
    is
-      function scr_init (f : char_array) return C_Int;
+      function scr_init (f : char_array) return C_Int;
       pragma Import (C, scr_init, "scr_init");
-      Txt    : char_array (0 .. Filename'Length);
-      Length : size_t;
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
    begin
-      To_C (Filename, Txt, Length);
-      if Curses_Err = scr_init (Txt) then
-         raise Curses_Exception;
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_init (Txt) then
+         raise Curses_Exception;
       end if;
-   end Screen_Init_From_File;
+   end Screen_Init_From_File;
 
-   procedure Screen_Set_File (Filename : String)
+   procedure Screen_Set_File (Filename : String)
    is
-      function scr_set (f : char_array) return C_Int;
+      function scr_set (f : char_array) return C_Int;
       pragma Import (C, scr_set, "scr_set");
-      Txt    : char_array (0 .. Filename'Length);
-      Length : size_t;
-   begin
-      To_C (Filename, Txt, Length);
-      if Curses_Err = scr_set (Txt) then
-         raise Curses_Exception;
-      end if;
-   end Screen_Set_File;
-------------------------------------------------------------------------------
-   procedure Resize (Win               : Window := Standard_Window;
-                     Number_Of_Lines   : Line_Count;
-                     Number_Of_Columns : Column_Count) is
-      function wresize (win     : Window;
-                        lines   : C_Int;
-                        columns : C_Int) return C_Int;
+      Txt    : char_array (0 .. Filename'Length);
+      Length : size_t;
+   begin
+      To_C (Filename, Txt, Length);
+      if Curses_Err = scr_set (Txt) then
+         raise Curses_Exception;
+      end if;
+   end Screen_Set_File;
+------------------------------------------------------------------------------
+   procedure Resize (Win               : Window := Standard_Window;
+                     Number_Of_Lines   : Line_Count;
+                     Number_Of_Columns : Column_Count) is
+      function wresize (win     : Window;
+                        lines   : C_Int;
+                        columns : C_Int) return C_Int;
       pragma Import (C, wresize);
    begin
-      if wresize (Win,
-                  C_Int (Number_Of_Lines),
-                  C_Int (Number_Of_Columns)) = Curses_Err
+      if wresize (Win,
+                  C_Int (Number_Of_Lines),
+                  C_Int (Number_Of_Columns)) = Curses_Err
       then
-         raise Curses_Exception;
+         raise Curses_Exception;
       end if;
-   end Resize;
-------------------------------------------------------------------------------
+   end Resize;
+------------------------------------------------------------------------------
 
-end Terminal_Interface.Curses;
-
+end Terminal_Interface.Curses; +
diff --git a/doc/html/ada/terminal_interface-curses__ads.htm b/doc/html/ada/terminal_interface-curses__ads.htm index 83978473..c39b2f41 100644 --- a/doc/html/ada/terminal_interface-curses__ads.htm +++ b/doc/html/ada/terminal_interface-curses__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses.ads + + +terminal_interface-curses.ads - - -

File : terminal_interface-curses.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                         Terminal_Interface.Curses                        --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1998-2011,2014 Free 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, 1996
---  Version Control:
---  @Revision: 1.48 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
+
+
+

File : terminal_interface-curses.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                         Terminal_Interface.Curses                        --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1998-2011,2014 Free 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, 1996
+--  Version Control:
+--  @Revision: 1.48 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
 with System.Storage_Elements;
-with Interfaces.C;   --  We need this for some assertions.
+with Interfaces.C;   --  We need this for some assertions.
 
-with Terminal_Interface.Curses_Constants;
+with Terminal_Interface.Curses_Constants;
 
-package Terminal_Interface.Curses is
-   pragma Preelaborate (Terminal_Interface.Curses);
-   pragma Linker_Options ("-lncurses" & Curses_Constants.DFT_ARG_SUFFIX);
+package Terminal_Interface.Curses is
+   pragma Preelaborate (Terminal_Interface.Curses);
+   pragma Linker_Options ("-lncurses" & Curses_Constants.DFT_ARG_SUFFIX);
 
-   Major_Version : constant := Curses_Constants.NCURSES_VERSION_MAJOR;
-   Minor_Version : constant := Curses_Constants.NCURSES_VERSION_MINOR;
-   NC_Version : String renames Curses_Constants.Version;
+   Major_Version : constant := Curses_Constants.NCURSES_VERSION_MAJOR;
+   Minor_Version : constant := Curses_Constants.NCURSES_VERSION_MINOR;
+   NC_Version : String renames Curses_Constants.Version;
 
-   type Window is private;
-   Null_Window : constant Window;
+   type Window is private;
+   Null_Window : constant Window;
 
-   type Line_Position   is new Integer; --  line coordinate
-   type Column_Position is new Integer; --  column coordinate
+   type Line_Position   is new Integer; --  line coordinate
+   type Column_Position is new Integer; --  column coordinate
 
-   subtype Line_Count   is Line_Position   range 1 .. Line_Position'Last;
-   --  Type to count lines. We do not allow null windows, so must be positive
-   subtype Column_Count is Column_Position range 1 .. Column_Position'Last;
-   --  Type to count columns. We do not allow null windows, so must be positive
+   subtype Line_Count   is Line_Position   range 1 .. Line_Position'Last;
+   --  Type to count lines. We do not allow null windows, so must be positive
+   subtype Column_Count is Column_Position range 1 .. Column_Position'Last;
+   --  Type to count columns. We do not allow null windows, so must be positive
 
-   type Key_Code is new Integer;
-   --  That is anything including real characters, special keys and logical
-   --  request codes.
+   type Key_Code is new Integer;
+   --  That is anything including real characters, special keys and logical
+   --  request codes.
 
-   --  FIXME: The "-1" should be Curses_Err
-   subtype Real_Key_Code is Key_Code range -1 .. Curses_Constants.KEY_MAX;
-   --  This are the codes that potentially represent a real keystroke.
-   --  Not all codes may be possible on a specific terminal. To check the
-   --  availability of a special key, the Has_Key function is provided.
+   --  FIXME: The "-1" should be Curses_Err
+   subtype Real_Key_Code is Key_Code range -1 .. Curses_Constants.KEY_MAX;
+   --  This are the codes that potentially represent a real keystroke.
+   --  Not all codes may be possible on a specific terminal. To check the
+   --  availability of a special key, the Has_Key function is provided.
 
-   subtype Special_Key_Code is Real_Key_Code
-     range Curses_Constants. KEY_MIN - 1 .. Real_Key_Code'Last;
-   --  Type for a function- or special key number
+   subtype Special_Key_Code is Real_Key_Code
+     range Curses_Constants. KEY_MIN - 1 .. Real_Key_Code'Last;
+   --  Type for a function- or special key number
 
-   subtype Normal_Key_Code is Real_Key_Code range
+   subtype Normal_Key_Code is Real_Key_Code range
      Character'Pos (Character'First) .. Character'Pos (Character'Last);
-   --  This are the codes for regular (incl. non-graphical) characters.
-
-   --  For those who like to use the original key names we produce them were
-   --  they differ from the original.
-
-   --  Constants for function- and special keys
-   Key_None                    : constant Special_Key_Code
-     := Curses_Constants.KEY_MIN - 1;
-   Key_Min                     : constant Special_Key_Code
-     := Curses_Constants.KEY_MIN;
-   Key_Break                   : constant Special_Key_Code
-     := Curses_Constants.KEY_BREAK;
-   KEY_DOWN                    : constant Special_Key_Code
-     := Curses_Constants.KEY_DOWN;
-   Key_Cursor_Down             : Special_Key_Code renames KEY_DOWN;
-   KEY_UP                      : constant Special_Key_Code
-     := Curses_Constants.KEY_UP;
-   Key_Cursor_Up               : Special_Key_Code renames KEY_UP;
-   KEY_LEFT                    : constant Special_Key_Code
-     := Curses_Constants.KEY_LEFT;
-   Key_Cursor_Left             : Special_Key_Code renames KEY_LEFT;
-   KEY_RIGHT                   : constant Special_Key_Code
-     := Curses_Constants.KEY_RIGHT;
-   Key_Cursor_Right            : Special_Key_Code renames KEY_RIGHT;
-   Key_Home                    : constant Special_Key_Code
-     := Curses_Constants.KEY_HOME;
-   Key_Backspace               : constant Special_Key_Code
-     := Curses_Constants.KEY_BACKSPACE;
-   Key_F0                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F0;
-   Key_F1                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F1;
-   Key_F2                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F2;
-   Key_F3                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F3;
-   Key_F4                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F4;
-   Key_F5                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F5;
-   Key_F6                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F6;
-   Key_F7                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F7;
-   Key_F8                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F8;
-   Key_F9                      : constant Special_Key_Code
-     := Curses_Constants.KEY_F9;
-   Key_F10                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F10;
-   Key_F11                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F11;
-   Key_F12                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F12;
-   Key_F13                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F13;
-   Key_F14                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F14;
-   Key_F15                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F15;
-   Key_F16                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F16;
-   Key_F17                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F17;
-   Key_F18                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F18;
-   Key_F19                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F19;
-   Key_F20                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F20;
-   Key_F21                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F21;
-   Key_F22                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F22;
-   Key_F23                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F23;
-   Key_F24                     : constant Special_Key_Code
-     := Curses_Constants.KEY_F24;
-   KEY_DL                      : constant Special_Key_Code
-     := Curses_Constants.KEY_DL;
-   Key_Delete_Line             : Special_Key_Code renames KEY_DL;
-   KEY_IL                      : constant Special_Key_Code
-     := Curses_Constants.KEY_IL;
-   Key_Insert_Line             : Special_Key_Code renames KEY_IL;
-   KEY_DC                      : constant Special_Key_Code
-     := Curses_Constants.KEY_DC;
-   Key_Delete_Char             : Special_Key_Code renames KEY_DC;
-   KEY_IC                      : constant Special_Key_Code
-     := Curses_Constants.KEY_IC;
-   Key_Insert_Char             : Special_Key_Code renames KEY_IC;
-   KEY_EIC                     : constant Special_Key_Code
-     := Curses_Constants.KEY_EIC;
-   Key_Exit_Insert_Mode        : Special_Key_Code renames KEY_EIC;
-   KEY_CLEAR                   : constant Special_Key_Code
-     := Curses_Constants.KEY_CLEAR;
-   Key_Clear_Screen            : Special_Key_Code renames KEY_CLEAR;
-   KEY_EOS                     : constant Special_Key_Code
-     := Curses_Constants.KEY_EOS;
-   Key_Clear_End_Of_Screen     : Special_Key_Code renames KEY_EOS;
-   KEY_EOL                     : constant Special_Key_Code
-     := Curses_Constants.KEY_EOL;
-   Key_Clear_End_Of_Line       : Special_Key_Code renames KEY_EOL;
-   KEY_SF                      : constant Special_Key_Code
-     := Curses_Constants.KEY_SF;
-   Key_Scroll_1_Forward        : Special_Key_Code renames KEY_SF;
-   KEY_SR                      : constant Special_Key_Code
-     := Curses_Constants.KEY_SR;
-   Key_Scroll_1_Backward       : Special_Key_Code renames KEY_SR;
-   KEY_NPAGE                   : constant Special_Key_Code
-     := Curses_Constants.KEY_NPAGE;
-   Key_Next_Page               : Special_Key_Code renames KEY_NPAGE;
-   KEY_PPAGE                   : constant Special_Key_Code
-     := Curses_Constants.KEY_PPAGE;
-   Key_Previous_Page           : Special_Key_Code renames KEY_PPAGE;
-   KEY_STAB                    : constant Special_Key_Code
-     := Curses_Constants.KEY_STAB;
-   Key_Set_Tab                 : Special_Key_Code renames KEY_STAB;
-   KEY_CTAB                    : constant Special_Key_Code
-     := Curses_Constants.KEY_CTAB;
-   Key_Clear_Tab               : Special_Key_Code renames KEY_CTAB;
-   KEY_CATAB                   : constant Special_Key_Code
-     := Curses_Constants.KEY_CATAB;
-   Key_Clear_All_Tabs          : Special_Key_Code renames KEY_CATAB;
-   KEY_ENTER                   : constant Special_Key_Code
-     := Curses_Constants.KEY_ENTER;
-   Key_Enter_Or_Send           : Special_Key_Code renames KEY_ENTER;
-   KEY_SRESET                  : constant Special_Key_Code
-     := Curses_Constants.KEY_SRESET;
-   Key_Soft_Reset              : Special_Key_Code renames KEY_SRESET;
-   Key_Reset                   : constant Special_Key_Code
-     := Curses_Constants.KEY_RESET;
-   Key_Print                   : constant Special_Key_Code
-     := Curses_Constants.KEY_PRINT;
-   KEY_LL                      : constant Special_Key_Code
-     := Curses_Constants.KEY_LL;
-   Key_Bottom                  : Special_Key_Code renames KEY_LL;
-   KEY_A1                      : constant Special_Key_Code
-     := Curses_Constants.KEY_A1;
-   Key_Upper_Left_Of_Keypad    : Special_Key_Code renames KEY_A1;
-   KEY_A3                      : constant Special_Key_Code
-     := Curses_Constants.KEY_A3;
-   Key_Upper_Right_Of_Keypad   : Special_Key_Code renames KEY_A3;
-   KEY_B2                      : constant Special_Key_Code
-     := Curses_Constants.KEY_B2;
-   Key_Center_Of_Keypad        : Special_Key_Code renames KEY_B2;
-   KEY_C1                      : constant Special_Key_Code
-     := Curses_Constants.KEY_C1;
-   Key_Lower_Left_Of_Keypad    : Special_Key_Code renames KEY_C1;
-   KEY_C3                      : constant Special_Key_Code
-     := Curses_Constants.KEY_C3;
-   Key_Lower_Right_Of_Keypad   : Special_Key_Code renames KEY_C3;
-   KEY_BTAB                    : constant Special_Key_Code
-     := Curses_Constants.KEY_BTAB;
-   Key_Back_Tab                : Special_Key_Code renames KEY_BTAB;
-   KEY_BEG                     : constant Special_Key_Code
-     := Curses_Constants.KEY_BEG;
-   Key_Beginning               : Special_Key_Code renames KEY_BEG;
-   Key_Cancel                  : constant Special_Key_Code
-     := Curses_Constants.KEY_CANCEL;
-   Key_Close                   : constant Special_Key_Code
-     := Curses_Constants.KEY_CLOSE;
-   Key_Command                 : constant Special_Key_Code
-     := Curses_Constants.KEY_COMMAND;
-   Key_Copy                    : constant Special_Key_Code
-     := Curses_Constants.KEY_COPY;
-   Key_Create                  : constant Special_Key_Code
-     := Curses_Constants.KEY_CREATE;
-   Key_End                     : constant Special_Key_Code
-     := Curses_Constants.KEY_END;
-   Key_Exit                    : constant Special_Key_Code
-     := Curses_Constants.KEY_EXIT;
-   Key_Find                    : constant Special_Key_Code
-     := Curses_Constants.KEY_FIND;
-   Key_Help                    : constant Special_Key_Code
-     := Curses_Constants.KEY_HELP;
-   Key_Mark                    : constant Special_Key_Code
-     := Curses_Constants.KEY_MARK;
-   Key_Message                 : constant Special_Key_Code
-     := Curses_Constants.KEY_MESSAGE;
-   Key_Move                    : constant Special_Key_Code
-     := Curses_Constants.KEY_MOVE;
-   Key_Next                    : constant Special_Key_Code
-     := Curses_Constants.KEY_NEXT;
-   Key_Open                    : constant Special_Key_Code
-     := Curses_Constants.KEY_OPEN;
-   Key_Options                 : constant Special_Key_Code
-     := Curses_Constants.KEY_OPTIONS;
-   Key_Previous                : constant Special_Key_Code
-     := Curses_Constants.KEY_PREVIOUS;
-   Key_Redo                    : constant Special_Key_Code
-     := Curses_Constants.KEY_REDO;
-   Key_Reference               : constant Special_Key_Code
-     := Curses_Constants.KEY_REFERENCE;
-   Key_Refresh                 : constant Special_Key_Code
-     := Curses_Constants.KEY_REFRESH;
-   Key_Replace                 : constant Special_Key_Code
-     := Curses_Constants.KEY_REPLACE;
-   Key_Restart                 : constant Special_Key_Code
-     := Curses_Constants.KEY_RESTART;
-   Key_Resume                  : constant Special_Key_Code
-     := Curses_Constants.KEY_RESUME;
-   Key_Save                    : constant Special_Key_Code
-     := Curses_Constants.KEY_SAVE;
-   KEY_SBEG                    : constant Special_Key_Code
-     := Curses_Constants.KEY_SBEG;
-   Key_Shift_Begin             : Special_Key_Code renames KEY_SBEG;
-   KEY_SCANCEL                 : constant Special_Key_Code
-     := Curses_Constants.KEY_SCANCEL;
-   Key_Shift_Cancel            : Special_Key_Code renames KEY_SCANCEL;
-   KEY_SCOMMAND                : constant Special_Key_Code
-     := Curses_Constants.KEY_SCOMMAND;
-   Key_Shift_Command           : Special_Key_Code renames KEY_SCOMMAND;
-   KEY_SCOPY                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SCOPY;
-   Key_Shift_Copy              : Special_Key_Code renames KEY_SCOPY;
-   KEY_SCREATE                 : constant Special_Key_Code
-     := Curses_Constants.KEY_SCREATE;
-   Key_Shift_Create            : Special_Key_Code renames KEY_SCREATE;
-   KEY_SDC                     : constant Special_Key_Code
-     := Curses_Constants.KEY_SDC;
-   Key_Shift_Delete_Char       : Special_Key_Code renames KEY_SDC;
-   KEY_SDL                     : constant Special_Key_Code
-     := Curses_Constants.KEY_SDL;
-   Key_Shift_Delete_Line       : Special_Key_Code renames KEY_SDL;
-   Key_Select                  : constant Special_Key_Code
-     := Curses_Constants.KEY_SELECT;
-   KEY_SEND                    : constant Special_Key_Code
-     := Curses_Constants.KEY_SEND;
-   Key_Shift_End               : Special_Key_Code renames KEY_SEND;
-   KEY_SEOL                    : constant Special_Key_Code
-     := Curses_Constants.KEY_SEOL;
-   Key_Shift_Clear_End_Of_Line : Special_Key_Code renames KEY_SEOL;
-   KEY_SEXIT                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SEXIT;
-   Key_Shift_Exit              : Special_Key_Code renames KEY_SEXIT;
-   KEY_SFIND                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SFIND;
-   Key_Shift_Find              : Special_Key_Code renames KEY_SFIND;
-   KEY_SHELP                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SHELP;
-   Key_Shift_Help              : Special_Key_Code renames KEY_SHELP;
-   KEY_SHOME                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SHOME;
-   Key_Shift_Home              : Special_Key_Code renames KEY_SHOME;
-   KEY_SIC                     : constant Special_Key_Code
-     := Curses_Constants.KEY_SIC;
-   Key_Shift_Insert_Char       : Special_Key_Code renames KEY_SIC;
-   KEY_SLEFT                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SLEFT;
-   Key_Shift_Cursor_Left       : Special_Key_Code renames KEY_SLEFT;
-   KEY_SMESSAGE                : constant Special_Key_Code
-     := Curses_Constants.KEY_SMESSAGE;
-   Key_Shift_Message           : Special_Key_Code renames KEY_SMESSAGE;
-   KEY_SMOVE                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SMOVE;
-   Key_Shift_Move              : Special_Key_Code renames KEY_SMOVE;
-   KEY_SNEXT                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SNEXT;
-   Key_Shift_Next_Page         : Special_Key_Code renames KEY_SNEXT;
-   KEY_SOPTIONS                : constant Special_Key_Code
-     := Curses_Constants.KEY_SOPTIONS;
-   Key_Shift_Options           : Special_Key_Code renames KEY_SOPTIONS;
-   KEY_SPREVIOUS               : constant Special_Key_Code
-     := Curses_Constants.KEY_SPREVIOUS;
-   Key_Shift_Previous_Page     : Special_Key_Code renames KEY_SPREVIOUS;
-   KEY_SPRINT                  : constant Special_Key_Code
-     := Curses_Constants.KEY_SPRINT;
-   Key_Shift_Print             : Special_Key_Code renames KEY_SPRINT;
-   KEY_SREDO                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SREDO;
-   Key_Shift_Redo              : Special_Key_Code renames KEY_SREDO;
-   KEY_SREPLACE                : constant Special_Key_Code
-     := Curses_Constants.KEY_SREPLACE;
-   Key_Shift_Replace           : Special_Key_Code renames KEY_SREPLACE;
-   KEY_SRIGHT                  : constant Special_Key_Code
-     := Curses_Constants.KEY_SRIGHT;
-   Key_Shift_Cursor_Right      : Special_Key_Code renames KEY_SRIGHT;
-   KEY_SRSUME                  : constant Special_Key_Code
-     := Curses_Constants.KEY_SRSUME;
-   Key_Shift_Resume            : Special_Key_Code renames KEY_SRSUME;
-   KEY_SSAVE                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SSAVE;
-   Key_Shift_Save              : Special_Key_Code renames KEY_SSAVE;
-   KEY_SSUSPEND                : constant Special_Key_Code
-     := Curses_Constants.KEY_SSUSPEND;
-   Key_Shift_Suspend           : Special_Key_Code renames KEY_SSUSPEND;
-   KEY_SUNDO                   : constant Special_Key_Code
-     := Curses_Constants.KEY_SUNDO;
-   Key_Shift_Undo              : Special_Key_Code renames KEY_SUNDO;
-   Key_Suspend                 : constant Special_Key_Code
-     := Curses_Constants.KEY_SUSPEND;
-   Key_Undo                    : constant Special_Key_Code
-     := Curses_Constants.KEY_UNDO;
-   Key_Mouse                   : constant Special_Key_Code
-     := Curses_Constants.KEY_MOUSE;
-   Key_Resize                  : constant Special_Key_Code
-     := Curses_Constants.KEY_RESIZE;
-   Key_Max                     : constant Special_Key_Code
-     := Special_Key_Code'Last;
-
-   subtype User_Key_Code is Key_Code
-     range (Key_Max + 129) .. Key_Code'Last;
-   --  This is reserved for user defined key codes. The range between Key_Max
-   --  and the first user code is reserved for subsystems like menu and forms.
-
-   --------------------------------------------------------------------------
-
-   type Color_Number is range -1 .. Integer (Interfaces.C.short'Last);
-   for Color_Number'Size use Interfaces.C.short'Size;
-   --  (n)curses uses a short for the color index
-   --  The model is, that a Color_Number is an index into an array of
-   --  (potentially) definable colors. Some of those indices are
-   --  predefined (see below), although they may not really exist.
-
-   Black   : constant Color_Number := Curses_Constants.COLOR_BLACK;
-   Red     : constant Color_Number := Curses_Constants.COLOR_RED;
-   Green   : constant Color_Number := Curses_Constants.COLOR_GREEN;
-   Yellow  : constant Color_Number := Curses_Constants.COLOR_YELLOW;
-   Blue    : constant Color_Number := Curses_Constants.COLOR_BLUE;
-   Magenta : constant Color_Number := Curses_Constants.COLOR_MAGENTA;
-   Cyan    : constant Color_Number := Curses_Constants.COLOR_CYAN;
-   White   : constant Color_Number := Curses_Constants.COLOR_WHITE;
-
-   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.
-
-   type Color_Pair is range 0 .. 255;
-   for Color_Pair'Size use 8;
-   subtype Redefinable_Color_Pair is Color_Pair range 1 .. 255;
-   --  (n)curses reserves 1 Byte for the color-pair number. Color Pair 0
-   --  is fixed (Black & White). A color pair is simply a combination of
-   --  two colors described by Color_Numbers, one for the foreground and
-   --  the other for the background
-
-   type Character_Attribute_Set is
+   --  This are the codes for regular (incl. non-graphical) characters.
+
+   --  For those who like to use the original key names we produce them were
+   --  they differ from the original.
+
+   --  Constants for function- and special keys
+   Key_None                    : constant Special_Key_Code
+     := Curses_Constants.KEY_MIN - 1;
+   Key_Min                     : constant Special_Key_Code
+     := Curses_Constants.KEY_MIN;
+   Key_Break                   : constant Special_Key_Code
+     := Curses_Constants.KEY_BREAK;
+   KEY_DOWN                    : constant Special_Key_Code
+     := Curses_Constants.KEY_DOWN;
+   Key_Cursor_Down             : Special_Key_Code renames KEY_DOWN;
+   KEY_UP                      : constant Special_Key_Code
+     := Curses_Constants.KEY_UP;
+   Key_Cursor_Up               : Special_Key_Code renames KEY_UP;
+   KEY_LEFT                    : constant Special_Key_Code
+     := Curses_Constants.KEY_LEFT;
+   Key_Cursor_Left             : Special_Key_Code renames KEY_LEFT;
+   KEY_RIGHT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_RIGHT;
+   Key_Cursor_Right            : Special_Key_Code renames KEY_RIGHT;
+   Key_Home                    : constant Special_Key_Code
+     := Curses_Constants.KEY_HOME;
+   Key_Backspace               : constant Special_Key_Code
+     := Curses_Constants.KEY_BACKSPACE;
+   Key_F0                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F0;
+   Key_F1                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F1;
+   Key_F2                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F2;
+   Key_F3                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F3;
+   Key_F4                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F4;
+   Key_F5                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F5;
+   Key_F6                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F6;
+   Key_F7                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F7;
+   Key_F8                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F8;
+   Key_F9                      : constant Special_Key_Code
+     := Curses_Constants.KEY_F9;
+   Key_F10                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F10;
+   Key_F11                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F11;
+   Key_F12                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F12;
+   Key_F13                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F13;
+   Key_F14                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F14;
+   Key_F15                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F15;
+   Key_F16                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F16;
+   Key_F17                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F17;
+   Key_F18                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F18;
+   Key_F19                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F19;
+   Key_F20                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F20;
+   Key_F21                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F21;
+   Key_F22                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F22;
+   Key_F23                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F23;
+   Key_F24                     : constant Special_Key_Code
+     := Curses_Constants.KEY_F24;
+   KEY_DL                      : constant Special_Key_Code
+     := Curses_Constants.KEY_DL;
+   Key_Delete_Line             : Special_Key_Code renames KEY_DL;
+   KEY_IL                      : constant Special_Key_Code
+     := Curses_Constants.KEY_IL;
+   Key_Insert_Line             : Special_Key_Code renames KEY_IL;
+   KEY_DC                      : constant Special_Key_Code
+     := Curses_Constants.KEY_DC;
+   Key_Delete_Char             : Special_Key_Code renames KEY_DC;
+   KEY_IC                      : constant Special_Key_Code
+     := Curses_Constants.KEY_IC;
+   Key_Insert_Char             : Special_Key_Code renames KEY_IC;
+   KEY_EIC                     : constant Special_Key_Code
+     := Curses_Constants.KEY_EIC;
+   Key_Exit_Insert_Mode        : Special_Key_Code renames KEY_EIC;
+   KEY_CLEAR                   : constant Special_Key_Code
+     := Curses_Constants.KEY_CLEAR;
+   Key_Clear_Screen            : Special_Key_Code renames KEY_CLEAR;
+   KEY_EOS                     : constant Special_Key_Code
+     := Curses_Constants.KEY_EOS;
+   Key_Clear_End_Of_Screen     : Special_Key_Code renames KEY_EOS;
+   KEY_EOL                     : constant Special_Key_Code
+     := Curses_Constants.KEY_EOL;
+   Key_Clear_End_Of_Line       : Special_Key_Code renames KEY_EOL;
+   KEY_SF                      : constant Special_Key_Code
+     := Curses_Constants.KEY_SF;
+   Key_Scroll_1_Forward        : Special_Key_Code renames KEY_SF;
+   KEY_SR                      : constant Special_Key_Code
+     := Curses_Constants.KEY_SR;
+   Key_Scroll_1_Backward       : Special_Key_Code renames KEY_SR;
+   KEY_NPAGE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_NPAGE;
+   Key_Next_Page               : Special_Key_Code renames KEY_NPAGE;
+   KEY_PPAGE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_PPAGE;
+   Key_Previous_Page           : Special_Key_Code renames KEY_PPAGE;
+   KEY_STAB                    : constant Special_Key_Code
+     := Curses_Constants.KEY_STAB;
+   Key_Set_Tab                 : Special_Key_Code renames KEY_STAB;
+   KEY_CTAB                    : constant Special_Key_Code
+     := Curses_Constants.KEY_CTAB;
+   Key_Clear_Tab               : Special_Key_Code renames KEY_CTAB;
+   KEY_CATAB                   : constant Special_Key_Code
+     := Curses_Constants.KEY_CATAB;
+   Key_Clear_All_Tabs          : Special_Key_Code renames KEY_CATAB;
+   KEY_ENTER                   : constant Special_Key_Code
+     := Curses_Constants.KEY_ENTER;
+   Key_Enter_Or_Send           : Special_Key_Code renames KEY_ENTER;
+   KEY_SRESET                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SRESET;
+   Key_Soft_Reset              : Special_Key_Code renames KEY_SRESET;
+   Key_Reset                   : constant Special_Key_Code
+     := Curses_Constants.KEY_RESET;
+   Key_Print                   : constant Special_Key_Code
+     := Curses_Constants.KEY_PRINT;
+   KEY_LL                      : constant Special_Key_Code
+     := Curses_Constants.KEY_LL;
+   Key_Bottom                  : Special_Key_Code renames KEY_LL;
+   KEY_A1                      : constant Special_Key_Code
+     := Curses_Constants.KEY_A1;
+   Key_Upper_Left_Of_Keypad    : Special_Key_Code renames KEY_A1;
+   KEY_A3                      : constant Special_Key_Code
+     := Curses_Constants.KEY_A3;
+   Key_Upper_Right_Of_Keypad   : Special_Key_Code renames KEY_A3;
+   KEY_B2                      : constant Special_Key_Code
+     := Curses_Constants.KEY_B2;
+   Key_Center_Of_Keypad        : Special_Key_Code renames KEY_B2;
+   KEY_C1                      : constant Special_Key_Code
+     := Curses_Constants.KEY_C1;
+   Key_Lower_Left_Of_Keypad    : Special_Key_Code renames KEY_C1;
+   KEY_C3                      : constant Special_Key_Code
+     := Curses_Constants.KEY_C3;
+   Key_Lower_Right_Of_Keypad   : Special_Key_Code renames KEY_C3;
+   KEY_BTAB                    : constant Special_Key_Code
+     := Curses_Constants.KEY_BTAB;
+   Key_Back_Tab                : Special_Key_Code renames KEY_BTAB;
+   KEY_BEG                     : constant Special_Key_Code
+     := Curses_Constants.KEY_BEG;
+   Key_Beginning               : Special_Key_Code renames KEY_BEG;
+   Key_Cancel                  : constant Special_Key_Code
+     := Curses_Constants.KEY_CANCEL;
+   Key_Close                   : constant Special_Key_Code
+     := Curses_Constants.KEY_CLOSE;
+   Key_Command                 : constant Special_Key_Code
+     := Curses_Constants.KEY_COMMAND;
+   Key_Copy                    : constant Special_Key_Code
+     := Curses_Constants.KEY_COPY;
+   Key_Create                  : constant Special_Key_Code
+     := Curses_Constants.KEY_CREATE;
+   Key_End                     : constant Special_Key_Code
+     := Curses_Constants.KEY_END;
+   Key_Exit                    : constant Special_Key_Code
+     := Curses_Constants.KEY_EXIT;
+   Key_Find                    : constant Special_Key_Code
+     := Curses_Constants.KEY_FIND;
+   Key_Help                    : constant Special_Key_Code
+     := Curses_Constants.KEY_HELP;
+   Key_Mark                    : constant Special_Key_Code
+     := Curses_Constants.KEY_MARK;
+   Key_Message                 : constant Special_Key_Code
+     := Curses_Constants.KEY_MESSAGE;
+   Key_Move                    : constant Special_Key_Code
+     := Curses_Constants.KEY_MOVE;
+   Key_Next                    : constant Special_Key_Code
+     := Curses_Constants.KEY_NEXT;
+   Key_Open                    : constant Special_Key_Code
+     := Curses_Constants.KEY_OPEN;
+   Key_Options                 : constant Special_Key_Code
+     := Curses_Constants.KEY_OPTIONS;
+   Key_Previous                : constant Special_Key_Code
+     := Curses_Constants.KEY_PREVIOUS;
+   Key_Redo                    : constant Special_Key_Code
+     := Curses_Constants.KEY_REDO;
+   Key_Reference               : constant Special_Key_Code
+     := Curses_Constants.KEY_REFERENCE;
+   Key_Refresh                 : constant Special_Key_Code
+     := Curses_Constants.KEY_REFRESH;
+   Key_Replace                 : constant Special_Key_Code
+     := Curses_Constants.KEY_REPLACE;
+   Key_Restart                 : constant Special_Key_Code
+     := Curses_Constants.KEY_RESTART;
+   Key_Resume                  : constant Special_Key_Code
+     := Curses_Constants.KEY_RESUME;
+   Key_Save                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SAVE;
+   KEY_SBEG                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SBEG;
+   Key_Shift_Begin             : Special_Key_Code renames KEY_SBEG;
+   KEY_SCANCEL                 : constant Special_Key_Code
+     := Curses_Constants.KEY_SCANCEL;
+   Key_Shift_Cancel            : Special_Key_Code renames KEY_SCANCEL;
+   KEY_SCOMMAND                : constant Special_Key_Code
+     := Curses_Constants.KEY_SCOMMAND;
+   Key_Shift_Command           : Special_Key_Code renames KEY_SCOMMAND;
+   KEY_SCOPY                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SCOPY;
+   Key_Shift_Copy              : Special_Key_Code renames KEY_SCOPY;
+   KEY_SCREATE                 : constant Special_Key_Code
+     := Curses_Constants.KEY_SCREATE;
+   Key_Shift_Create            : Special_Key_Code renames KEY_SCREATE;
+   KEY_SDC                     : constant Special_Key_Code
+     := Curses_Constants.KEY_SDC;
+   Key_Shift_Delete_Char       : Special_Key_Code renames KEY_SDC;
+   KEY_SDL                     : constant Special_Key_Code
+     := Curses_Constants.KEY_SDL;
+   Key_Shift_Delete_Line       : Special_Key_Code renames KEY_SDL;
+   Key_Select                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SELECT;
+   KEY_SEND                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SEND;
+   Key_Shift_End               : Special_Key_Code renames KEY_SEND;
+   KEY_SEOL                    : constant Special_Key_Code
+     := Curses_Constants.KEY_SEOL;
+   Key_Shift_Clear_End_Of_Line : Special_Key_Code renames KEY_SEOL;
+   KEY_SEXIT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SEXIT;
+   Key_Shift_Exit              : Special_Key_Code renames KEY_SEXIT;
+   KEY_SFIND                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SFIND;
+   Key_Shift_Find              : Special_Key_Code renames KEY_SFIND;
+   KEY_SHELP                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SHELP;
+   Key_Shift_Help              : Special_Key_Code renames KEY_SHELP;
+   KEY_SHOME                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SHOME;
+   Key_Shift_Home              : Special_Key_Code renames KEY_SHOME;
+   KEY_SIC                     : constant Special_Key_Code
+     := Curses_Constants.KEY_SIC;
+   Key_Shift_Insert_Char       : Special_Key_Code renames KEY_SIC;
+   KEY_SLEFT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SLEFT;
+   Key_Shift_Cursor_Left       : Special_Key_Code renames KEY_SLEFT;
+   KEY_SMESSAGE                : constant Special_Key_Code
+     := Curses_Constants.KEY_SMESSAGE;
+   Key_Shift_Message           : Special_Key_Code renames KEY_SMESSAGE;
+   KEY_SMOVE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SMOVE;
+   Key_Shift_Move              : Special_Key_Code renames KEY_SMOVE;
+   KEY_SNEXT                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SNEXT;
+   Key_Shift_Next_Page         : Special_Key_Code renames KEY_SNEXT;
+   KEY_SOPTIONS                : constant Special_Key_Code
+     := Curses_Constants.KEY_SOPTIONS;
+   Key_Shift_Options           : Special_Key_Code renames KEY_SOPTIONS;
+   KEY_SPREVIOUS               : constant Special_Key_Code
+     := Curses_Constants.KEY_SPREVIOUS;
+   Key_Shift_Previous_Page     : Special_Key_Code renames KEY_SPREVIOUS;
+   KEY_SPRINT                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SPRINT;
+   Key_Shift_Print             : Special_Key_Code renames KEY_SPRINT;
+   KEY_SREDO                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SREDO;
+   Key_Shift_Redo              : Special_Key_Code renames KEY_SREDO;
+   KEY_SREPLACE                : constant Special_Key_Code
+     := Curses_Constants.KEY_SREPLACE;
+   Key_Shift_Replace           : Special_Key_Code renames KEY_SREPLACE;
+   KEY_SRIGHT                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SRIGHT;
+   Key_Shift_Cursor_Right      : Special_Key_Code renames KEY_SRIGHT;
+   KEY_SRSUME                  : constant Special_Key_Code
+     := Curses_Constants.KEY_SRSUME;
+   Key_Shift_Resume            : Special_Key_Code renames KEY_SRSUME;
+   KEY_SSAVE                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SSAVE;
+   Key_Shift_Save              : Special_Key_Code renames KEY_SSAVE;
+   KEY_SSUSPEND                : constant Special_Key_Code
+     := Curses_Constants.KEY_SSUSPEND;
+   Key_Shift_Suspend           : Special_Key_Code renames KEY_SSUSPEND;
+   KEY_SUNDO                   : constant Special_Key_Code
+     := Curses_Constants.KEY_SUNDO;
+   Key_Shift_Undo              : Special_Key_Code renames KEY_SUNDO;
+   Key_Suspend                 : constant Special_Key_Code
+     := Curses_Constants.KEY_SUSPEND;
+   Key_Undo                    : constant Special_Key_Code
+     := Curses_Constants.KEY_UNDO;
+   Key_Mouse                   : constant Special_Key_Code
+     := Curses_Constants.KEY_MOUSE;
+   Key_Resize                  : constant Special_Key_Code
+     := Curses_Constants.KEY_RESIZE;
+   Key_Max                     : constant Special_Key_Code
+     := Special_Key_Code'Last;
+
+   subtype User_Key_Code is Key_Code
+     range (Key_Max + 129) .. Key_Code'Last;
+   --  This is reserved for user defined key codes. The range between Key_Max
+   --  and the first user code is reserved for subsystems like menu and forms.
+
+   --------------------------------------------------------------------------
+
+   type Color_Number is range -1 .. Integer (Interfaces.C.short'Last);
+   for Color_Number'Size use Interfaces.C.short'Size;
+   --  (n)curses uses a short for the color index
+   --  The model is, that a Color_Number is an index into an array of
+   --  (potentially) definable colors. Some of those indices are
+   --  predefined (see below), although they may not really exist.
+
+   Black   : constant Color_Number := Curses_Constants.COLOR_BLACK;
+   Red     : constant Color_Number := Curses_Constants.COLOR_RED;
+   Green   : constant Color_Number := Curses_Constants.COLOR_GREEN;
+   Yellow  : constant Color_Number := Curses_Constants.COLOR_YELLOW;
+   Blue    : constant Color_Number := Curses_Constants.COLOR_BLUE;
+   Magenta : constant Color_Number := Curses_Constants.COLOR_MAGENTA;
+   Cyan    : constant Color_Number := Curses_Constants.COLOR_CYAN;
+   White   : constant Color_Number := Curses_Constants.COLOR_WHITE;
+
+   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.
+
+   type Color_Pair is range 0 .. 255;
+   for Color_Pair'Size use 8;
+   subtype Redefinable_Color_Pair is Color_Pair range 1 .. 255;
+   --  (n)curses reserves 1 Byte for the color-pair number. Color Pair 0
+   --  is fixed (Black & White). A color pair is simply a combination of
+   --  two colors described by Color_Numbers, one for the foreground and
+   --  the other for the background
+
+   type Character_Attribute_Set is
       record
-         Stand_Out               : Boolean;
-         Under_Line              : Boolean;
-         Reverse_Video           : Boolean;
-         Blink                   : Boolean;
-         Dim_Character           : Boolean;
-         Bold_Character          : Boolean;
-         Protected_Character     : Boolean;
-         Invisible_Character     : Boolean;
-         Alternate_Character_Set : Boolean;
-         Horizontal              : Boolean;
-         Left                    : Boolean;
-         Low                     : Boolean;
-         Right                   : Boolean;
-         Top                     : Boolean;
-         Vertical                : Boolean;
+         Stand_Out               : Boolean;
+         Under_Line              : Boolean;
+         Reverse_Video           : Boolean;
+         Blink                   : Boolean;
+         Dim_Character           : Boolean;
+         Bold_Character          : Boolean;
+         Protected_Character     : Boolean;
+         Invisible_Character     : Boolean;
+         Alternate_Character_Set : Boolean;
+         Horizontal              : Boolean;
+         Left                    : Boolean;
+         Low                     : Boolean;
+         Right                   : Boolean;
+         Top                     : Boolean;
+         Vertical                : Boolean;
       end record;
 
-   for Character_Attribute_Set use
+   for Character_Attribute_Set use
       record
-         Stand_Out at 0 range
-           Curses_Constants.A_STANDOUT_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_STANDOUT_Last - Curses_Constants.Attr_First;
-         Under_Line at 0 range
-           Curses_Constants.A_UNDERLINE_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_UNDERLINE_Last - Curses_Constants.Attr_First;
-         Reverse_Video at 0 range
-           Curses_Constants.A_REVERSE_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_REVERSE_Last - Curses_Constants.Attr_First;
-         Blink at 0 range
-           Curses_Constants.A_BLINK_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_BLINK_Last - Curses_Constants.Attr_First;
-         Dim_Character at 0 range
-           Curses_Constants.A_DIM_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_DIM_Last - Curses_Constants.Attr_First;
-         Bold_Character at 0 range
-           Curses_Constants.A_BOLD_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_BOLD_Last - Curses_Constants.Attr_First;
-         Protected_Character at 0 range
-           Curses_Constants.A_PROTECT_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_PROTECT_Last - Curses_Constants.Attr_First;
-         Invisible_Character at 0 range
-           Curses_Constants.A_INVIS_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_INVIS_Last - Curses_Constants.Attr_First;
-         Alternate_Character_Set at 0 range
-           Curses_Constants.A_ALTCHARSET_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_ALTCHARSET_Last - Curses_Constants.Attr_First;
-         Horizontal at 0 range
-           Curses_Constants.A_HORIZONTAL_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_HORIZONTAL_Last - Curses_Constants.Attr_First;
-         Left at 0 range
-           Curses_Constants.A_LEFT_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_LEFT_Last - Curses_Constants.Attr_First;
-         Low at 0 range
-           Curses_Constants.A_LOW_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_LOW_Last - Curses_Constants.Attr_First;
-         Right at 0 range
-           Curses_Constants.A_RIGHT_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_RIGHT_Last - Curses_Constants.Attr_First;
-         Top at 0 range
-           Curses_Constants.A_TOP_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_TOP_Last - Curses_Constants.Attr_First;
-         Vertical at 0 range
-           Curses_Constants.A_VERTICAL_First - Curses_Constants.Attr_First
-           .. Curses_Constants.A_VERTICAL_Last - Curses_Constants.Attr_First;
+         Stand_Out at 0 range
+           Curses_Constants.A_STANDOUT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_STANDOUT_Last - Curses_Constants.Attr_First;
+         Under_Line at 0 range
+           Curses_Constants.A_UNDERLINE_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_UNDERLINE_Last - Curses_Constants.Attr_First;
+         Reverse_Video at 0 range
+           Curses_Constants.A_REVERSE_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_REVERSE_Last - Curses_Constants.Attr_First;
+         Blink at 0 range
+           Curses_Constants.A_BLINK_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_BLINK_Last - Curses_Constants.Attr_First;
+         Dim_Character at 0 range
+           Curses_Constants.A_DIM_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_DIM_Last - Curses_Constants.Attr_First;
+         Bold_Character at 0 range
+           Curses_Constants.A_BOLD_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_BOLD_Last - Curses_Constants.Attr_First;
+         Protected_Character at 0 range
+           Curses_Constants.A_PROTECT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_PROTECT_Last - Curses_Constants.Attr_First;
+         Invisible_Character at 0 range
+           Curses_Constants.A_INVIS_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_INVIS_Last - Curses_Constants.Attr_First;
+         Alternate_Character_Set at 0 range
+           Curses_Constants.A_ALTCHARSET_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_ALTCHARSET_Last - Curses_Constants.Attr_First;
+         Horizontal at 0 range
+           Curses_Constants.A_HORIZONTAL_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_HORIZONTAL_Last - Curses_Constants.Attr_First;
+         Left at 0 range
+           Curses_Constants.A_LEFT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_LEFT_Last - Curses_Constants.Attr_First;
+         Low at 0 range
+           Curses_Constants.A_LOW_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_LOW_Last - Curses_Constants.Attr_First;
+         Right at 0 range
+           Curses_Constants.A_RIGHT_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_RIGHT_Last - Curses_Constants.Attr_First;
+         Top at 0 range
+           Curses_Constants.A_TOP_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_TOP_Last - Curses_Constants.Attr_First;
+         Vertical at 0 range
+           Curses_Constants.A_VERTICAL_First - Curses_Constants.Attr_First
+           .. Curses_Constants.A_VERTICAL_Last - Curses_Constants.Attr_First;
       end record;
 
-   Normal_Video : constant Character_Attribute_Set := (others => False);
+   Normal_Video : constant Character_Attribute_Set := (others => False);
 
-   type Attributed_Character is
+   type Attributed_Character is
       record
-         Attr  : Character_Attribute_Set;
-         Color : Color_Pair;
-         Ch    : Character;
+         Attr  : Character_Attribute_Set;
+         Color : Color_Pair;
+         Ch    : Character;
       end record;
-   pragma Convention (C_Pass_By_Copy, Attributed_Character);
-   --  This is the counterpart for the chtype in C.
+   pragma Convention (C_Pass_By_Copy, Attributed_Character);
+   --  This is the counterpart for the chtype in C.
 
-   for Attributed_Character use
+   for Attributed_Character use
       record
-         Ch    at 0 range Curses_Constants.A_CHARTEXT_First
-           .. Curses_Constants.A_CHARTEXT_Last;
-         Color at 0 range Curses_Constants.A_COLOR_First
-           .. Curses_Constants.A_COLOR_Last;
+         Ch    at 0 range Curses_Constants.A_CHARTEXT_First
+           .. Curses_Constants.A_CHARTEXT_Last;
+         Color at 0 range Curses_Constants.A_COLOR_First
+           .. Curses_Constants.A_COLOR_Last;
          pragma Warnings (Off);
-         Attr  at 0 range Curses_Constants.Attr_First
-           .. Curses_Constants.Attr_Last;
+         Attr  at 0 range Curses_Constants.Attr_First
+           .. Curses_Constants.Attr_Last;
          pragma Warnings (On);
       end record;
-   for Attributed_Character'Size use Curses_Constants.chtype_Size;
+   for Attributed_Character'Size use Curses_Constants.chtype_Size;
 
-   Default_Character : constant Attributed_Character
-     := (Ch    => Character'First,
-         Color => Color_Pair'First,
-         Attr  => (others => False));  --  preelaboratable Normal_Video
+   Default_Character : constant Attributed_Character
+     := (Ch    => Character'First,
+         Color => Color_Pair'First,
+         Attr  => (others => False));  --  preelaboratable Normal_Video
 
-   type Attributed_String is array (Positive range <>) of Attributed_Character;
+   type Attributed_String is array (Positive range <>) of Attributed_Character;
    pragma Convention (C, Attributed_String);
-   --  In this binding we allow strings of attributed characters.
-
-   ------------------
-   --  Exceptions  --
-   ------------------
-   Curses_Exception     : exception;
-   Wrong_Curses_Version : exception;
-
-   --  Those exceptions are raised by the ETI (Extended Terminal Interface)
-   --  subpackets for Menu and Forms handling.
-   --
-   Eti_System_Error    : exception;
-   Eti_Bad_Argument    : exception;
-   Eti_Posted          : exception;
-   Eti_Connected       : exception;
-   Eti_Bad_State       : exception;
-   Eti_No_Room         : exception;
-   Eti_Not_Posted      : exception;
-   Eti_Unknown_Command : exception;
-   Eti_No_Match        : exception;
-   Eti_Not_Selectable  : exception;
-   Eti_Not_Connected   : exception;
-   Eti_Request_Denied  : exception;
-   Eti_Invalid_Field   : exception;
-   Eti_Current         : exception;
-
-   --------------------------------------------------------------------------
-   --  External C variables
-   --  Conceptually even in C this are kind of constants, but they are
-   --  initialized and sometimes changed by the library routines at runtime
-   --  depending on the type of terminal. I believe the best way to model
-   --  this is to use functions.
-   --------------------------------------------------------------------------
-
-   function Lines            return Line_Count;
-   pragma Inline (Lines);
-
-   function Columns          return Column_Count;
-   pragma Inline (Columns);
-
-   function Tab_Size         return Natural;
-   pragma Inline (Tab_Size);
-
-   function Number_Of_Colors return Natural;
-   pragma Inline (Number_Of_Colors);
-
-   function Number_Of_Color_Pairs return Natural;
-   pragma Inline (Number_Of_Color_Pairs);
-
-   subtype ACS_Index is Character range
+   --  In this binding we allow strings of attributed characters.
+
+   ------------------
+   --  Exceptions  --
+   ------------------
+   Curses_Exception     : exception;
+   Wrong_Curses_Version : exception;
+
+   --  Those exceptions are raised by the ETI (Extended Terminal Interface)
+   --  subpackets for Menu and Forms handling.
+   --
+   Eti_System_Error    : exception;
+   Eti_Bad_Argument    : exception;
+   Eti_Posted          : exception;
+   Eti_Connected       : exception;
+   Eti_Bad_State       : exception;
+   Eti_No_Room         : exception;
+   Eti_Not_Posted      : exception;
+   Eti_Unknown_Command : exception;
+   Eti_No_Match        : exception;
+   Eti_Not_Selectable  : exception;
+   Eti_Not_Connected   : exception;
+   Eti_Request_Denied  : exception;
+   Eti_Invalid_Field   : exception;
+   Eti_Current         : exception;
+
+   --------------------------------------------------------------------------
+   --  External C variables
+   --  Conceptually even in C this are kind of constants, but they are
+   --  initialized and sometimes changed by the library routines at runtime
+   --  depending on the type of terminal. I believe the best way to model
+   --  this is to use functions.
+   --------------------------------------------------------------------------
+
+   function Lines            return Line_Count;
+   pragma Inline (Lines);
+
+   function Columns          return Column_Count;
+   pragma Inline (Columns);
+
+   function Tab_Size         return Natural;
+   pragma Inline (Tab_Size);
+
+   function Number_Of_Colors return Natural;
+   pragma Inline (Number_Of_Colors);
+
+   function Number_Of_Color_Pairs return Natural;
+   pragma Inline (Number_Of_Color_Pairs);
+
+   subtype ACS_Index is Character range
      Character'Val (0) .. Character'Val (127);
-   function ACS_Map (Index : ACS_Index) return Attributed_Character;
+   function ACS_Map (Index : ACS_Index) return Attributed_Character;
    pragma Import (C, ACS_Map, "acs_map_as_function");
 
-   --  Constants for several characters from the Alternate Character Set
-   --  You must use these constants as indices into the ACS_Map function
-   --  to get the corresponding attributed character at runtime
-   ACS_Upper_Left_Corner  : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_ULCORNER);
-   ACS_Lower_Left_Corner  : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_LLCORNER);
-   ACS_Upper_Right_Corner : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_URCORNER);
-   ACS_Lower_Right_Corner : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_LRCORNER);
-   ACS_Left_Tee           : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_LTEE);
-   ACS_Right_Tee          : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_RTEE);
-   ACS_Bottom_Tee         : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_BTEE);
-   ACS_Top_Tee            : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_TTEE);
-   ACS_Horizontal_Line    : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_HLINE);
-   ACS_Vertical_Line      : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_VLINE);
-   ACS_Plus_Symbol        : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_PLUS);
-   ACS_Scan_Line_1        : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_S1);
-   ACS_Scan_Line_9        : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_S9);
-   ACS_Diamond            : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_DIAMOND);
-   ACS_Checker_Board      : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_CKBOARD);
-   ACS_Degree             : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_DEGREE);
-   ACS_Plus_Minus         : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_PLMINUS);
-   ACS_Bullet             : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_BULLET);
-   ACS_Left_Arrow         : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_LARROW);
-   ACS_Right_Arrow        : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_RARROW);
-   ACS_Down_Arrow         : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_DARROW);
-   ACS_Up_Arrow           : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_UARROW);
-   ACS_Board_Of_Squares   : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_BOARD);
-   ACS_Lantern            : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_LANTERN);
-   ACS_Solid_Block        : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_BLOCK);
-   ACS_Scan_Line_3        : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_S3);
-   ACS_Scan_Line_7        : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_S7);
-   ACS_Less_Or_Equal      : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_LEQUAL);
-   ACS_Greater_Or_Equal   : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_GEQUAL);
-   ACS_PI                 : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_PI);
-   ACS_Not_Equal          : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_NEQUAL);
-   ACS_Sterling           : constant ACS_Index
-      := Character'Val (Curses_Constants.ACS_STERLING);
-
-   --  |=====================================================================
-   --  | Man page curs_initscr.3x
-   --  |=====================================================================
-   --  | Not implemented: newterm, set_term, delscreen
-
-   --  |
-   function Standard_Window return Window;
-   --  AKA: stdscr
+   --  Constants for several characters from the Alternate Character Set
+   --  You must use these constants as indices into the ACS_Map function
+   --  to get the corresponding attributed character at runtime
+   ACS_Upper_Left_Corner  : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_ULCORNER);
+   ACS_Lower_Left_Corner  : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LLCORNER);
+   ACS_Upper_Right_Corner : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_URCORNER);
+   ACS_Lower_Right_Corner : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LRCORNER);
+   ACS_Left_Tee           : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LTEE);
+   ACS_Right_Tee          : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_RTEE);
+   ACS_Bottom_Tee         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BTEE);
+   ACS_Top_Tee            : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_TTEE);
+   ACS_Horizontal_Line    : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_HLINE);
+   ACS_Vertical_Line      : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_VLINE);
+   ACS_Plus_Symbol        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_PLUS);
+   ACS_Scan_Line_1        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S1);
+   ACS_Scan_Line_9        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S9);
+   ACS_Diamond            : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_DIAMOND);
+   ACS_Checker_Board      : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_CKBOARD);
+   ACS_Degree             : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_DEGREE);
+   ACS_Plus_Minus         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_PLMINUS);
+   ACS_Bullet             : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BULLET);
+   ACS_Left_Arrow         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LARROW);
+   ACS_Right_Arrow        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_RARROW);
+   ACS_Down_Arrow         : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_DARROW);
+   ACS_Up_Arrow           : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_UARROW);
+   ACS_Board_Of_Squares   : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BOARD);
+   ACS_Lantern            : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LANTERN);
+   ACS_Solid_Block        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_BLOCK);
+   ACS_Scan_Line_3        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S3);
+   ACS_Scan_Line_7        : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_S7);
+   ACS_Less_Or_Equal      : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_LEQUAL);
+   ACS_Greater_Or_Equal   : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_GEQUAL);
+   ACS_PI                 : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_PI);
+   ACS_Not_Equal          : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_NEQUAL);
+   ACS_Sterling           : constant ACS_Index
+      := Character'Val (Curses_Constants.ACS_STERLING);
+
+   --  |=====================================================================
+   --  | Man page curs_initscr.3x
+   --  |=====================================================================
+   --  | Not implemented: newterm, set_term, delscreen
+
+   --  |
+   function Standard_Window return Window;
+   --  AKA: stdscr
    pragma Import (C, Standard_Window, "stdscr_as_function");
-   pragma Inline (Standard_Window);
+   pragma Inline (Standard_Window);
 
-   --  |
-   function Current_Window return Window;
-   --  AKA: curscr
+   --  |
+   function Current_Window return Window;
+   --  AKA: curscr
    pragma Import (C, Current_Window, "curscr_as_function");
-   pragma Inline (Current_Window);
-
-   --  |
-   procedure Init_Screen;
-
-   --  |
-   procedure Init_Windows renames Init_Screen;
-   --  AKA: initscr()
-   pragma Inline (Init_Screen);
-   --  pragma Inline (Init_Windows);
-
-   --  |
-   procedure End_Windows;
-   --  AKA: endwin()
-   procedure End_Screen renames End_Windows;
-   pragma Inline (End_Windows);
-   --  pragma Inline (End_Screen);
-
-   --  |
-   function Is_End_Window return Boolean;
-   --  AKA: isendwin()
-   pragma Inline (Is_End_Window);
-
-   --  |=====================================================================
-   --  | Man page curs_move.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Move_Cursor (Win    : Window := Standard_Window;
-                          Line   : Line_Position;
-                          Column : Column_Position);
-   --  AKA: wmove()
-   --  AKA: move()
-   pragma Inline (Move_Cursor);
-
-   --  |=====================================================================
-   --  | Man page curs_addch.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Add (Win : Window := Standard_Window;
-                  Ch  : Attributed_Character);
-   --  AKA: waddch()
-   --  AKA: addch()
-
-   procedure Add (Win : Window := Standard_Window;
-                  Ch  : Character);
-   --  Add a single character at the current logical cursor position to
-   --  the window. Use the current windows attributes.
-
-   --  |
-   procedure Add
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Ch     : Attributed_Character);
-   --  AKA: mvwaddch()
-   --  AKA: mvaddch()
-
-   procedure Add
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position;
-      Ch     : Character);
-   --  Move to the position and add a single character into the window
-   --  There are more Add routines, so the Inline pragma follows later
-
-   --  |
-   procedure Add_With_Immediate_Echo
-     (Win : Window := Standard_Window;
-      Ch  : Attributed_Character);
-   --  AKA: wechochar()
-   --  AKA: echochar()
-
-   procedure Add_With_Immediate_Echo
-     (Win : Window := Standard_Window;
-      Ch  : Character);
-   --  Add a character and do an immediate refresh of the screen.
+   pragma Inline (Current_Window);
+
+   --  |
+   procedure Init_Screen;
+
+   --  |
+   procedure Init_Windows renames Init_Screen;
+   --  AKA: initscr()
+   pragma Inline (Init_Screen);
+   --  pragma Inline (Init_Windows);
+
+   --  |
+   procedure End_Windows;
+   --  AKA: endwin()
+   procedure End_Screen renames End_Windows;
+   pragma Inline (End_Windows);
+   --  pragma Inline (End_Screen);
+
+   --  |
+   function Is_End_Window return Boolean;
+   --  AKA: isendwin()
+   pragma Inline (Is_End_Window);
+
+   --  |=====================================================================
+   --  | Man page curs_move.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Move_Cursor (Win    : Window := Standard_Window;
+                          Line   : Line_Position;
+                          Column : Column_Position);
+   --  AKA: wmove()
+   --  AKA: move()
+   pragma Inline (Move_Cursor);
+
+   --  |=====================================================================
+   --  | Man page curs_addch.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Add (Win : Window := Standard_Window;
+                  Ch  : Attributed_Character);
+   --  AKA: waddch()
+   --  AKA: addch()
+
+   procedure Add (Win : Window := Standard_Window;
+                  Ch  : Character);
+   --  Add a single character at the current logical cursor position to
+   --  the window. Use the current windows attributes.
+
+   --  |
+   procedure Add
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Ch     : Attributed_Character);
+   --  AKA: mvwaddch()
+   --  AKA: mvaddch()
+
+   procedure Add
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position;
+      Ch     : Character);
+   --  Move to the position and add a single character into the window
+   --  There are more Add routines, so the Inline pragma follows later
+
+   --  |
+   procedure Add_With_Immediate_Echo
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character);
+   --  AKA: wechochar()
+   --  AKA: echochar()
+
+   procedure Add_With_Immediate_Echo
+     (Win : Window := Standard_Window;
+      Ch  : Character);
+   --  Add a character and do an immediate refresh of the screen.
    pragma Inline (Add_With_Immediate_Echo);
 
-   --  |=====================================================================
-   --  | Man page curs_window.3x
-   --  |=====================================================================
-   --  Not Implemented: wcursyncup
-
-   --  |
-   function Create
-     (Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window;
-   --  Not Implemented: Default Number_Of_Lines, Number_Of_Columns
-   --  the C version lets them be 0, see the man page.
-   --  AKA: newwin()
-   pragma Inline (Create);
+   --  |=====================================================================
+   --  | Man page curs_window.3x
+   --  |=====================================================================
+   --  Not Implemented: wcursyncup
+
+   --  |
+   function Create
+     (Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window;
+   --  Not Implemented: Default Number_Of_Lines, Number_Of_Columns
+   --  the C version lets them be 0, see the man page.
+   --  AKA: newwin()
+   pragma Inline (Create);
 
    function New_Window
-     (Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window
-     renames Create;
-   --  pragma Inline (New_Window);
-
-   --  |
-   procedure Delete (Win : in out Window);
-   --  AKA: delwin()
-   --  Reset Win to Null_Window
-   pragma Inline (Delete);
-
-   --  |
-   function Sub_Window
-     (Win                   : Window := Standard_Window;
-      Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window;
-   --  AKA: subwin()
-   pragma Inline (Sub_Window);
-
-   --  |
-   function Derived_Window
-     (Win                   : Window := Standard_Window;
-      Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window;
-   --  AKA: derwin()
-   pragma Inline (Derived_Window);
-
-   --  |
-   function Duplicate (Win : Window) return Window;
-   --  AKA: dupwin()
-   pragma Inline (Duplicate);
-
-   --  |
-   procedure Move_Window (Win    : Window;
-                          Line   : Line_Position;
-                          Column : Column_Position);
-   --  AKA: mvwin()
-   pragma Inline (Move_Window);
-
-   --  |
-   procedure Move_Derived_Window (Win    : Window;
-                                  Line   : Line_Position;
-                                  Column : Column_Position);
-   --  AKA: mvderwin()
-   pragma Inline (Move_Derived_Window);
-
-   --  |
-   procedure Synchronize_Upwards (Win : Window);
-   --  AKA: wsyncup()
+     (Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window
+     renames Create;
+   --  pragma Inline (New_Window);
+
+   --  |
+   procedure Delete (Win : in out Window);
+   --  AKA: delwin()
+   --  Reset Win to Null_Window
+   pragma Inline (Delete);
+
+   --  |
+   function Sub_Window
+     (Win                   : Window := Standard_Window;
+      Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window;
+   --  AKA: subwin()
+   pragma Inline (Sub_Window);
+
+   --  |
+   function Derived_Window
+     (Win                   : Window := Standard_Window;
+      Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window;
+   --  AKA: derwin()
+   pragma Inline (Derived_Window);
+
+   --  |
+   function Duplicate (Win : Window) return Window;
+   --  AKA: dupwin()
+   pragma Inline (Duplicate);
+
+   --  |
+   procedure Move_Window (Win    : Window;
+                          Line   : Line_Position;
+                          Column : Column_Position);
+   --  AKA: mvwin()
+   pragma Inline (Move_Window);
+
+   --  |
+   procedure Move_Derived_Window (Win    : Window;
+                                  Line   : Line_Position;
+                                  Column : Column_Position);
+   --  AKA: mvderwin()
+   pragma Inline (Move_Derived_Window);
+
+   --  |
+   procedure Synchronize_Upwards (Win : Window);
+   --  AKA: wsyncup()
    pragma Import (C, Synchronize_Upwards, "wsyncup");
 
-   --  |
-   procedure Synchronize_Downwards (Win : Window);
-   --  AKA: wsyncdown()
+   --  |
+   procedure Synchronize_Downwards (Win : Window);
+   --  AKA: wsyncdown()
    pragma Import (C, Synchronize_Downwards, "wsyncdown");
 
-   --  |
-   procedure Set_Synch_Mode (Win  : Window := Standard_Window;
-                             Mode : Boolean := False);
-   --  AKA: syncok()
-   pragma Inline (Set_Synch_Mode);
-
-   --  |=====================================================================
-   --  | Man page curs_addstr.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Add (Win : Window := Standard_Window;
-                  Str : String;
-                  Len : Integer := -1);
-   --  AKA: waddnstr()
-   --  AKA: waddstr()
-   --  AKA: addnstr()
-   --  AKA: addstr()
-
-   --  |
-   procedure Add (Win    : Window := Standard_Window;
-                  Line   : Line_Position;
-                  Column : Column_Position;
-                  Str    : String;
-                  Len    : Integer := -1);
-   --  AKA: mvwaddnstr()
-   --  AKA: mvwaddstr()
-   --  AKA: mvaddnstr()
-   --  AKA: mvaddstr()
-
-   --  |=====================================================================
-   --  | Man page curs_addchstr.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Add (Win : Window := Standard_Window;
-                  Str : Attributed_String;
-                  Len : Integer := -1);
-   --  AKA: waddchnstr()
-   --  AKA: waddchstr()
-   --  AKA: addchnstr()
-   --  AKA: addchstr()
-
-   --  |
-   procedure Add (Win    : Window := Standard_Window;
-                  Line   : Line_Position;
-                  Column : Column_Position;
-                  Str    : Attributed_String;
-                  Len    : Integer := -1);
-   --  AKA: mvwaddchnstr()
-   --  AKA: mvwaddchstr()
-   --  AKA: mvaddchnstr()
-   --  AKA: mvaddchstr()
+   --  |
+   procedure Set_Synch_Mode (Win  : Window := Standard_Window;
+                             Mode : Boolean := False);
+   --  AKA: syncok()
+   pragma Inline (Set_Synch_Mode);
+
+   --  |=====================================================================
+   --  | Man page curs_addstr.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Add (Win : Window := Standard_Window;
+                  Str : String;
+                  Len : Integer := -1);
+   --  AKA: waddnstr()
+   --  AKA: waddstr()
+   --  AKA: addnstr()
+   --  AKA: addstr()
+
+   --  |
+   procedure Add (Win    : Window := Standard_Window;
+                  Line   : Line_Position;
+                  Column : Column_Position;
+                  Str    : String;
+                  Len    : Integer := -1);
+   --  AKA: mvwaddnstr()
+   --  AKA: mvwaddstr()
+   --  AKA: mvaddnstr()
+   --  AKA: mvaddstr()
+
+   --  |=====================================================================
+   --  | Man page curs_addchstr.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Add (Win : Window := Standard_Window;
+                  Str : Attributed_String;
+                  Len : Integer := -1);
+   --  AKA: waddchnstr()
+   --  AKA: waddchstr()
+   --  AKA: addchnstr()
+   --  AKA: addchstr()
+
+   --  |
+   procedure Add (Win    : Window := Standard_Window;
+                  Line   : Line_Position;
+                  Column : Column_Position;
+                  Str    : Attributed_String;
+                  Len    : Integer := -1);
+   --  AKA: mvwaddchnstr()
+   --  AKA: mvwaddchstr()
+   --  AKA: mvaddchnstr()
+   --  AKA: mvaddchstr()
    pragma Inline (Add);
 
-   --  |=====================================================================
-   --  | Man page curs_border.3x
-   --  |=====================================================================
-   --  | Not implemented: mvhline,  mvwhline, mvvline, mvwvline
-   --  | use Move_Cursor then Horizontal_Line or Vertical_Line
-
-   --  |
-   procedure Border
-     (Win                       : Window := Standard_Window;
-      Left_Side_Symbol          : Attributed_Character := Default_Character;
-      Right_Side_Symbol         : Attributed_Character := Default_Character;
-      Top_Side_Symbol           : Attributed_Character := Default_Character;
-      Bottom_Side_Symbol        : Attributed_Character := Default_Character;
-      Upper_Left_Corner_Symbol  : Attributed_Character := Default_Character;
-      Upper_Right_Corner_Symbol : Attributed_Character := Default_Character;
-      Lower_Left_Corner_Symbol  : Attributed_Character := Default_Character;
-      Lower_Right_Corner_Symbol : Attributed_Character := Default_Character
+   --  |=====================================================================
+   --  | Man page curs_border.3x
+   --  |=====================================================================
+   --  | Not implemented: mvhline,  mvwhline, mvvline, mvwvline
+   --  | use Move_Cursor then Horizontal_Line or Vertical_Line
+
+   --  |
+   procedure Border
+     (Win                       : Window := Standard_Window;
+      Left_Side_Symbol          : Attributed_Character := Default_Character;
+      Right_Side_Symbol         : Attributed_Character := Default_Character;
+      Top_Side_Symbol           : Attributed_Character := Default_Character;
+      Bottom_Side_Symbol        : Attributed_Character := Default_Character;
+      Upper_Left_Corner_Symbol  : Attributed_Character := Default_Character;
+      Upper_Right_Corner_Symbol : Attributed_Character := Default_Character;
+      Lower_Left_Corner_Symbol  : Attributed_Character := Default_Character;
+      Lower_Right_Corner_Symbol : Attributed_Character := Default_Character
      );
-   --  AKA: wborder()
-   --  AKA: border()
-   pragma Inline (Border);
-
-   --  |
-   procedure Box
-     (Win               : Window := Standard_Window;
-      Vertical_Symbol   : Attributed_Character := Default_Character;
-      Horizontal_Symbol : Attributed_Character := Default_Character);
-   --  AKA: box()
-   pragma Inline (Box);
-
-   --  |
-   procedure Horizontal_Line
-     (Win         : Window := Standard_Window;
-      Line_Size   : Natural;
-      Line_Symbol : Attributed_Character := Default_Character);
-   --  AKA: whline()
-   --  AKA: hline()
-   pragma Inline (Horizontal_Line);
-
-   --  |
-   procedure Vertical_Line
-     (Win         : Window := Standard_Window;
-      Line_Size   : Natural;
-      Line_Symbol : Attributed_Character := Default_Character);
-   --  AKA: wvline()
-   --  AKA: vline()
-   pragma Inline (Vertical_Line);
-
-   --  |=====================================================================
-   --  | Man page curs_getch.3x
-   --  |=====================================================================
-   --  Not implemented: mvgetch, mvwgetch
-
-   --  |
-   function Get_Keystroke (Win : Window := Standard_Window)
-                           return Real_Key_Code;
-   --  AKA: wgetch()
-   --  AKA: getch()
-   --  Get a character from the keyboard and echo it - if enabled - to the
-   --  window.
-   --  If for any reason (i.e. a timeout) we could not get a character the
-   --  returned keycode is Key_None.
-   pragma Inline (Get_Keystroke);
-
-   --  |
-   procedure Undo_Keystroke (Key : Real_Key_Code);
-   --  AKA: ungetch()
-   pragma Inline (Undo_Keystroke);
-
-   --  |
-   function Has_Key (Key : Special_Key_Code) return Boolean;
-   --  AKA: has_key()
-   pragma Inline (Has_Key);
-
-   --  |
-   --  | Some helper functions
-   --  |
-   function Is_Function_Key (Key : Special_Key_Code) return Boolean;
-   --  Return True if the Key is a function key (i.e. one of F0 .. F63)
-   pragma Inline (Is_Function_Key);
-
-   subtype Function_Key_Number is Integer range 0 .. 63;
-   --  (n)curses allows for 64 function keys.
-
-   function Function_Key (Key : Real_Key_Code) return Function_Key_Number;
-   --  Return the number of the function key. If the code is not a
-   --  function key, a CONSTRAINT_ERROR will be raised.
-   pragma Inline (Function_Key);
-
-   function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code;
-   --  Return the key code for a given function-key number.
-   pragma Inline (Function_Key_Code);
-
-   --  |=====================================================================
-   --  | Man page curs_attr.3x
-   --  |=====================================================================
-   --  | Not implemented attr_off,  wattr_off,
-   --  |  attr_on, wattr_on, attr_set, wattr_set
-
-   --  PAIR_NUMBER
-   --  PAIR_NUMBER(c) is the same as c.Color
-
-   --  |
-   procedure Standout (Win : Window  := Standard_Window;
-                       On  : Boolean := True);
-   --  AKA: wstandout()
-   --  AKA: wstandend()
-
-   --  |
-   procedure Switch_Character_Attribute
-     (Win  : Window := Standard_Window;
-      Attr : Character_Attribute_Set := Normal_Video;
-      On   : Boolean := True); --  if False we switch Off.
-   --  Switches those Attributes set to true in the list.
-   --  AKA: wattron()
-   --  AKA: wattroff()
-   --  AKA: attron()
-   --  AKA: attroff()
-
-   --  |
-   procedure Set_Character_Attributes
-     (Win   : Window := Standard_Window;
-      Attr  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: wattrset()
-   --  AKA: attrset()
-   pragma Inline (Set_Character_Attributes);
-
-   --  |
-   function Get_Character_Attribute
-     (Win : Window := Standard_Window) return Character_Attribute_Set;
-   --  AKA: wattr_get()
-   --  AKA: attr_get()
-
-   --  |
-   function Get_Character_Attribute
-     (Win : Window := Standard_Window) return Color_Pair;
-   --  AKA: wattr_get()
+   --  AKA: wborder()
+   --  AKA: border()
+   pragma Inline (Border);
+
+   --  |
+   procedure Box
+     (Win               : Window := Standard_Window;
+      Vertical_Symbol   : Attributed_Character := Default_Character;
+      Horizontal_Symbol : Attributed_Character := Default_Character);
+   --  AKA: box()
+   pragma Inline (Box);
+
+   --  |
+   procedure Horizontal_Line
+     (Win         : Window := Standard_Window;
+      Line_Size   : Natural;
+      Line_Symbol : Attributed_Character := Default_Character);
+   --  AKA: whline()
+   --  AKA: hline()
+   pragma Inline (Horizontal_Line);
+
+   --  |
+   procedure Vertical_Line
+     (Win         : Window := Standard_Window;
+      Line_Size   : Natural;
+      Line_Symbol : Attributed_Character := Default_Character);
+   --  AKA: wvline()
+   --  AKA: vline()
+   pragma Inline (Vertical_Line);
+
+   --  |=====================================================================
+   --  | Man page curs_getch.3x
+   --  |=====================================================================
+   --  Not implemented: mvgetch, mvwgetch
+
+   --  |
+   function Get_Keystroke (Win : Window := Standard_Window)
+                           return Real_Key_Code;
+   --  AKA: wgetch()
+   --  AKA: getch()
+   --  Get a character from the keyboard and echo it - if enabled - to the
+   --  window.
+   --  If for any reason (i.e. a timeout) we could not get a character the
+   --  returned keycode is Key_None.
+   pragma Inline (Get_Keystroke);
+
+   --  |
+   procedure Undo_Keystroke (Key : Real_Key_Code);
+   --  AKA: ungetch()
+   pragma Inline (Undo_Keystroke);
+
+   --  |
+   function Has_Key (Key : Special_Key_Code) return Boolean;
+   --  AKA: has_key()
+   pragma Inline (Has_Key);
+
+   --  |
+   --  | Some helper functions
+   --  |
+   function Is_Function_Key (Key : Special_Key_Code) return Boolean;
+   --  Return True if the Key is a function key (i.e. one of F0 .. F63)
+   pragma Inline (Is_Function_Key);
+
+   subtype Function_Key_Number is Integer range 0 .. 63;
+   --  (n)curses allows for 64 function keys.
+
+   function Function_Key (Key : Real_Key_Code) return Function_Key_Number;
+   --  Return the number of the function key. If the code is not a
+   --  function key, a CONSTRAINT_ERROR will be raised.
+   pragma Inline (Function_Key);
+
+   function Function_Key_Code (Key : Function_Key_Number) return Real_Key_Code;
+   --  Return the key code for a given function-key number.
+   pragma Inline (Function_Key_Code);
+
+   --  |=====================================================================
+   --  | Man page curs_attr.3x
+   --  |=====================================================================
+   --  | Not implemented attr_off,  wattr_off,
+   --  |  attr_on, wattr_on, attr_set, wattr_set
+
+   --  PAIR_NUMBER
+   --  PAIR_NUMBER(c) is the same as c.Color
+
+   --  |
+   procedure Standout (Win : Window  := Standard_Window;
+                       On  : Boolean := True);
+   --  AKA: wstandout()
+   --  AKA: wstandend()
+
+   --  |
+   procedure Switch_Character_Attribute
+     (Win  : Window := Standard_Window;
+      Attr : Character_Attribute_Set := Normal_Video;
+      On   : Boolean := True); --  if False we switch Off.
+   --  Switches those Attributes set to true in the list.
+   --  AKA: wattron()
+   --  AKA: wattroff()
+   --  AKA: attron()
+   --  AKA: attroff()
+
+   --  |
+   procedure Set_Character_Attributes
+     (Win   : Window := Standard_Window;
+      Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: wattrset()
+   --  AKA: attrset()
+   pragma Inline (Set_Character_Attributes);
+
+   --  |
+   function Get_Character_Attribute
+     (Win : Window := Standard_Window) return Character_Attribute_Set;
+   --  AKA: wattr_get()
+   --  AKA: attr_get()
+
+   --  |
+   function Get_Character_Attribute
+     (Win : Window := Standard_Window) return Color_Pair;
+   --  AKA: wattr_get()
    pragma Inline (Get_Character_Attribute);
 
-   --  |
-   procedure Set_Color (Win  : Window := Standard_Window;
-                        Pair : Color_Pair);
-   --  AKA: wcolor_set()
-   --  AKA: color_set()
-   pragma Inline (Set_Color);
-
-   --  |
-   procedure Change_Attributes
-     (Win   : Window := Standard_Window;
-      Count : Integer := -1;
-      Attr  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: wchgat()
-   --  AKA: chgat()
-
-   --  |
-   procedure Change_Attributes
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position := Line_Position'First;
-      Column : Column_Position := Column_Position'First;
-      Count  : Integer := -1;
-      Attr   : Character_Attribute_Set := Normal_Video;
-      Color  : Color_Pair := Color_Pair'First);
-   --  AKA: mvwchgat()
-   --  AKA: mvchgat()
+   --  |
+   procedure Set_Color (Win  : Window := Standard_Window;
+                        Pair : Color_Pair);
+   --  AKA: wcolor_set()
+   --  AKA: color_set()
+   pragma Inline (Set_Color);
+
+   --  |
+   procedure Change_Attributes
+     (Win   : Window := Standard_Window;
+      Count : Integer := -1;
+      Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: wchgat()
+   --  AKA: chgat()
+
+   --  |
+   procedure Change_Attributes
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position := Line_Position'First;
+      Column : Column_Position := Column_Position'First;
+      Count  : Integer := -1;
+      Attr   : Character_Attribute_Set := Normal_Video;
+      Color  : Color_Pair := Color_Pair'First);
+   --  AKA: mvwchgat()
+   --  AKA: mvchgat()
    pragma Inline (Change_Attributes);
 
-   --  |=====================================================================
-   --  | Man page curs_beep.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Beep;
-   --  AKA: beep()
-   pragma Inline (Beep);
-
-   --  |
-   procedure Flash_Screen;
-   --  AKA: flash()
-   pragma Inline (Flash_Screen);
-
-   --  |=====================================================================
-   --  | Man page curs_inopts.3x
-   --  |=====================================================================
-
-   --  | Not implemented : typeahead
-   --
-   --  |
-   procedure Set_Cbreak_Mode (SwitchOn : Boolean := True);
-   --  AKA: cbreak()
-   --  AKA: nocbreak()
-   pragma Inline (Set_Cbreak_Mode);
-
-   --  |
-   procedure Set_Raw_Mode (SwitchOn : Boolean := True);
-   --  AKA: raw()
-   --  AKA: noraw()
-   pragma Inline (Set_Raw_Mode);
-
-   --  |
-   procedure Set_Echo_Mode (SwitchOn : Boolean := True);
-   --  AKA: echo()
-   --  AKA: noecho()
-   pragma Inline (Set_Echo_Mode);
-
-   --  |
-   procedure Set_Meta_Mode (Win      : Window := Standard_Window;
-                            SwitchOn : Boolean := True);
-   --  AKA: meta()
-   pragma Inline (Set_Meta_Mode);
-
-   --  |
-   procedure Set_KeyPad_Mode (Win      : Window := Standard_Window;
-                              SwitchOn : Boolean := True);
-   --  AKA: keypad()
-   pragma Inline (Set_KeyPad_Mode);
-
-   function Get_KeyPad_Mode (Win : Window := Standard_Window)
+   --  |=====================================================================
+   --  | Man page curs_beep.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Beep;
+   --  AKA: beep()
+   pragma Inline (Beep);
+
+   --  |
+   procedure Flash_Screen;
+   --  AKA: flash()
+   pragma Inline (Flash_Screen);
+
+   --  |=====================================================================
+   --  | Man page curs_inopts.3x
+   --  |=====================================================================
+
+   --  | Not implemented : typeahead
+   --
+   --  |
+   procedure Set_Cbreak_Mode (SwitchOn : Boolean := True);
+   --  AKA: cbreak()
+   --  AKA: nocbreak()
+   pragma Inline (Set_Cbreak_Mode);
+
+   --  |
+   procedure Set_Raw_Mode (SwitchOn : Boolean := True);
+   --  AKA: raw()
+   --  AKA: noraw()
+   pragma Inline (Set_Raw_Mode);
+
+   --  |
+   procedure Set_Echo_Mode (SwitchOn : Boolean := True);
+   --  AKA: echo()
+   --  AKA: noecho()
+   pragma Inline (Set_Echo_Mode);
+
+   --  |
+   procedure Set_Meta_Mode (Win      : Window := Standard_Window;
+                            SwitchOn : Boolean := True);
+   --  AKA: meta()
+   pragma Inline (Set_Meta_Mode);
+
+   --  |
+   procedure Set_KeyPad_Mode (Win      : Window := Standard_Window;
+                              SwitchOn : Boolean := True);
+   --  AKA: keypad()
+   pragma Inline (Set_KeyPad_Mode);
+
+   function Get_KeyPad_Mode (Win : Window := Standard_Window)
                              return Boolean;
-   --  This has no pendant in C. There you've to look into the WINDOWS
-   --  structure to get the value. Bad practice, not repeated in Ada.
-
-   type Half_Delay_Amount is range 1 .. 255;
-
-   --  |
-   procedure Half_Delay (Amount : Half_Delay_Amount);
-   --  AKA: halfdelay()
-   pragma Inline (Half_Delay);
-
-   --  |
-   procedure Set_Flush_On_Interrupt_Mode
-     (Win  : Window := Standard_Window;
-      Mode : Boolean := True);
-   --  AKA: intrflush()
-   pragma Inline (Set_Flush_On_Interrupt_Mode);
-
-   --  |
-   procedure Set_Queue_Interrupt_Mode
-     (Win   : Window := Standard_Window;
-      Flush : Boolean := True);
-   --  AKA: qiflush()
-   --  AKA: noqiflush()
-   pragma Inline (Set_Queue_Interrupt_Mode);
-
-   --  |
-   procedure Set_NoDelay_Mode
-     (Win  : Window := Standard_Window;
-      Mode : Boolean := False);
-   --  AKA: nodelay()
-   pragma Inline (Set_NoDelay_Mode);
-
-   type Timeout_Mode is (Blocking, Non_Blocking, Delayed);
-
-   --  |
-   procedure Set_Timeout_Mode (Win    : Window := Standard_Window;
-                               Mode   : Timeout_Mode;
-                               Amount : Natural); --  in Milliseconds
-   --  AKA: wtimeout()
-   --  AKA: timeout()
-   --  Instead of overloading the semantic of the sign of amount, we
-   --  introduce the Timeout_Mode parameter. This should improve
-   --  readability. For Blocking and Non_Blocking, the Amount is not
-   --  evaluated.
-   --  We do not inline this procedure.
-
-   --  |
-   procedure Set_Escape_Timer_Mode
-     (Win       : Window := Standard_Window;
-      Timer_Off : Boolean := False);
-   --  AKA: notimeout()
-   pragma Inline (Set_Escape_Timer_Mode);
-
-   --  |=====================================================================
-   --  | Man page curs_outopts.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Set_NL_Mode (SwitchOn : Boolean := True);
-   --  AKA: nl()
-   --  AKA: nonl()
-   pragma Inline (Set_NL_Mode);
-
-   --  |
-   procedure Clear_On_Next_Update
-     (Win      : Window := Standard_Window;
-      Do_Clear : Boolean := True);
-   --  AKA: clearok()
-   pragma Inline (Clear_On_Next_Update);
-
-   --  |
-   procedure Use_Insert_Delete_Line
-     (Win    : Window := Standard_Window;
-      Do_Idl : Boolean := True);
-   --  AKA: idlok()
-   pragma Inline (Use_Insert_Delete_Line);
-
-   --  |
-   procedure Use_Insert_Delete_Character
-     (Win    : Window := Standard_Window;
-      Do_Idc : Boolean := True);
-   --  AKA: idcok()
-   pragma Inline (Use_Insert_Delete_Character);
-
-   --  |
-   procedure Leave_Cursor_After_Update
-     (Win      : Window := Standard_Window;
-      Do_Leave : Boolean := True);
-   --  AKA: leaveok()
-   pragma Inline (Leave_Cursor_After_Update);
-
-   --  |
-   procedure Immediate_Update_Mode
-     (Win  : Window := Standard_Window;
-      Mode : Boolean := False);
-   --  AKA: immedok()
-   pragma Inline (Immediate_Update_Mode);
-
-   --  |
-   procedure Allow_Scrolling
-     (Win  : Window := Standard_Window;
-      Mode : Boolean := False);
-   --  AKA: scrollok()
-   pragma Inline (Allow_Scrolling);
-
-   function Scrolling_Allowed (Win : Window := Standard_Window) return Boolean;
-   --  There is no such function in the C interface.
-   pragma Inline (Scrolling_Allowed);
-
-   --  |
-   procedure Set_Scroll_Region
-     (Win         : Window := Standard_Window;
-      Top_Line    : Line_Position;
-      Bottom_Line : Line_Position);
-   --  AKA: wsetscrreg()
-   --  AKA: setscrreg()
-   pragma Inline (Set_Scroll_Region);
-
-   --  |=====================================================================
-   --  | Man page curs_refresh.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Update_Screen;
-   --  AKA: doupdate()
-   pragma Inline (Update_Screen);
-
-   --  |
-   procedure Refresh (Win : Window := Standard_Window);
-   --  AKA: wrefresh()
-   --  There is an overloaded Refresh for Pads.
-   --  The Inline pragma appears there
-   --  AKA: refresh()
-
-   --  |
-   procedure Refresh_Without_Update
-     (Win : Window := Standard_Window);
-   --  AKA: wnoutrefresh()
-   --  There is an overloaded Refresh_Without_Update for Pads.
-   --  The Inline pragma appears there
-
-   --  |
-   procedure Redraw (Win : Window := Standard_Window);
-   --  AKA: redrawwin()
-
-   --  |
-   procedure Redraw (Win        : Window := Standard_Window;
-                     Begin_Line : Line_Position;
-                     Line_Count : Positive);
-   --  AKA: wredrawln()
+   --  This has no pendant in C. There you've to look into the WINDOWS
+   --  structure to get the value. Bad practice, not repeated in Ada.
+
+   type Half_Delay_Amount is range 1 .. 255;
+
+   --  |
+   procedure Half_Delay (Amount : Half_Delay_Amount);
+   --  AKA: halfdelay()
+   pragma Inline (Half_Delay);
+
+   --  |
+   procedure Set_Flush_On_Interrupt_Mode
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := True);
+   --  AKA: intrflush()
+   pragma Inline (Set_Flush_On_Interrupt_Mode);
+
+   --  |
+   procedure Set_Queue_Interrupt_Mode
+     (Win   : Window := Standard_Window;
+      Flush : Boolean := True);
+   --  AKA: qiflush()
+   --  AKA: noqiflush()
+   pragma Inline (Set_Queue_Interrupt_Mode);
+
+   --  |
+   procedure Set_NoDelay_Mode
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False);
+   --  AKA: nodelay()
+   pragma Inline (Set_NoDelay_Mode);
+
+   type Timeout_Mode is (Blocking, Non_Blocking, Delayed);
+
+   --  |
+   procedure Set_Timeout_Mode (Win    : Window := Standard_Window;
+                               Mode   : Timeout_Mode;
+                               Amount : Natural); --  in Milliseconds
+   --  AKA: wtimeout()
+   --  AKA: timeout()
+   --  Instead of overloading the semantic of the sign of amount, we
+   --  introduce the Timeout_Mode parameter. This should improve
+   --  readability. For Blocking and Non_Blocking, the Amount is not
+   --  evaluated.
+   --  We do not inline this procedure.
+
+   --  |
+   procedure Set_Escape_Timer_Mode
+     (Win       : Window := Standard_Window;
+      Timer_Off : Boolean := False);
+   --  AKA: notimeout()
+   pragma Inline (Set_Escape_Timer_Mode);
+
+   --  |=====================================================================
+   --  | Man page curs_outopts.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Set_NL_Mode (SwitchOn : Boolean := True);
+   --  AKA: nl()
+   --  AKA: nonl()
+   pragma Inline (Set_NL_Mode);
+
+   --  |
+   procedure Clear_On_Next_Update
+     (Win      : Window := Standard_Window;
+      Do_Clear : Boolean := True);
+   --  AKA: clearok()
+   pragma Inline (Clear_On_Next_Update);
+
+   --  |
+   procedure Use_Insert_Delete_Line
+     (Win    : Window := Standard_Window;
+      Do_Idl : Boolean := True);
+   --  AKA: idlok()
+   pragma Inline (Use_Insert_Delete_Line);
+
+   --  |
+   procedure Use_Insert_Delete_Character
+     (Win    : Window := Standard_Window;
+      Do_Idc : Boolean := True);
+   --  AKA: idcok()
+   pragma Inline (Use_Insert_Delete_Character);
+
+   --  |
+   procedure Leave_Cursor_After_Update
+     (Win      : Window := Standard_Window;
+      Do_Leave : Boolean := True);
+   --  AKA: leaveok()
+   pragma Inline (Leave_Cursor_After_Update);
+
+   --  |
+   procedure Immediate_Update_Mode
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False);
+   --  AKA: immedok()
+   pragma Inline (Immediate_Update_Mode);
+
+   --  |
+   procedure Allow_Scrolling
+     (Win  : Window := Standard_Window;
+      Mode : Boolean := False);
+   --  AKA: scrollok()
+   pragma Inline (Allow_Scrolling);
+
+   function Scrolling_Allowed (Win : Window := Standard_Window) return Boolean;
+   --  There is no such function in the C interface.
+   pragma Inline (Scrolling_Allowed);
+
+   --  |
+   procedure Set_Scroll_Region
+     (Win         : Window := Standard_Window;
+      Top_Line    : Line_Position;
+      Bottom_Line : Line_Position);
+   --  AKA: wsetscrreg()
+   --  AKA: setscrreg()
+   pragma Inline (Set_Scroll_Region);
+
+   --  |=====================================================================
+   --  | Man page curs_refresh.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Update_Screen;
+   --  AKA: doupdate()
+   pragma Inline (Update_Screen);
+
+   --  |
+   procedure Refresh (Win : Window := Standard_Window);
+   --  AKA: wrefresh()
+   --  There is an overloaded Refresh for Pads.
+   --  The Inline pragma appears there
+   --  AKA: refresh()
+
+   --  |
+   procedure Refresh_Without_Update
+     (Win : Window := Standard_Window);
+   --  AKA: wnoutrefresh()
+   --  There is an overloaded Refresh_Without_Update for Pads.
+   --  The Inline pragma appears there
+
+   --  |
+   procedure Redraw (Win : Window := Standard_Window);
+   --  AKA: redrawwin()
+
+   --  |
+   procedure Redraw (Win        : Window := Standard_Window;
+                     Begin_Line : Line_Position;
+                     Line_Count : Positive);
+   --  AKA: wredrawln()
    pragma Inline (Redraw);
 
-   --  |=====================================================================
-   --  | Man page curs_clear.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Erase (Win : Window := Standard_Window);
-   --  AKA: werase()
-   --  AKA: erase()
-   pragma Inline (Erase);
-
-   --  |
-   procedure Clear
-     (Win : Window := Standard_Window);
-   --  AKA: wclear()
-   --  AKA: clear()
-   pragma Inline (Clear);
-
-   --  |
-   procedure Clear_To_End_Of_Screen
-     (Win : Window := Standard_Window);
-   --  AKA: wclrtobot()
-   --  AKA: clrtobot()
-   pragma Inline (Clear_To_End_Of_Screen);
-
-   --  |
-   procedure Clear_To_End_Of_Line
-     (Win : Window := Standard_Window);
-   --  AKA: wclrtoeol()
-   --  AKA: clrtoeol()
-   pragma Inline (Clear_To_End_Of_Line);
-
-   --  |=====================================================================
-   --  | Man page curs_bkgd.3x
-   --  |=====================================================================
-
-   --  |
-   --  TODO: we could have Set_Background(Window; Character_Attribute_Set)
-   --  because in C it is common to see bkgdset(A_BOLD) or
-   --  bkgdset(COLOR_PAIR(n))
-   procedure Set_Background
-     (Win : Window := Standard_Window;
-      Ch  : Attributed_Character);
-   --  AKA: wbkgdset()
-   --  AKA: bkgdset()
-   pragma Inline (Set_Background);
-
-   --  |
-   procedure Change_Background
-     (Win : Window := Standard_Window;
-      Ch  : Attributed_Character);
-   --  AKA: wbkgd()
-   --  AKA: bkgd()
-   pragma Inline (Change_Background);
-
-   --  |
-   --  ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.
-   function Get_Background (Win : Window := Standard_Window)
-     return Attributed_Character;
-   --  AKA: wbkgdget()
-   --  AKA: bkgdget()
-   pragma Inline (Get_Background);
-
-   --  |=====================================================================
-   --  | Man page curs_touch.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Untouch (Win : Window := Standard_Window);
-   --  AKA: untouchwin()
-   pragma Inline (Untouch);
-
-   --  |
-   procedure Touch (Win : Window := Standard_Window);
-   --  AKA: touchwin()
-
-   --  |
-   procedure Touch (Win   : Window := Standard_Window;
-                    Start : Line_Position;
-                    Count : Positive);
-   --  AKA: touchline()
+   --  |=====================================================================
+   --  | Man page curs_clear.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Erase (Win : Window := Standard_Window);
+   --  AKA: werase()
+   --  AKA: erase()
+   pragma Inline (Erase);
+
+   --  |
+   procedure Clear
+     (Win : Window := Standard_Window);
+   --  AKA: wclear()
+   --  AKA: clear()
+   pragma Inline (Clear);
+
+   --  |
+   procedure Clear_To_End_Of_Screen
+     (Win : Window := Standard_Window);
+   --  AKA: wclrtobot()
+   --  AKA: clrtobot()
+   pragma Inline (Clear_To_End_Of_Screen);
+
+   --  |
+   procedure Clear_To_End_Of_Line
+     (Win : Window := Standard_Window);
+   --  AKA: wclrtoeol()
+   --  AKA: clrtoeol()
+   pragma Inline (Clear_To_End_Of_Line);
+
+   --  |=====================================================================
+   --  | Man page curs_bkgd.3x
+   --  |=====================================================================
+
+   --  |
+   --  TODO: we could have Set_Background(Window; Character_Attribute_Set)
+   --  because in C it is common to see bkgdset(A_BOLD) or
+   --  bkgdset(COLOR_PAIR(n))
+   procedure Set_Background
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character);
+   --  AKA: wbkgdset()
+   --  AKA: bkgdset()
+   pragma Inline (Set_Background);
+
+   --  |
+   procedure Change_Background
+     (Win : Window := Standard_Window;
+      Ch  : Attributed_Character);
+   --  AKA: wbkgd()
+   --  AKA: bkgd()
+   pragma Inline (Change_Background);
+
+   --  |
+   --  ? wbkgdget is not listed in curs_bkgd, getbkgd is thpough.
+   function Get_Background (Win : Window := Standard_Window)
+     return Attributed_Character;
+   --  AKA: wbkgdget()
+   --  AKA: bkgdget()
+   pragma Inline (Get_Background);
+
+   --  |=====================================================================
+   --  | Man page curs_touch.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Untouch (Win : Window := Standard_Window);
+   --  AKA: untouchwin()
+   pragma Inline (Untouch);
+
+   --  |
+   procedure Touch (Win : Window := Standard_Window);
+   --  AKA: touchwin()
+
+   --  |
+   procedure Touch (Win   : Window := Standard_Window;
+                    Start : Line_Position;
+                    Count : Positive);
+   --  AKA: touchline()
    pragma Inline (Touch);
 
-   --  |
-   procedure Change_Lines_Status (Win   : Window := Standard_Window;
-                                  Start : Line_Position;
-                                  Count : Positive;
-                                  State : Boolean);
-   --  AKA: wtouchln()
-   pragma Inline (Change_Lines_Status);
-
-   --  |
-   function Is_Touched (Win  : Window := Standard_Window;
-                        Line : Line_Position) return Boolean;
-   --  AKA: is_linetouched()
-
-   --  |
-   function Is_Touched (Win : Window := Standard_Window) return Boolean;
-   --  AKA: is_wintouched()
+   --  |
+   procedure Change_Lines_Status (Win   : Window := Standard_Window;
+                                  Start : Line_Position;
+                                  Count : Positive;
+                                  State : Boolean);
+   --  AKA: wtouchln()
+   pragma Inline (Change_Lines_Status);
+
+   --  |
+   function Is_Touched (Win  : Window := Standard_Window;
+                        Line : Line_Position) return Boolean;
+   --  AKA: is_linetouched()
+
+   --  |
+   function Is_Touched (Win : Window := Standard_Window) return Boolean;
+   --  AKA: is_wintouched()
    pragma Inline (Is_Touched);
 
-   --  |=====================================================================
-   --  | Man page curs_overlay.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Copy
-     (Source_Window            : Window;
-      Destination_Window       : Window;
-      Source_Top_Row           : Line_Position;
-      Source_Left_Column       : Column_Position;
-      Destination_Top_Row      : Line_Position;
-      Destination_Left_Column  : Column_Position;
-      Destination_Bottom_Row   : Line_Position;
-      Destination_Right_Column : Column_Position;
-      Non_Destructive_Mode     : Boolean := True);
-   --  AKA: copywin()
-   pragma Inline (Copy);
-
-   --  |
-   procedure Overwrite (Source_Window      : Window;
-                        Destination_Window : Window);
-   --  AKA: overwrite()
-   pragma Inline (Overwrite);
-
-   --  |
-   procedure Overlay (Source_Window      : Window;
-                      Destination_Window : Window);
-   --  AKA: overlay()
-   pragma Inline (Overlay);
-
-   --  |=====================================================================
-   --  | Man page curs_deleteln.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Insert_Delete_Lines
-     (Win   : Window  := Standard_Window;
-      Lines : Integer := 1); --  default is to insert one line above
-   --  AKA: winsdelln()
-   --  AKA: insdelln()
-   pragma Inline (Insert_Delete_Lines);
-
-   --  |
-   procedure Delete_Line (Win : Window := Standard_Window);
-   --  AKA: wdeleteln()
-   --  AKA: deleteln()
-   pragma Inline (Delete_Line);
-
-   --  |
-   procedure Insert_Line (Win : Window := Standard_Window);
-   --  AKA: winsertln()
-   --  AKA: insertln()
-   pragma Inline (Insert_Line);
-
-   --  |=====================================================================
-   --  | Man page curs_getyx.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Get_Size
-     (Win               : Window := Standard_Window;
-      Number_Of_Lines   : out Line_Count;
-      Number_Of_Columns : out Column_Count);
-   --  AKA: getmaxyx()
-   pragma Inline (Get_Size);
-
-   --  |
-   procedure Get_Window_Position
-     (Win             : Window := Standard_Window;
-      Top_Left_Line   : out Line_Position;
-      Top_Left_Column : out Column_Position);
-   --  AKA: getbegyx()
-   pragma Inline (Get_Window_Position);
-
-   --  |
-   procedure Get_Cursor_Position
-     (Win    : Window := Standard_Window;
-      Line   : out Line_Position;
-      Column : out Column_Position);
-   --  AKA: getyx()
-   pragma Inline (Get_Cursor_Position);
-
-   --  |
-   procedure Get_Origin_Relative_To_Parent
-     (Win                : Window;
-      Top_Left_Line      : out Line_Position;
-      Top_Left_Column    : out Column_Position;
-      Is_Not_A_Subwindow : out Boolean);
-   --  AKA: getparyx()
-   --  Instead of placing -1 in the coordinates as return, we use a Boolean
-   --  to return the info that the window has no parent.
-   pragma Inline (Get_Origin_Relative_To_Parent);
-
-   --  |=====================================================================
-   --  | Man page curs_pad.3x
-   --  |=====================================================================
-
-   --  |
-   function New_Pad (Lines   : Line_Count;
-                     Columns : Column_Count) return Window;
-   --  AKA: newpad()
-   pragma Inline (New_Pad);
-
-   --  |
-   function Sub_Pad
-     (Pad                   : Window;
-      Number_Of_Lines       : Line_Count;
-      Number_Of_Columns     : Column_Count;
-      First_Line_Position   : Line_Position;
-      First_Column_Position : Column_Position) return Window;
-   --  AKA: subpad()
-   pragma Inline (Sub_Pad);
-
-   --  |
-   procedure Refresh
-     (Pad                      : Window;
-      Source_Top_Row           : Line_Position;
-      Source_Left_Column       : Column_Position;
-      Destination_Top_Row      : Line_Position;
-      Destination_Left_Column  : Column_Position;
-      Destination_Bottom_Row   : Line_Position;
-      Destination_Right_Column : Column_Position);
-   --  AKA: prefresh()
+   --  |=====================================================================
+   --  | Man page curs_overlay.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Copy
+     (Source_Window            : Window;
+      Destination_Window       : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position;
+      Non_Destructive_Mode     : Boolean := True);
+   --  AKA: copywin()
+   pragma Inline (Copy);
+
+   --  |
+   procedure Overwrite (Source_Window      : Window;
+                        Destination_Window : Window);
+   --  AKA: overwrite()
+   pragma Inline (Overwrite);
+
+   --  |
+   procedure Overlay (Source_Window      : Window;
+                      Destination_Window : Window);
+   --  AKA: overlay()
+   pragma Inline (Overlay);
+
+   --  |=====================================================================
+   --  | Man page curs_deleteln.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Insert_Delete_Lines
+     (Win   : Window  := Standard_Window;
+      Lines : Integer := 1); --  default is to insert one line above
+   --  AKA: winsdelln()
+   --  AKA: insdelln()
+   pragma Inline (Insert_Delete_Lines);
+
+   --  |
+   procedure Delete_Line (Win : Window := Standard_Window);
+   --  AKA: wdeleteln()
+   --  AKA: deleteln()
+   pragma Inline (Delete_Line);
+
+   --  |
+   procedure Insert_Line (Win : Window := Standard_Window);
+   --  AKA: winsertln()
+   --  AKA: insertln()
+   pragma Inline (Insert_Line);
+
+   --  |=====================================================================
+   --  | Man page curs_getyx.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Get_Size
+     (Win               : Window := Standard_Window;
+      Number_Of_Lines   : out Line_Count;
+      Number_Of_Columns : out Column_Count);
+   --  AKA: getmaxyx()
+   pragma Inline (Get_Size);
+
+   --  |
+   procedure Get_Window_Position
+     (Win             : Window := Standard_Window;
+      Top_Left_Line   : out Line_Position;
+      Top_Left_Column : out Column_Position);
+   --  AKA: getbegyx()
+   pragma Inline (Get_Window_Position);
+
+   --  |
+   procedure Get_Cursor_Position
+     (Win    : Window := Standard_Window;
+      Line   : out Line_Position;
+      Column : out Column_Position);
+   --  AKA: getyx()
+   pragma Inline (Get_Cursor_Position);
+
+   --  |
+   procedure Get_Origin_Relative_To_Parent
+     (Win                : Window;
+      Top_Left_Line      : out Line_Position;
+      Top_Left_Column    : out Column_Position;
+      Is_Not_A_Subwindow : out Boolean);
+   --  AKA: getparyx()
+   --  Instead of placing -1 in the coordinates as return, we use a Boolean
+   --  to return the info that the window has no parent.
+   pragma Inline (Get_Origin_Relative_To_Parent);
+
+   --  |=====================================================================
+   --  | Man page curs_pad.3x
+   --  |=====================================================================
+
+   --  |
+   function New_Pad (Lines   : Line_Count;
+                     Columns : Column_Count) return Window;
+   --  AKA: newpad()
+   pragma Inline (New_Pad);
+
+   --  |
+   function Sub_Pad
+     (Pad                   : Window;
+      Number_Of_Lines       : Line_Count;
+      Number_Of_Columns     : Column_Count;
+      First_Line_Position   : Line_Position;
+      First_Column_Position : Column_Position) return Window;
+   --  AKA: subpad()
+   pragma Inline (Sub_Pad);
+
+   --  |
+   procedure Refresh
+     (Pad                      : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position);
+   --  AKA: prefresh()
    pragma Inline (Refresh);
 
-   --  |
-   procedure Refresh_Without_Update
-     (Pad                      : Window;
-      Source_Top_Row           : Line_Position;
-      Source_Left_Column       : Column_Position;
-      Destination_Top_Row      : Line_Position;
-      Destination_Left_Column  : Column_Position;
-      Destination_Bottom_Row   : Line_Position;
-      Destination_Right_Column : Column_Position);
-   --  AKA: pnoutrefresh()
+   --  |
+   procedure Refresh_Without_Update
+     (Pad                      : Window;
+      Source_Top_Row           : Line_Position;
+      Source_Left_Column       : Column_Position;
+      Destination_Top_Row      : Line_Position;
+      Destination_Left_Column  : Column_Position;
+      Destination_Bottom_Row   : Line_Position;
+      Destination_Right_Column : Column_Position);
+   --  AKA: pnoutrefresh()
    pragma Inline (Refresh_Without_Update);
 
-   --  |
-   procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : Window;
-      Ch  : Attributed_Character);
-   --  AKA: pechochar()
+   --  |
+   procedure Add_Character_To_Pad_And_Echo_It
+     (Pad : Window;
+      Ch  : Attributed_Character);
+   --  AKA: pechochar()
 
-   procedure Add_Character_To_Pad_And_Echo_It
-     (Pad : Window;
-      Ch  : Character);
+   procedure Add_Character_To_Pad_And_Echo_It
+     (Pad : Window;
+      Ch  : Character);
    pragma Inline (Add_Character_To_Pad_And_Echo_It);
 
-   --  |=====================================================================
-   --  | Man page curs_scroll.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Scroll (Win    : Window  := Standard_Window;
-                     Amount : Integer := 1);
-   --  AKA: wscrl()
-   --  AKA: scroll()
-   --  AKA: scrl()
-   pragma Inline (Scroll);
-
-   --  |=====================================================================
-   --  | Man page curs_delch.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Delete_Character (Win : Window := Standard_Window);
-   --  AKA: wdelch()
-   --  AKA: delch()
-
-   --  |
-   procedure Delete_Character
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position);
-   --  AKA: mvwdelch()
-   --  AKA: mvdelch()
+   --  |=====================================================================
+   --  | Man page curs_scroll.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Scroll (Win    : Window  := Standard_Window;
+                     Amount : Integer := 1);
+   --  AKA: wscrl()
+   --  AKA: scroll()
+   --  AKA: scrl()
+   pragma Inline (Scroll);
+
+   --  |=====================================================================
+   --  | Man page curs_delch.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Delete_Character (Win : Window := Standard_Window);
+   --  AKA: wdelch()
+   --  AKA: delch()
+
+   --  |
+   procedure Delete_Character
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position);
+   --  AKA: mvwdelch()
+   --  AKA: mvdelch()
    pragma Inline (Delete_Character);
 
-   --  |=====================================================================
-   --  | Man page curs_inch.3x
-   --  |=====================================================================
-
-   --  |
-   function Peek (Win : Window := Standard_Window)
-     return Attributed_Character;
-   --  AKA: inch()
-   --  AKA: winch()
-
-   --  |
-   function Peek
-     (Win    : Window := Standard_Window;
-      Line   : Line_Position;
-      Column : Column_Position) return Attributed_Character;
-   --  AKA: mvwinch()
-   --  AKA: mvinch()
-   --  More Peek's follow, pragma Inline appears later.
-
-   --  |=====================================================================
-   --  | Man page curs_insch.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Insert (Win : Window := Standard_Window;
-                     Ch  : Attributed_Character);
-   --  AKA: winsch()
-   --  AKA: insch()
-
-   --  |
-   procedure Insert (Win    : Window := Standard_Window;
-                     Line   : Line_Position;
-                     Column : Column_Position;
-                     Ch     : Attributed_Character);
-   --  AKA: mvwinsch()
-   --  AKA: mvinsch()
-
-   --  |=====================================================================
-   --  | Man page curs_insstr.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Insert (Win : Window := Standard_Window;
-                     Str : String;
-                     Len : Integer := -1);
-   --  AKA: winsnstr()
-   --  AKA: winsstr()
-   --  AKA: insnstr()
-   --  AKA: insstr()
-
-   --  |
-   procedure Insert (Win    : Window := Standard_Window;
-                     Line   : Line_Position;
-                     Column : Column_Position;
-                     Str    : String;
-                     Len    : Integer := -1);
-   --  AKA: mvwinsnstr()
-   --  AKA: mvwinsstr()
-   --  AKA: mvinsnstr()
-   --  AKA: mvinsstr()
+   --  |=====================================================================
+   --  | Man page curs_inch.3x
+   --  |=====================================================================
+
+   --  |
+   function Peek (Win : Window := Standard_Window)
+     return Attributed_Character;
+   --  AKA: inch()
+   --  AKA: winch()
+
+   --  |
+   function Peek
+     (Win    : Window := Standard_Window;
+      Line   : Line_Position;
+      Column : Column_Position) return Attributed_Character;
+   --  AKA: mvwinch()
+   --  AKA: mvinch()
+   --  More Peek's follow, pragma Inline appears later.
+
+   --  |=====================================================================
+   --  | Man page curs_insch.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Insert (Win : Window := Standard_Window;
+                     Ch  : Attributed_Character);
+   --  AKA: winsch()
+   --  AKA: insch()
+
+   --  |
+   procedure Insert (Win    : Window := Standard_Window;
+                     Line   : Line_Position;
+                     Column : Column_Position;
+                     Ch     : Attributed_Character);
+   --  AKA: mvwinsch()
+   --  AKA: mvinsch()
+
+   --  |=====================================================================
+   --  | Man page curs_insstr.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Insert (Win : Window := Standard_Window;
+                     Str : String;
+                     Len : Integer := -1);
+   --  AKA: winsnstr()
+   --  AKA: winsstr()
+   --  AKA: insnstr()
+   --  AKA: insstr()
+
+   --  |
+   procedure Insert (Win    : Window := Standard_Window;
+                     Line   : Line_Position;
+                     Column : Column_Position;
+                     Str    : String;
+                     Len    : Integer := -1);
+   --  AKA: mvwinsnstr()
+   --  AKA: mvwinsstr()
+   --  AKA: mvinsnstr()
+   --  AKA: mvinsstr()
    pragma Inline (Insert);
 
-   --  |=====================================================================
-   --  | Man page curs_instr.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Peek (Win : Window := Standard_Window;
-                   Str : out String;
-                   Len : Integer := -1);
-   --  AKA: winnstr()
-   --  AKA: winstr()
-   --  AKA: innstr()
-   --  AKA: instr()
-
-   --  |
-   procedure Peek (Win    : Window := Standard_Window;
-                   Line   : Line_Position;
-                   Column : Column_Position;
-                   Str    : out String;
-                   Len    : Integer := -1);
-   --  AKA: mvwinnstr()
-   --  AKA: mvwinstr()
-   --  AKA: mvinnstr()
-   --  AKA: mvinstr()
-
-   --  |=====================================================================
-   --  | Man page curs_inchstr.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Peek (Win : Window := Standard_Window;
-                   Str : out Attributed_String;
-                   Len : Integer := -1);
-   --  AKA: winchnstr()
-   --  AKA: winchstr()
-   --  AKA: inchnstr()
-   --  AKA: inchstr()
-
-   --  |
-   procedure Peek (Win    : Window := Standard_Window;
-                   Line   : Line_Position;
-                   Column : Column_Position;
-                   Str    : out Attributed_String;
-                   Len    : Integer := -1);
-   --  AKA: mvwinchnstr()
-   --  AKA: mvwinchstr()
-   --  AKA: mvinchnstr()
-   --  AKA: mvinchstr()
-   --  We do not inline the Peek procedures
-
-   --  |=====================================================================
-   --  | Man page curs_getstr.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Get (Win : Window := Standard_Window;
-                  Str : out String;
-                  Len : Integer := -1);
-   --  AKA: wgetnstr()
-   --  AKA: wgetstr()
-   --  AKA: getnstr()
-   --  AKA: getstr()
-   --  actually getstr is not supported because that results in buffer
-   --  overflows.
-
-   --  |
-   procedure Get (Win    : Window := Standard_Window;
-                  Line   : Line_Position;
-                  Column : Column_Position;
-                  Str    : out String;
-                  Len    : Integer := -1);
-   --  AKA: mvwgetnstr()
-   --  AKA: mvwgetstr()
-   --  AKA: mvgetnstr()
-   --  AKA: mvgetstr()
-   --  Get is not inlined
-
-   --  |=====================================================================
-   --  | Man page curs_slk.3x
-   --  |=====================================================================
-
-   --  Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set
-
-   type Soft_Label_Key_Format is (Three_Two_Three,
-                                  Four_Four,
-                                  PC_Style,              --  ncurses specific
-                                  PC_Style_With_Index);  --  "
-   type Label_Number is new Positive range 1 .. 12;
-   type Label_Justification is (Left, Centered, Right);
-
-   --  |
-   procedure Init_Soft_Label_Keys
-     (Format : Soft_Label_Key_Format := Three_Two_Three);
-   --  AKA: slk_init()
-   pragma Inline (Init_Soft_Label_Keys);
-
-   --  |
-   procedure Set_Soft_Label_Key (Label : Label_Number;
-                                 Text  : String;
-                                 Fmt   : Label_Justification := Left);
-   --  AKA: slk_set()
-   --  We do not inline this procedure
-
-   --  |
-   procedure Refresh_Soft_Label_Keys;
-   --  AKA: slk_refresh()
-   pragma Inline (Refresh_Soft_Label_Keys);
-
-   --  |
-   procedure Refresh_Soft_Label_Keys_Without_Update;
-   --  AKA: slk_noutrefresh()
-   pragma Inline (Refresh_Soft_Label_Keys_Without_Update);
-
-   --  |
-   procedure Get_Soft_Label_Key (Label : Label_Number;
-                                 Text  : out String);
-   --  AKA: slk_label()
-
-   --  |
-   function Get_Soft_Label_Key (Label : Label_Number) return String;
-   --  AKA: slk_label()
-   --  Same as function
+   --  |=====================================================================
+   --  | Man page curs_instr.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Peek (Win : Window := Standard_Window;
+                   Str : out String;
+                   Len : Integer := -1);
+   --  AKA: winnstr()
+   --  AKA: winstr()
+   --  AKA: innstr()
+   --  AKA: instr()
+
+   --  |
+   procedure Peek (Win    : Window := Standard_Window;
+                   Line   : Line_Position;
+                   Column : Column_Position;
+                   Str    : out String;
+                   Len    : Integer := -1);
+   --  AKA: mvwinnstr()
+   --  AKA: mvwinstr()
+   --  AKA: mvinnstr()
+   --  AKA: mvinstr()
+
+   --  |=====================================================================
+   --  | Man page curs_inchstr.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Peek (Win : Window := Standard_Window;
+                   Str : out Attributed_String;
+                   Len : Integer := -1);
+   --  AKA: winchnstr()
+   --  AKA: winchstr()
+   --  AKA: inchnstr()
+   --  AKA: inchstr()
+
+   --  |
+   procedure Peek (Win    : Window := Standard_Window;
+                   Line   : Line_Position;
+                   Column : Column_Position;
+                   Str    : out Attributed_String;
+                   Len    : Integer := -1);
+   --  AKA: mvwinchnstr()
+   --  AKA: mvwinchstr()
+   --  AKA: mvinchnstr()
+   --  AKA: mvinchstr()
+   --  We do not inline the Peek procedures
+
+   --  |=====================================================================
+   --  | Man page curs_getstr.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Get (Win : Window := Standard_Window;
+                  Str : out String;
+                  Len : Integer := -1);
+   --  AKA: wgetnstr()
+   --  AKA: wgetstr()
+   --  AKA: getnstr()
+   --  AKA: getstr()
+   --  actually getstr is not supported because that results in buffer
+   --  overflows.
+
+   --  |
+   procedure Get (Win    : Window := Standard_Window;
+                  Line   : Line_Position;
+                  Column : Column_Position;
+                  Str    : out String;
+                  Len    : Integer := -1);
+   --  AKA: mvwgetnstr()
+   --  AKA: mvwgetstr()
+   --  AKA: mvgetnstr()
+   --  AKA: mvgetstr()
+   --  Get is not inlined
+
+   --  |=====================================================================
+   --  | Man page curs_slk.3x
+   --  |=====================================================================
+
+   --  Not Implemented: slk_attr_on, slk_attr_off, slk_attr_set
+
+   type Soft_Label_Key_Format is (Three_Two_Three,
+                                  Four_Four,
+                                  PC_Style,              --  ncurses specific
+                                  PC_Style_With_Index);  --  "
+   type Label_Number is new Positive range 1 .. 12;
+   type Label_Justification is (Left, Centered, Right);
+
+   --  |
+   procedure Init_Soft_Label_Keys
+     (Format : Soft_Label_Key_Format := Three_Two_Three);
+   --  AKA: slk_init()
+   pragma Inline (Init_Soft_Label_Keys);
+
+   --  |
+   procedure Set_Soft_Label_Key (Label : Label_Number;
+                                 Text  : String;
+                                 Fmt   : Label_Justification := Left);
+   --  AKA: slk_set()
+   --  We do not inline this procedure
+
+   --  |
+   procedure Refresh_Soft_Label_Keys;
+   --  AKA: slk_refresh()
+   pragma Inline (Refresh_Soft_Label_Keys);
+
+   --  |
+   procedure Refresh_Soft_Label_Keys_Without_Update;
+   --  AKA: slk_noutrefresh()
+   pragma Inline (Refresh_Soft_Label_Keys_Without_Update);
+
+   --  |
+   procedure Get_Soft_Label_Key (Label : Label_Number;
+                                 Text  : out String);
+   --  AKA: slk_label()
+
+   --  |
+   function Get_Soft_Label_Key (Label : Label_Number) return String;
+   --  AKA: slk_label()
+   --  Same as function
    pragma Inline (Get_Soft_Label_Key);
 
-   --  |
-   procedure Clear_Soft_Label_Keys;
-   --  AKA: slk_clear()
-   pragma Inline (Clear_Soft_Label_Keys);
-
-   --  |
-   procedure Restore_Soft_Label_Keys;
-   --  AKA: slk_restore()
-   pragma Inline (Restore_Soft_Label_Keys);
-
-   --  |
-   procedure Touch_Soft_Label_Keys;
-   --  AKA: slk_touch()
-   pragma Inline (Touch_Soft_Label_Keys);
-
-   --  |
-   procedure Switch_Soft_Label_Key_Attributes
-     (Attr : Character_Attribute_Set;
-      On   : Boolean := True);
-   --  AKA: slk_attron()
-   --  AKA: slk_attroff()
-   pragma Inline (Switch_Soft_Label_Key_Attributes);
-
-   --  |
-   procedure Set_Soft_Label_Key_Attributes
-     (Attr  : Character_Attribute_Set := Normal_Video;
-      Color : Color_Pair := Color_Pair'First);
-   --  AKA: slk_attrset()
-   pragma Inline (Set_Soft_Label_Key_Attributes);
-
-   --  |
-   function Get_Soft_Label_Key_Attributes return Character_Attribute_Set;
-   --  AKA: slk_attr()
-
-   --  |
-   function Get_Soft_Label_Key_Attributes return Color_Pair;
-   --  AKA: slk_attr()
+   --  |
+   procedure Clear_Soft_Label_Keys;
+   --  AKA: slk_clear()
+   pragma Inline (Clear_Soft_Label_Keys);
+
+   --  |
+   procedure Restore_Soft_Label_Keys;
+   --  AKA: slk_restore()
+   pragma Inline (Restore_Soft_Label_Keys);
+
+   --  |
+   procedure Touch_Soft_Label_Keys;
+   --  AKA: slk_touch()
+   pragma Inline (Touch_Soft_Label_Keys);
+
+   --  |
+   procedure Switch_Soft_Label_Key_Attributes
+     (Attr : Character_Attribute_Set;
+      On   : Boolean := True);
+   --  AKA: slk_attron()
+   --  AKA: slk_attroff()
+   pragma Inline (Switch_Soft_Label_Key_Attributes);
+
+   --  |
+   procedure Set_Soft_Label_Key_Attributes
+     (Attr  : Character_Attribute_Set := Normal_Video;
+      Color : Color_Pair := Color_Pair'First);
+   --  AKA: slk_attrset()
+   pragma Inline (Set_Soft_Label_Key_Attributes);
+
+   --  |
+   function Get_Soft_Label_Key_Attributes return Character_Attribute_Set;
+   --  AKA: slk_attr()
+
+   --  |
+   function Get_Soft_Label_Key_Attributes return Color_Pair;
+   --  AKA: slk_attr()
    pragma Inline (Get_Soft_Label_Key_Attributes);
 
-   --  |
-   procedure Set_Soft_Label_Key_Color (Pair : Color_Pair);
-   --  AKA: slk_color()
-   pragma Inline (Set_Soft_Label_Key_Color);
-
-   --  |=====================================================================
-   --  | Man page keybound.3x
-   --  |=====================================================================
-   --  Not Implemented: keybound
-
-   --  |=====================================================================
-   --  | Man page keyok.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Enable_Key (Key    : Special_Key_Code;
-                         Enable : Boolean := True);
-   --  AKA: keyok()
-   pragma Inline (Enable_Key);
-
-   --  |=====================================================================
-   --  | Man page define_key.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Define_Key (Definition : String;
-                         Key        : Special_Key_Code);
-   --  AKA: define_key()
-   pragma Inline (Define_Key);
-
-   --  |=====================================================================
-   --  | Man page curs_util.3x
-   --  |=====================================================================
-
-   --  | Not implemented : filter, use_env
-   --  | putwin, getwin are in the child package PutWin
-   --
-
-   --  |
-   procedure Key_Name (Key  : Real_Key_Code;
-                       Name : out String);
-   --  AKA: keyname()
-   --  The external name for a real keystroke.
-
-   --  |
-   function Key_Name (Key  : Real_Key_Code) return String;
-   --  AKA: keyname()
-   --  Same as function
-   --  We do not inline this routine
-
-   --  |
-   procedure Un_Control (Ch  : Attributed_Character;
-                         Str : out String);
-   --  AKA: unctrl()
-
-   --  |
-   function Un_Control (Ch  : Attributed_Character) return String;
-   --  AKA: unctrl()
-   --  Same as function
+   --  |
+   procedure Set_Soft_Label_Key_Color (Pair : Color_Pair);
+   --  AKA: slk_color()
+   pragma Inline (Set_Soft_Label_Key_Color);
+
+   --  |=====================================================================
+   --  | Man page keybound.3x
+   --  |=====================================================================
+   --  Not Implemented: keybound
+
+   --  |=====================================================================
+   --  | Man page keyok.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Enable_Key (Key    : Special_Key_Code;
+                         Enable : Boolean := True);
+   --  AKA: keyok()
+   pragma Inline (Enable_Key);
+
+   --  |=====================================================================
+   --  | Man page define_key.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Define_Key (Definition : String;
+                         Key        : Special_Key_Code);
+   --  AKA: define_key()
+   pragma Inline (Define_Key);
+
+   --  |=====================================================================
+   --  | Man page curs_util.3x
+   --  |=====================================================================
+
+   --  | Not implemented : filter, use_env
+   --  | putwin, getwin are in the child package PutWin
+   --
+
+   --  |
+   procedure Key_Name (Key  : Real_Key_Code;
+                       Name : out String);
+   --  AKA: keyname()
+   --  The external name for a real keystroke.
+
+   --  |
+   function Key_Name (Key  : Real_Key_Code) return String;
+   --  AKA: keyname()
+   --  Same as function
+   --  We do not inline this routine
+
+   --  |
+   procedure Un_Control (Ch  : Attributed_Character;
+                         Str : out String);
+   --  AKA: unctrl()
+
+   --  |
+   function Un_Control (Ch  : Attributed_Character) return String;
+   --  AKA: unctrl()
+   --  Same as function
    pragma Inline (Un_Control);
 
-   --  |
-   procedure Delay_Output (Msecs : Natural);
-   --  AKA: delay_output()
-   pragma Inline (Delay_Output);
-
-   --  |
-   procedure Flush_Input;
-   --  AKA: flushinp()
-   pragma Inline (Flush_Input);
-
-   --  |=====================================================================
-   --  | Man page curs_termattrs.3x
-   --  |=====================================================================
-
-   --  |
-   function Baudrate return Natural;
-   --  AKA: baudrate()
-   pragma Inline (Baudrate);
-
-   --  |
-   function Erase_Character return Character;
-   --  AKA: erasechar()
-   pragma Inline (Erase_Character);
-
-   --  |
-   function Kill_Character return Character;
-   --  AKA: killchar()
-   pragma Inline (Kill_Character);
-
-   --  |
-   function Has_Insert_Character return Boolean;
-   --  AKA: has_ic()
-   pragma Inline (Has_Insert_Character);
-
-   --  |
-   function Has_Insert_Line return Boolean;
-   --  AKA: has_il()
-   pragma Inline (Has_Insert_Line);
-
-   --  |
-   function Supported_Attributes return Character_Attribute_Set;
-   --  AKA: termattrs()
-   pragma Inline (Supported_Attributes);
-
-   --  |
-   procedure Long_Name (Name : out String);
-   --  AKA: longname()
-
-   --  |
-   function Long_Name return String;
-   --  AKA: longname()
-   --  Same as function
+   --  |
+   procedure Delay_Output (Msecs : Natural);
+   --  AKA: delay_output()
+   pragma Inline (Delay_Output);
+
+   --  |
+   procedure Flush_Input;
+   --  AKA: flushinp()
+   pragma Inline (Flush_Input);
+
+   --  |=====================================================================
+   --  | Man page curs_termattrs.3x
+   --  |=====================================================================
+
+   --  |
+   function Baudrate return Natural;
+   --  AKA: baudrate()
+   pragma Inline (Baudrate);
+
+   --  |
+   function Erase_Character return Character;
+   --  AKA: erasechar()
+   pragma Inline (Erase_Character);
+
+   --  |
+   function Kill_Character return Character;
+   --  AKA: killchar()
+   pragma Inline (Kill_Character);
+
+   --  |
+   function Has_Insert_Character return Boolean;
+   --  AKA: has_ic()
+   pragma Inline (Has_Insert_Character);
+
+   --  |
+   function Has_Insert_Line return Boolean;
+   --  AKA: has_il()
+   pragma Inline (Has_Insert_Line);
+
+   --  |
+   function Supported_Attributes return Character_Attribute_Set;
+   --  AKA: termattrs()
+   pragma Inline (Supported_Attributes);
+
+   --  |
+   procedure Long_Name (Name : out String);
+   --  AKA: longname()
+
+   --  |
+   function Long_Name return String;
+   --  AKA: longname()
+   --  Same as function
    pragma Inline (Long_Name);
 
-   --  |
-   procedure Terminal_Name (Name : out String);
-   --  AKA: termname()
+   --  |
+   procedure Terminal_Name (Name : out String);
+   --  AKA: termname()
 
-   --  |
-   function Terminal_Name return String;
-   --  AKA: termname()
-   --  Same as function
+   --  |
+   function Terminal_Name return String;
+   --  AKA: termname()
+   --  Same as function
    pragma Inline (Terminal_Name);
 
-   --  |=====================================================================
-   --  | Man page curs_color.3x
-   --  |=====================================================================
+   --  |=====================================================================
+   --  | Man page curs_color.3x
+   --  |=====================================================================
 
-   --  COLOR_PAIR
-   --  COLOR_PAIR(n) in C is the same as
-   --  Attributed_Character(Ch => Nul, Color => n, Attr => Normal_Video)
-   --  In C you often see something like c = c | COLOR_PAIR(n);
-   --  This is equivalent to c.Color := n;
+   --  COLOR_PAIR
+   --  COLOR_PAIR(n) in C is the same as
+   --  Attributed_Character(Ch => Nul, Color => n, Attr => Normal_Video)
+   --  In C you often see something like c = c | COLOR_PAIR(n);
+   --  This is equivalent to c.Color := n;
 
-   --  |
-   procedure Start_Color;
-   --  AKA: start_color()
+   --  |
+   procedure Start_Color;
+   --  AKA: start_color()
    pragma Import (C, Start_Color, "start_color");
 
-   --  |
-   procedure Init_Pair (Pair : Redefinable_Color_Pair;
-                        Fore : Color_Number;
-                        Back : Color_Number);
-   --  AKA: init_pair()
-   pragma Inline (Init_Pair);
-
-   --  |
-   procedure Pair_Content (Pair : Color_Pair;
-                           Fore : out Color_Number;
-                           Back : out Color_Number);
-   --  AKA: pair_content()
-   pragma Inline (Pair_Content);
-
-   --  |
-   function Has_Colors return Boolean;
-   --  AKA: has_colors()
-   pragma Inline (Has_Colors);
-
-   --  |
-   procedure Init_Color (Color : Color_Number;
-                         Red   : RGB_Value;
-                         Green : RGB_Value;
-                         Blue  : RGB_Value);
-   --  AKA: init_color()
-   pragma Inline (Init_Color);
-
-   --  |
-   function Can_Change_Color return Boolean;
-   --  AKA: can_change_color()
-   pragma Inline (Can_Change_Color);
-
-   --  |
-   procedure Color_Content (Color : Color_Number;
-                            Red   : out RGB_Value;
-                            Green : out RGB_Value;
-                            Blue  : out RGB_Value);
-   --  AKA: color_content()
-   pragma Inline (Color_Content);
-
-   --  |=====================================================================
-   --  | Man page curs_kernel.3x
-   --  |=====================================================================
-   --  | Not implemented: getsyx, setsyx
-   --
-   type Curses_Mode is (Curses, Shell);
-
-   --  |
-   procedure Save_Curses_Mode (Mode : Curses_Mode);
-   --  AKA: def_prog_mode()
-   --  AKA: def_shell_mode()
-   pragma Inline (Save_Curses_Mode);
-
-   --  |
-   procedure Reset_Curses_Mode (Mode : Curses_Mode);
-   --  AKA: reset_prog_mode()
-   --  AKA: reset_shell_mode()
-   pragma Inline (Reset_Curses_Mode);
-
-   --  |
-   procedure Save_Terminal_State;
-   --  AKA: savetty()
-   pragma Inline (Save_Terminal_State);
-
-   --  |
-   procedure Reset_Terminal_State;
-   --  AKA: resetty();
-   pragma Inline (Reset_Terminal_State);
-
-   type Stdscr_Init_Proc is access
-      function (Win     : Window;
-                Columns : Column_Count) return Integer;
-   pragma Convention (C, Stdscr_Init_Proc);
-   --  N.B.: the return value is actually ignored, but it seems to be
-   --        a good practice to return 0 if you think all went fine
-   --        and -1 otherwise.
-
-   --  |
-   procedure Rip_Off_Lines (Lines : Integer;
-                            Proc  : Stdscr_Init_Proc);
-   --  AKA: ripoffline()
-   --  N.B.: to be more precise, this uses a ncurses specific enhancement of
-   --        ripoffline(), in which the Lines argument absolute value is the
-   --        number of lines to be ripped of. The official ripoffline() only
-   --        uses the sign of Lines to remove a single line from bottom or top.
-   pragma Inline (Rip_Off_Lines);
-
-   type Cursor_Visibility is (Invisible, Normal, Very_Visible);
-
-   --  |
-   procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility);
-   --  AKA: curs_set()
-   pragma Inline (Set_Cursor_Visibility);
-
-   --  |
-   procedure Nap_Milli_Seconds (Ms : Natural);
-   --  AKA: napms()
-   pragma Inline (Nap_Milli_Seconds);
-
-   --  |=====================================================================
-   --  | Some useful helpers.
-   --  |=====================================================================
-   type Transform_Direction is (From_Screen, To_Screen);
-   procedure Transform_Coordinates
-     (W      : Window := Standard_Window;
-      Line   : in out Line_Position;
-      Column : in out Column_Position;
-      Dir    : Transform_Direction := From_Screen);
-   --  This procedure transforms screen coordinates into coordinates relative
-   --  to the window and vice versa, depending on the Dir parameter.
-   --  Screen coordinates are the position information for the physical device.
-   --  An Curses_Exception will be raised if Line and Column are not in the
-   --  Window or if you pass the Null_Window as argument.
-   --  We do not inline this procedure
-
-   --  |=====================================================================
-   --  | Man page default_colors.3x
-   --  |=====================================================================
-
-   Default_Color : constant Color_Number := -1;
-
-   --  |
-   procedure Use_Default_Colors;
-   --  AKA: use_default_colors()
-   pragma Inline (Use_Default_Colors);
-
-   --  |
-   procedure Assume_Default_Colors (Fore : Color_Number := Default_Color;
-                                    Back : Color_Number := Default_Color);
-   --  AKA: assume_default_colors()
-   pragma Inline (Assume_Default_Colors);
-
-   --  |=====================================================================
-   --  | Man page curs_extend.3x
-   --  |=====================================================================
-
-   --  |
-   function Curses_Version return String;
-   --  AKA: curses_version()
-
-   --  |
-   --  The returnvalue is the previous setting of the flag
-   function Use_Extended_Names (Enable : Boolean) return Boolean;
-   --  AKA: use_extended_names()
-
-   --  |=====================================================================
-   --  | Man page curs_trace.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Curses_Free_All;
-   --  AKA: _nc_freeall()
-
-   --  |=====================================================================
-   --  | Man page curs_scr_dump.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Screen_Dump_To_File (Filename : String);
-   --  AKA: scr_dump()
-
-   --  |
-   procedure Screen_Restore_From_File (Filename : String);
-   --  AKA: scr_restore()
-
-   --  |
-   procedure Screen_Init_From_File (Filename : String);
-   --  AKA: scr_init()
-
-   --  |
-   procedure Screen_Set_File (Filename : String);
-   --  AKA: scr_set()
-
-   --  |=====================================================================
-   --  | Man page curs_print.3x
-   --  |=====================================================================
-   --  Not implemented: mcprint
-
-   --  |=====================================================================
-   --  | Man page curs_printw.3x
-   --  |=====================================================================
-   --  Not implemented: printw,  wprintw, mvprintw, mvwprintw, vwprintw,
-   --                   vw_printw
-   --  Please use the Ada style Text_IO child packages for formatted
-   --  printing. It does not make a lot of sense to map the printf style
-   --  C functions to Ada.
-
-   --  |=====================================================================
-   --  | Man page curs_scanw.3x
-   --  |=====================================================================
-   --  Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw
-
-   --  |=====================================================================
-   --  | Man page resizeterm.3x
-   --  |=====================================================================
-   --  Not Implemented: resizeterm
-
-   --  |=====================================================================
-   --  | Man page wresize.3x
-   --  |=====================================================================
-
-   --  |
-   procedure Resize (Win               : Window := Standard_Window;
-                     Number_Of_Lines   : Line_Count;
-                     Number_Of_Columns : Column_Count);
-   --  AKA: wresize()
+   --  |
+   procedure Init_Pair (Pair : Redefinable_Color_Pair;
+                        Fore : Color_Number;
+                        Back : Color_Number);
+   --  AKA: init_pair()
+   pragma Inline (Init_Pair);
+
+   --  |
+   procedure Pair_Content (Pair : Color_Pair;
+                           Fore : out Color_Number;
+                           Back : out Color_Number);
+   --  AKA: pair_content()
+   pragma Inline (Pair_Content);
+
+   --  |
+   function Has_Colors return Boolean;
+   --  AKA: has_colors()
+   pragma Inline (Has_Colors);
+
+   --  |
+   procedure Init_Color (Color : Color_Number;
+                         Red   : RGB_Value;
+                         Green : RGB_Value;
+                         Blue  : RGB_Value);
+   --  AKA: init_color()
+   pragma Inline (Init_Color);
+
+   --  |
+   function Can_Change_Color return Boolean;
+   --  AKA: can_change_color()
+   pragma Inline (Can_Change_Color);
+
+   --  |
+   procedure Color_Content (Color : Color_Number;
+                            Red   : out RGB_Value;
+                            Green : out RGB_Value;
+                            Blue  : out RGB_Value);
+   --  AKA: color_content()
+   pragma Inline (Color_Content);
+
+   --  |=====================================================================
+   --  | Man page curs_kernel.3x
+   --  |=====================================================================
+   --  | Not implemented: getsyx, setsyx
+   --
+   type Curses_Mode is (Curses, Shell);
+
+   --  |
+   procedure Save_Curses_Mode (Mode : Curses_Mode);
+   --  AKA: def_prog_mode()
+   --  AKA: def_shell_mode()
+   pragma Inline (Save_Curses_Mode);
+
+   --  |
+   procedure Reset_Curses_Mode (Mode : Curses_Mode);
+   --  AKA: reset_prog_mode()
+   --  AKA: reset_shell_mode()
+   pragma Inline (Reset_Curses_Mode);
+
+   --  |
+   procedure Save_Terminal_State;
+   --  AKA: savetty()
+   pragma Inline (Save_Terminal_State);
+
+   --  |
+   procedure Reset_Terminal_State;
+   --  AKA: resetty();
+   pragma Inline (Reset_Terminal_State);
+
+   type Stdscr_Init_Proc is access
+      function (Win     : Window;
+                Columns : Column_Count) return Integer;
+   pragma Convention (C, Stdscr_Init_Proc);
+   --  N.B.: the return value is actually ignored, but it seems to be
+   --        a good practice to return 0 if you think all went fine
+   --        and -1 otherwise.
+
+   --  |
+   procedure Rip_Off_Lines (Lines : Integer;
+                            Proc  : Stdscr_Init_Proc);
+   --  AKA: ripoffline()
+   --  N.B.: to be more precise, this uses a ncurses specific enhancement of
+   --        ripoffline(), in which the Lines argument absolute value is the
+   --        number of lines to be ripped of. The official ripoffline() only
+   --        uses the sign of Lines to remove a single line from bottom or top.
+   pragma Inline (Rip_Off_Lines);
+
+   type Cursor_Visibility is (Invisible, Normal, Very_Visible);
+
+   --  |
+   procedure Set_Cursor_Visibility (Visibility : in out Cursor_Visibility);
+   --  AKA: curs_set()
+   pragma Inline (Set_Cursor_Visibility);
+
+   --  |
+   procedure Nap_Milli_Seconds (Ms : Natural);
+   --  AKA: napms()
+   pragma Inline (Nap_Milli_Seconds);
+
+   --  |=====================================================================
+   --  | Some useful helpers.
+   --  |=====================================================================
+   type Transform_Direction is (From_Screen, To_Screen);
+   procedure Transform_Coordinates
+     (W      : Window := Standard_Window;
+      Line   : in out Line_Position;
+      Column : in out Column_Position;
+      Dir    : Transform_Direction := From_Screen);
+   --  This procedure transforms screen coordinates into coordinates relative
+   --  to the window and vice versa, depending on the Dir parameter.
+   --  Screen coordinates are the position information for the physical device.
+   --  An Curses_Exception will be raised if Line and Column are not in the
+   --  Window or if you pass the Null_Window as argument.
+   --  We do not inline this procedure
+
+   --  |=====================================================================
+   --  | Man page default_colors.3x
+   --  |=====================================================================
+
+   Default_Color : constant Color_Number := -1;
+
+   --  |
+   procedure Use_Default_Colors;
+   --  AKA: use_default_colors()
+   pragma Inline (Use_Default_Colors);
+
+   --  |
+   procedure Assume_Default_Colors (Fore : Color_Number := Default_Color;
+                                    Back : Color_Number := Default_Color);
+   --  AKA: assume_default_colors()
+   pragma Inline (Assume_Default_Colors);
+
+   --  |=====================================================================
+   --  | Man page curs_extend.3x
+   --  |=====================================================================
+
+   --  |
+   function Curses_Version return String;
+   --  AKA: curses_version()
+
+   --  |
+   --  The returnvalue is the previous setting of the flag
+   function Use_Extended_Names (Enable : Boolean) return Boolean;
+   --  AKA: use_extended_names()
+
+   --  |=====================================================================
+   --  | Man page curs_trace.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Curses_Free_All;
+   --  AKA: _nc_freeall()
+
+   --  |=====================================================================
+   --  | Man page curs_scr_dump.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Screen_Dump_To_File (Filename : String);
+   --  AKA: scr_dump()
+
+   --  |
+   procedure Screen_Restore_From_File (Filename : String);
+   --  AKA: scr_restore()
+
+   --  |
+   procedure Screen_Init_From_File (Filename : String);
+   --  AKA: scr_init()
+
+   --  |
+   procedure Screen_Set_File (Filename : String);
+   --  AKA: scr_set()
+
+   --  |=====================================================================
+   --  | Man page curs_print.3x
+   --  |=====================================================================
+   --  Not implemented: mcprint
+
+   --  |=====================================================================
+   --  | Man page curs_printw.3x
+   --  |=====================================================================
+   --  Not implemented: printw,  wprintw, mvprintw, mvwprintw, vwprintw,
+   --                   vw_printw
+   --  Please use the Ada style Text_IO child packages for formatted
+   --  printing. It does not make a lot of sense to map the printf style
+   --  C functions to Ada.
+
+   --  |=====================================================================
+   --  | Man page curs_scanw.3x
+   --  |=====================================================================
+   --  Not implemented: scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw
+
+   --  |=====================================================================
+   --  | Man page resizeterm.3x
+   --  |=====================================================================
+   --  Not Implemented: resizeterm
+
+   --  |=====================================================================
+   --  | Man page wresize.3x
+   --  |=====================================================================
+
+   --  |
+   procedure Resize (Win               : Window := Standard_Window;
+                     Number_Of_Lines   : Line_Count;
+                     Number_Of_Columns : Column_Count);
+   --  AKA: wresize()
 
 private
-   type Window is new System.Storage_Elements.Integer_Address;
-   Null_Window : constant Window := 0;
+   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.
-   --
+   --  The next constants are generated and may be different on your
+   --  architecture.
+   --
 
-   Sizeof_Bool : constant := Curses_Constants.Sizeof_Bool;
+   Sizeof_Bool : constant := Curses_Constants.Sizeof_Bool;
 
-   type Curses_Bool is mod 2 ** Sizeof_Bool;
+   type Curses_Bool is mod 2 ** Sizeof_Bool;
 
-   Curses_Bool_False : constant Curses_Bool := 0;
+   Curses_Bool_False : constant Curses_Bool := 0;
 
-end Terminal_Interface.Curses;
-
+end Terminal_Interface.Curses; +
diff --git a/doc/html/ada/terminal_interface-curses_constants__ads.htm b/doc/html/ada/terminal_interface-curses_constants__ads.htm index d0d54ddd..1b7f4a65 100644 --- a/doc/html/ada/terminal_interface-curses_constants__ads.htm +++ b/doc/html/ada/terminal_interface-curses_constants__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface-curses_constants.ads + + +terminal_interface-curses_constants.ads - - -

File : terminal_interface-curses_constants.ads


-
---  Generated by the C program ./generate (source ./gen.c).
---  Do not edit this file directly.
---  The values provided here may vary on your system.
+
+
+

File : terminal_interface-curses_constants.ads


+
+--  Generated by the C program ./generate (source ./gen.c).
+--  Do not edit this file directly.
+--  The values provided here may vary on your system.
 
 with System;
-package Terminal_Interface.Curses_Constants is
+package Terminal_Interface.Curses_Constants is
    pragma Pure;
 
-   DFT_ARG_SUFFIX : constant String := "";
-   Bit_Order : constant System.Bit_Order := System.Low_Order_First;
-   Sizeof_Bool                  : constant := 8;
-   OK                           : constant := 0;
-   ERR                          : constant := -1;
-   pragma Warnings (Off); -- redefinition of Standard.True and False
-   TRUE                         : constant := 1;
-   FALSE                        : constant := 0;
+   DFT_ARG_SUFFIX : constant String := "";
+   Bit_Order : constant System.Bit_Order := System.Low_Order_First;
+   Sizeof_Bool                  : constant := 8;
+   OK                           : constant := 0;
+   ERR                          : constant := -1;
+   pragma Warnings (Off); -- redefinition of Standard.True and False
+   TRUE                         : constant := 1;
+   FALSE                        : constant := 0;
    pragma Warnings (On);
 
-   --  Version of the ncurses library from extensions(3NCURSES)
+   --  Version of the ncurses library from extensions(3NCURSES)
 
-   NCURSES_VERSION_MAJOR        : constant := 6;
-   NCURSES_VERSION_MINOR        : constant := 3;
-   Version : constant String := "6.3";
+   NCURSES_VERSION_MAJOR        : constant := 6;
+   NCURSES_VERSION_MINOR        : constant := 3;
+   Version : constant String := "6.3";
 
-   --  Character non-color attributes from attr(3NCURSES)
+   --  Character non-color attributes from attr(3NCURSES)
 
-   --  attr_t and chtype may be signed in C.
-   type attr_t is mod 2 ** 32;
-   A_CHARTEXT_First             : constant := 0;
-   A_CHARTEXT_Last              : constant := 7;
-   A_COLOR_First                : constant := 8;
-   A_COLOR_Last                 : constant := 15;
-   Attr_First                   : constant := 16;
-   Attr_Last                    : constant := 31;
-   A_STANDOUT_First             : constant := 16;
-   A_STANDOUT_Last              : constant := 16;
-   A_UNDERLINE_First            : constant := 17;
-   A_UNDERLINE_Last             : constant := 17;
-   A_REVERSE_First              : constant := 18;
-   A_REVERSE_Last               : constant := 18;
-   A_BLINK_First                : constant := 19;
-   A_BLINK_Last                 : constant := 19;
-   A_DIM_First                  : constant := 20;
-   A_DIM_Last                   : constant := 20;
-   A_BOLD_First                 : constant := 21;
-   A_BOLD_Last                  : constant := 21;
-   A_PROTECT_First              : constant := 24;
-   A_PROTECT_Last               : constant := 24;
-   A_INVIS_First                : constant := 23;
-   A_INVIS_Last                 : constant := 23;
-   A_ALTCHARSET_First           : constant := 22;
-   A_ALTCHARSET_Last            : constant := 22;
-   A_HORIZONTAL_First           : constant := 25;
-   A_HORIZONTAL_Last            : constant := 25;
-   A_LEFT_First                 : constant := 26;
-   A_LEFT_Last                  : constant := 26;
-   A_LOW_First                  : constant := 27;
-   A_LOW_Last                   : constant := 27;
-   A_RIGHT_First                : constant := 28;
-   A_RIGHT_Last                 : constant := 28;
-   A_TOP_First                  : constant := 29;
-   A_TOP_Last                   : constant := 29;
-   A_VERTICAL_First             : constant := 30;
-   A_VERTICAL_Last              : constant := 30;
-   chtype_Size                  : constant := 32;
+   --  attr_t and chtype may be signed in C.
+   type attr_t is mod 2 ** 32;
+   A_CHARTEXT_First             : constant := 0;
+   A_CHARTEXT_Last              : constant := 7;
+   A_COLOR_First                : constant := 8;
+   A_COLOR_Last                 : constant := 15;
+   Attr_First                   : constant := 16;
+   Attr_Last                    : constant := 31;
+   A_STANDOUT_First             : constant := 16;
+   A_STANDOUT_Last              : constant := 16;
+   A_UNDERLINE_First            : constant := 17;
+   A_UNDERLINE_Last             : constant := 17;
+   A_REVERSE_First              : constant := 18;
+   A_REVERSE_Last               : constant := 18;
+   A_BLINK_First                : constant := 19;
+   A_BLINK_Last                 : constant := 19;
+   A_DIM_First                  : constant := 20;
+   A_DIM_Last                   : constant := 20;
+   A_BOLD_First                 : constant := 21;
+   A_BOLD_Last                  : constant := 21;
+   A_PROTECT_First              : constant := 24;
+   A_PROTECT_Last               : constant := 24;
+   A_INVIS_First                : constant := 23;
+   A_INVIS_Last                 : constant := 23;
+   A_ALTCHARSET_First           : constant := 22;
+   A_ALTCHARSET_Last            : constant := 22;
+   A_HORIZONTAL_First           : constant := 25;
+   A_HORIZONTAL_Last            : constant := 25;
+   A_LEFT_First                 : constant := 26;
+   A_LEFT_Last                  : constant := 26;
+   A_LOW_First                  : constant := 27;
+   A_LOW_Last                   : constant := 27;
+   A_RIGHT_First                : constant := 28;
+   A_RIGHT_Last                 : constant := 28;
+   A_TOP_First                  : constant := 29;
+   A_TOP_Last                   : constant := 29;
+   A_VERTICAL_First             : constant := 30;
+   A_VERTICAL_Last              : constant := 30;
+   chtype_Size                  : constant := 32;
 
-   --  predefined color numbers from color(3NCURSES)
+   --  predefined color numbers from color(3NCURSES)
 
-   COLOR_BLACK                  : constant := 0;
-   COLOR_RED                    : constant := 1;
-   COLOR_GREEN                  : constant := 2;
-   COLOR_YELLOW                 : constant := 3;
-   COLOR_BLUE                   : constant := 4;
-   COLOR_MAGENTA                : constant := 5;
-   COLOR_CYAN                   : constant := 6;
-   COLOR_WHITE                  : constant := 7;
+   COLOR_BLACK                  : constant := 0;
+   COLOR_RED                    : constant := 1;
+   COLOR_GREEN                  : constant := 2;
+   COLOR_YELLOW                 : constant := 3;
+   COLOR_BLUE                   : constant := 4;
+   COLOR_MAGENTA                : constant := 5;
+   COLOR_CYAN                   : constant := 6;
+   COLOR_WHITE                  : constant := 7;
 
-   --  ETI return codes from ncurses.h
+   --  ETI return codes from ncurses.h
 
-   E_OK                         : constant := 0;
-   E_SYSTEM_ERROR               : constant := -1;
-   E_BAD_ARGUMENT               : constant := -2;
-   E_POSTED                     : constant := -3;
-   E_CONNECTED                  : constant := -4;
-   E_BAD_STATE                  : constant := -5;
-   E_NO_ROOM                    : constant := -6;
-   E_NOT_POSTED                 : constant := -7;
-   E_UNKNOWN_COMMAND            : constant := -8;
-   E_NO_MATCH                   : constant := -9;
-   E_NOT_SELECTABLE             : constant := -10;
-   E_NOT_CONNECTED              : constant := -11;
-   E_REQUEST_DENIED             : constant := -12;
-   E_INVALID_FIELD              : constant := -13;
-   E_CURRENT                    : constant := -14;
+   E_OK                         : constant := 0;
+   E_SYSTEM_ERROR               : constant := -1;
+   E_BAD_ARGUMENT               : constant := -2;
+   E_POSTED                     : constant := -3;
+   E_CONNECTED                  : constant := -4;
+   E_BAD_STATE                  : constant := -5;
+   E_NO_ROOM                    : constant := -6;
+   E_NOT_POSTED                 : constant := -7;
+   E_UNKNOWN_COMMAND            : constant := -8;
+   E_NO_MATCH                   : constant := -9;
+   E_NOT_SELECTABLE             : constant := -10;
+   E_NOT_CONNECTED              : constant := -11;
+   E_REQUEST_DENIED             : constant := -12;
+   E_INVALID_FIELD              : constant := -13;
+   E_CURRENT                    : constant := -14;
 
-   --  Input key codes not defined in any ncurses manpage
+   --  Input key codes not defined in any ncurses manpage
 
-   KEY_MIN                      : constant := 257;
-   KEY_MAX                      : constant := 511;
-   KEY_CODE_YES                 : constant := 256;
+   KEY_MIN                      : constant := 257;
+   KEY_MAX                      : constant := 511;
+   KEY_CODE_YES                 : constant := 256;
 
-   --  Input key codes from getch(3NCURSES)
+   --  Input key codes from getch(3NCURSES)
 
-   KEY_BREAK                    : constant := 257;
-   KEY_DOWN                     : constant := 258;
-   KEY_UP                       : constant := 259;
-   KEY_LEFT                     : constant := 260;
-   KEY_RIGHT                    : constant := 261;
-   KEY_HOME                     : constant := 262;
-   KEY_BACKSPACE                : constant := 263;
-   KEY_F0                       : constant := 264;
-   KEY_F1                       : constant := 265;
-   KEY_F2                       : constant := 266;
-   KEY_F3                       : constant := 267;
-   KEY_F4                       : constant := 268;
-   KEY_F5                       : constant := 269;
-   KEY_F6                       : constant := 270;
-   KEY_F7                       : constant := 271;
-   KEY_F8                       : constant := 272;
-   KEY_F9                       : constant := 273;
-   KEY_F10                      : constant := 274;
-   KEY_F11                      : constant := 275;
-   KEY_F12                      : constant := 276;
-   KEY_F13                      : constant := 277;
-   KEY_F14                      : constant := 278;
-   KEY_F15                      : constant := 279;
-   KEY_F16                      : constant := 280;
-   KEY_F17                      : constant := 281;
-   KEY_F18                      : constant := 282;
-   KEY_F19                      : constant := 283;
-   KEY_F20                      : constant := 284;
-   KEY_F21                      : constant := 285;
-   KEY_F22                      : constant := 286;
-   KEY_F23                      : constant := 287;
-   KEY_F24                      : constant := 288;
-   KEY_DL                       : constant := 328;
-   KEY_IL                       : constant := 329;
-   KEY_DC                       : constant := 330;
-   KEY_IC                       : constant := 331;
-   KEY_EIC                      : constant := 332;
-   KEY_CLEAR                    : constant := 333;
-   KEY_EOS                      : constant := 334;
-   KEY_EOL                      : constant := 335;
-   KEY_SF                       : constant := 336;
-   KEY_SR                       : constant := 337;
-   KEY_NPAGE                    : constant := 338;
-   KEY_PPAGE                    : constant := 339;
-   KEY_STAB                     : constant := 340;
-   KEY_CTAB                     : constant := 341;
-   KEY_CATAB                    : constant := 342;
-   KEY_ENTER                    : constant := 343;
-   KEY_SRESET                   : constant := 344;
-   KEY_RESET                    : constant := 345;
-   KEY_PRINT                    : constant := 346;
-   KEY_LL                       : constant := 347;
-   KEY_A1                       : constant := 348;
-   KEY_A3                       : constant := 349;
-   KEY_B2                       : constant := 350;
-   KEY_C1                       : constant := 351;
-   KEY_C3                       : constant := 352;
-   KEY_BTAB                     : constant := 353;
-   KEY_BEG                      : constant := 354;
-   KEY_CANCEL                   : constant := 355;
-   KEY_CLOSE                    : constant := 356;
-   KEY_COMMAND                  : constant := 357;
-   KEY_COPY                     : constant := 358;
-   KEY_CREATE                   : constant := 359;
-   KEY_END                      : constant := 360;
-   KEY_EXIT                     : constant := 361;
-   KEY_FIND                     : constant := 362;
-   KEY_HELP                     : constant := 363;
-   KEY_MARK                     : constant := 364;
-   KEY_MESSAGE                  : constant := 365;
-   KEY_MOVE                     : constant := 366;
-   KEY_NEXT                     : constant := 367;
-   KEY_OPEN                     : constant := 368;
-   KEY_OPTIONS                  : constant := 369;
-   KEY_PREVIOUS                 : constant := 370;
-   KEY_REDO                     : constant := 371;
-   KEY_REFERENCE                : constant := 372;
-   KEY_REFRESH                  : constant := 373;
-   KEY_REPLACE                  : constant := 374;
-   KEY_RESTART                  : constant := 375;
-   KEY_RESUME                   : constant := 376;
-   KEY_SAVE                     : constant := 377;
-   KEY_SBEG                     : constant := 378;
-   KEY_SCANCEL                  : constant := 379;
-   KEY_SCOMMAND                 : constant := 380;
-   KEY_SCOPY                    : constant := 381;
-   KEY_SCREATE                  : constant := 382;
-   KEY_SDC                      : constant := 383;
-   KEY_SDL                      : constant := 384;
-   KEY_SELECT                   : constant := 385;
-   KEY_SEND                     : constant := 386;
-   KEY_SEOL                     : constant := 387;
-   KEY_SEXIT                    : constant := 388;
-   KEY_SFIND                    : constant := 389;
-   KEY_SHELP                    : constant := 390;
-   KEY_SHOME                    : constant := 391;
-   KEY_SIC                      : constant := 392;
-   KEY_SLEFT                    : constant := 393;
-   KEY_SMESSAGE                 : constant := 394;
-   KEY_SMOVE                    : constant := 395;
-   KEY_SNEXT                    : constant := 396;
-   KEY_SOPTIONS                 : constant := 397;
-   KEY_SPREVIOUS                : constant := 398;
-   KEY_SPRINT                   : constant := 399;
-   KEY_SREDO                    : constant := 400;
-   KEY_SREPLACE                 : constant := 401;
-   KEY_SRIGHT                   : constant := 402;
-   KEY_SRSUME                   : constant := 403;
-   KEY_SSAVE                    : constant := 404;
-   KEY_SSUSPEND                 : constant := 405;
-   KEY_SUNDO                    : constant := 406;
-   KEY_SUSPEND                  : constant := 407;
-   KEY_UNDO                     : constant := 408;
-   KEY_MOUSE                    : constant := 409;
-   KEY_RESIZE                   : constant := 410;
+   KEY_BREAK                    : constant := 257;
+   KEY_DOWN                     : constant := 258;
+   KEY_UP                       : constant := 259;
+   KEY_LEFT                     : constant := 260;
+   KEY_RIGHT                    : constant := 261;
+   KEY_HOME                     : constant := 262;
+   KEY_BACKSPACE                : constant := 263;
+   KEY_F0                       : constant := 264;
+   KEY_F1                       : constant := 265;
+   KEY_F2                       : constant := 266;
+   KEY_F3                       : constant := 267;
+   KEY_F4                       : constant := 268;
+   KEY_F5                       : constant := 269;
+   KEY_F6                       : constant := 270;
+   KEY_F7                       : constant := 271;
+   KEY_F8                       : constant := 272;
+   KEY_F9                       : constant := 273;
+   KEY_F10                      : constant := 274;
+   KEY_F11                      : constant := 275;
+   KEY_F12                      : constant := 276;
+   KEY_F13                      : constant := 277;
+   KEY_F14                      : constant := 278;
+   KEY_F15                      : constant := 279;
+   KEY_F16                      : constant := 280;
+   KEY_F17                      : constant := 281;
+   KEY_F18                      : constant := 282;
+   KEY_F19                      : constant := 283;
+   KEY_F20                      : constant := 284;
+   KEY_F21                      : constant := 285;
+   KEY_F22                      : constant := 286;
+   KEY_F23                      : constant := 287;
+   KEY_F24                      : constant := 288;
+   KEY_DL                       : constant := 328;
+   KEY_IL                       : constant := 329;
+   KEY_DC                       : constant := 330;
+   KEY_IC                       : constant := 331;
+   KEY_EIC                      : constant := 332;
+   KEY_CLEAR                    : constant := 333;
+   KEY_EOS                      : constant := 334;
+   KEY_EOL                      : constant := 335;
+   KEY_SF                       : constant := 336;
+   KEY_SR                       : constant := 337;
+   KEY_NPAGE                    : constant := 338;
+   KEY_PPAGE                    : constant := 339;
+   KEY_STAB                     : constant := 340;
+   KEY_CTAB                     : constant := 341;
+   KEY_CATAB                    : constant := 342;
+   KEY_ENTER                    : constant := 343;
+   KEY_SRESET                   : constant := 344;
+   KEY_RESET                    : constant := 345;
+   KEY_PRINT                    : constant := 346;
+   KEY_LL                       : constant := 347;
+   KEY_A1                       : constant := 348;
+   KEY_A3                       : constant := 349;
+   KEY_B2                       : constant := 350;
+   KEY_C1                       : constant := 351;
+   KEY_C3                       : constant := 352;
+   KEY_BTAB                     : constant := 353;
+   KEY_BEG                      : constant := 354;
+   KEY_CANCEL                   : constant := 355;
+   KEY_CLOSE                    : constant := 356;
+   KEY_COMMAND                  : constant := 357;
+   KEY_COPY                     : constant := 358;
+   KEY_CREATE                   : constant := 359;
+   KEY_END                      : constant := 360;
+   KEY_EXIT                     : constant := 361;
+   KEY_FIND                     : constant := 362;
+   KEY_HELP                     : constant := 363;
+   KEY_MARK                     : constant := 364;
+   KEY_MESSAGE                  : constant := 365;
+   KEY_MOVE                     : constant := 366;
+   KEY_NEXT                     : constant := 367;
+   KEY_OPEN                     : constant := 368;
+   KEY_OPTIONS                  : constant := 369;
+   KEY_PREVIOUS                 : constant := 370;
+   KEY_REDO                     : constant := 371;
+   KEY_REFERENCE                : constant := 372;
+   KEY_REFRESH                  : constant := 373;
+   KEY_REPLACE                  : constant := 374;
+   KEY_RESTART                  : constant := 375;
+   KEY_RESUME                   : constant := 376;
+   KEY_SAVE                     : constant := 377;
+   KEY_SBEG                     : constant := 378;
+   KEY_SCANCEL                  : constant := 379;
+   KEY_SCOMMAND                 : constant := 380;
+   KEY_SCOPY                    : constant := 381;
+   KEY_SCREATE                  : constant := 382;
+   KEY_SDC                      : constant := 383;
+   KEY_SDL                      : constant := 384;
+   KEY_SELECT                   : constant := 385;
+   KEY_SEND                     : constant := 386;
+   KEY_SEOL                     : constant := 387;
+   KEY_SEXIT                    : constant := 388;
+   KEY_SFIND                    : constant := 389;
+   KEY_SHELP                    : constant := 390;
+   KEY_SHOME                    : constant := 391;
+   KEY_SIC                      : constant := 392;
+   KEY_SLEFT                    : constant := 393;
+   KEY_SMESSAGE                 : constant := 394;
+   KEY_SMOVE                    : constant := 395;
+   KEY_SNEXT                    : constant := 396;
+   KEY_SOPTIONS                 : constant := 397;
+   KEY_SPREVIOUS                : constant := 398;
+   KEY_SPRINT                   : constant := 399;
+   KEY_SREDO                    : constant := 400;
+   KEY_SREPLACE                 : constant := 401;
+   KEY_SRIGHT                   : constant := 402;
+   KEY_SRSUME                   : constant := 403;
+   KEY_SSAVE                    : constant := 404;
+   KEY_SSUSPEND                 : constant := 405;
+   KEY_SUNDO                    : constant := 406;
+   KEY_SUSPEND                  : constant := 407;
+   KEY_UNDO                     : constant := 408;
+   KEY_MOUSE                    : constant := 409;
+   KEY_RESIZE                   : constant := 410;
 
-   --  alternate character codes (ACS) from addch(3NCURSES)
+   --  alternate character codes (ACS) from addch(3NCURSES)
 
-   ACS_ULCORNER                 : constant := 108;
-   ACS_LLCORNER                 : constant := 109;
-   ACS_URCORNER                 : constant := 107;
-   ACS_LRCORNER                 : constant := 106;
-   ACS_LTEE                     : constant := 116;
-   ACS_RTEE                     : constant := 117;
-   ACS_BTEE                     : constant := 118;
-   ACS_TTEE                     : constant := 119;
-   ACS_HLINE                    : constant := 113;
-   ACS_VLINE                    : constant := 120;
-   ACS_PLUS                     : constant := 110;
-   ACS_S1                       : constant := 111;
-   ACS_S9                       : constant := 115;
-   ACS_DIAMOND                  : constant := 96;
-   ACS_CKBOARD                  : constant := 97;
-   ACS_DEGREE                   : constant := 102;
-   ACS_PLMINUS                  : constant := 103;
-   ACS_BULLET                   : constant := 126;
-   ACS_LARROW                   : constant := 44;
-   ACS_RARROW                   : constant := 43;
-   ACS_DARROW                   : constant := 46;
-   ACS_UARROW                   : constant := 45;
-   ACS_BOARD                    : constant := 104;
-   ACS_LANTERN                  : constant := 105;
-   ACS_BLOCK                    : constant := 48;
-   ACS_S3                       : constant := 112;
-   ACS_S7                       : constant := 114;
-   ACS_LEQUAL                   : constant := 121;
-   ACS_GEQUAL                   : constant := 122;
-   ACS_PI                       : constant := 123;
-   ACS_NEQUAL                   : constant := 124;
-   ACS_STERLING                 : constant := 125;
+   ACS_ULCORNER                 : constant := 108;
+   ACS_LLCORNER                 : constant := 109;
+   ACS_URCORNER                 : constant := 107;
+   ACS_LRCORNER                 : constant := 106;
+   ACS_LTEE                     : constant := 116;
+   ACS_RTEE                     : constant := 117;
+   ACS_BTEE                     : constant := 118;
+   ACS_TTEE                     : constant := 119;
+   ACS_HLINE                    : constant := 113;
+   ACS_VLINE                    : constant := 120;
+   ACS_PLUS                     : constant := 110;
+   ACS_S1                       : constant := 111;
+   ACS_S9                       : constant := 115;
+   ACS_DIAMOND                  : constant := 96;
+   ACS_CKBOARD                  : constant := 97;
+   ACS_DEGREE                   : constant := 102;
+   ACS_PLMINUS                  : constant := 103;
+   ACS_BULLET                   : constant := 126;
+   ACS_LARROW                   : constant := 44;
+   ACS_RARROW                   : constant := 43;
+   ACS_DARROW                   : constant := 46;
+   ACS_UARROW                   : constant := 45;
+   ACS_BOARD                    : constant := 104;
+   ACS_LANTERN                  : constant := 105;
+   ACS_BLOCK                    : constant := 48;
+   ACS_S3                       : constant := 112;
+   ACS_S7                       : constant := 114;
+   ACS_LEQUAL                   : constant := 121;
+   ACS_GEQUAL                   : constant := 122;
+   ACS_PI                       : constant := 123;
+   ACS_NEQUAL                   : constant := 124;
+   ACS_STERLING                 : constant := 125;
 
-   --  Menu_Options from opts(3MENU)
+   --  Menu_Options from opts(3MENU)
 
-   O_ONEVALUE_First             : constant := 0;
-   O_ONEVALUE_Last              : constant := 0;
-   O_SHOWDESC_First             : constant := 1;
-   O_SHOWDESC_Last              : constant := 1;
-   O_ROWMAJOR_First             : constant := 2;
-   O_ROWMAJOR_Last              : constant := 2;
-   O_IGNORECASE_First           : constant := 3;
-   O_IGNORECASE_Last            : constant := 3;
-   O_SHOWMATCH_First            : constant := 4;
-   O_SHOWMATCH_Last             : constant := 4;
-   O_NONCYCLIC_First            : constant := 5;
-   O_NONCYCLIC_Last             : constant := 5;
-   Menu_Options_Size            : constant := 32;
+   O_ONEVALUE_First             : constant := 0;
+   O_ONEVALUE_Last              : constant := 0;
+   O_SHOWDESC_First             : constant := 1;
+   O_SHOWDESC_Last              : constant := 1;
+   O_ROWMAJOR_First             : constant := 2;
+   O_ROWMAJOR_Last              : constant := 2;
+   O_IGNORECASE_First           : constant := 3;
+   O_IGNORECASE_Last            : constant := 3;
+   O_SHOWMATCH_First            : constant := 4;
+   O_SHOWMATCH_Last             : constant := 4;
+   O_NONCYCLIC_First            : constant := 5;
+   O_NONCYCLIC_Last             : constant := 5;
+   Menu_Options_Size            : constant := 32;
 
-   --  Item_Options from menu_opts(3MENU)
+   --  Item_Options from menu_opts(3MENU)
 
-   O_SELECTABLE_First           : constant := 0;
-   O_SELECTABLE_Last            : constant := 0;
-   Item_Options_Size            : constant := 32;
+   O_SELECTABLE_First           : constant := 0;
+   O_SELECTABLE_Last            : constant := 0;
+   Item_Options_Size            : constant := 32;
 
-   --  Field_Options from field_opts(3FORM)
+   --  Field_Options from field_opts(3FORM)
 
-   O_VISIBLE_First              : constant := 0;
-   O_VISIBLE_Last               : constant := 0;
-   O_ACTIVE_First               : constant := 1;
-   O_ACTIVE_Last                : constant := 1;
-   O_PUBLIC_First               : constant := 2;
-   O_PUBLIC_Last                : constant := 2;
-   O_EDIT_First                 : constant := 3;
-   O_EDIT_Last                  : constant := 3;
-   O_WRAP_First                 : constant := 4;
-   O_WRAP_Last                  : constant := 4;
-   O_BLANK_First                : constant := 5;
-   O_BLANK_Last                 : constant := 5;
-   O_AUTOSKIP_First             : constant := 6;
-   O_AUTOSKIP_Last              : constant := 6;
-   O_NULLOK_First               : constant := 7;
-   O_NULLOK_Last                : constant := 7;
-   O_PASSOK_First               : constant := 8;
-   O_PASSOK_Last                : constant := 8;
-   O_STATIC_First               : constant := 9;
-   O_STATIC_Last                : constant := 9;
-   Field_Options_Size           : constant := 32;
+   O_VISIBLE_First              : constant := 0;
+   O_VISIBLE_Last               : constant := 0;
+   O_ACTIVE_First               : constant := 1;
+   O_ACTIVE_Last                : constant := 1;
+   O_PUBLIC_First               : constant := 2;
+   O_PUBLIC_Last                : constant := 2;
+   O_EDIT_First                 : constant := 3;
+   O_EDIT_Last                  : constant := 3;
+   O_WRAP_First                 : constant := 4;
+   O_WRAP_Last                  : constant := 4;
+   O_BLANK_First                : constant := 5;
+   O_BLANK_Last                 : constant := 5;
+   O_AUTOSKIP_First             : constant := 6;
+   O_AUTOSKIP_Last              : constant := 6;
+   O_NULLOK_First               : constant := 7;
+   O_NULLOK_Last                : constant := 7;
+   O_PASSOK_First               : constant := 8;
+   O_PASSOK_Last                : constant := 8;
+   O_STATIC_First               : constant := 9;
+   O_STATIC_Last                : constant := 9;
+   Field_Options_Size           : constant := 32;
 
-   --  Field_Options from opts(3FORM)
+   --  Field_Options from opts(3FORM)
 
-   O_NL_OVERLOAD_First          : constant := 0;
-   O_NL_OVERLOAD_Last           : constant := 0;
-   O_BS_OVERLOAD_First          : constant := 1;
-   O_BS_OVERLOAD_Last           : constant := 1;
+   O_NL_OVERLOAD_First          : constant := 0;
+   O_NL_OVERLOAD_Last           : constant := 0;
+   O_BS_OVERLOAD_First          : constant := 1;
+   O_BS_OVERLOAD_Last           : constant := 1;
 
-   --  MEVENT structure from mouse(3NCURSES)
+   --  MEVENT structure from mouse(3NCURSES)
 
-   MEVENT_id_First              : constant := 0;
-   MEVENT_id_Last               : constant := 15;
-   MEVENT_x_First               : constant := 32;
-   MEVENT_x_Last                : constant := 63;
-   MEVENT_y_First               : constant := 64;
-   MEVENT_y_Last                : constant := 95;
-   MEVENT_z_First               : constant := 96;
-   MEVENT_z_Last                : constant := 127;
-   MEVENT_bstate_First          : constant := 128;
-   MEVENT_bstate_Last           : constant := 159;
-   MEVENT_Size                  : constant := 160;
+   MEVENT_id_First              : constant := 0;
+   MEVENT_id_Last               : constant := 15;
+   MEVENT_x_First               : constant := 32;
+   MEVENT_x_Last                : constant := 63;
+   MEVENT_y_First               : constant := 64;
+   MEVENT_y_Last                : constant := 95;
+   MEVENT_z_First               : constant := 96;
+   MEVENT_z_Last                : constant := 127;
+   MEVENT_bstate_First          : constant := 128;
+   MEVENT_bstate_Last           : constant := 159;
+   MEVENT_Size                  : constant := 160;
 
-   --  mouse events from mouse(3NCURSES)
+   --  mouse events from mouse(3NCURSES)
 
-   BUTTON1_RELEASED             : constant := 1;
-   BUTTON1_PRESSED              : constant := 2;
-   BUTTON1_CLICKED              : constant := 4;
-   BUTTON1_DOUBLE_CLICKED       : constant := 8;
-   BUTTON1_TRIPLE_CLICKED       : constant := 16;
-   all_events_button_1          : constant := 31;
-   BUTTON2_RELEASED             : constant := 32;
-   BUTTON2_PRESSED              : constant := 64;
-   BUTTON2_CLICKED              : constant := 128;
-   BUTTON2_DOUBLE_CLICKED       : constant := 256;
-   BUTTON2_TRIPLE_CLICKED       : constant := 512;
-   all_events_button_2          : constant := 992;
-   BUTTON3_RELEASED             : constant := 1024;
-   BUTTON3_PRESSED              : constant := 2048;
-   BUTTON3_CLICKED              : constant := 4096;
-   BUTTON3_DOUBLE_CLICKED       : constant := 8192;
-   BUTTON3_TRIPLE_CLICKED       : constant := 16384;
-   all_events_button_3          : constant := 31744;
-   BUTTON4_RELEASED             : constant := 32768;
-   BUTTON4_PRESSED              : constant := 65536;
-   BUTTON4_CLICKED              : constant := 131072;
-   BUTTON4_DOUBLE_CLICKED       : constant := 262144;
-   BUTTON4_TRIPLE_CLICKED       : constant := 524288;
-   all_events_button_4          : constant := 1015808;
-   BUTTON_CTRL                  : constant := 33554432;
-   BUTTON_SHIFT                 : constant := 67108864;
-   BUTTON_ALT                   : constant := 134217728;
-   REPORT_MOUSE_POSITION        : constant := 268435456;
-   ALL_MOUSE_EVENTS             : constant := 268435455;
+   BUTTON1_RELEASED             : constant := 1;
+   BUTTON1_PRESSED              : constant := 2;
+   BUTTON1_CLICKED              : constant := 4;
+   BUTTON1_DOUBLE_CLICKED       : constant := 8;
+   BUTTON1_TRIPLE_CLICKED       : constant := 16;
+   all_events_button_1          : constant := 31;
+   BUTTON2_RELEASED             : constant := 32;
+   BUTTON2_PRESSED              : constant := 64;
+   BUTTON2_CLICKED              : constant := 128;
+   BUTTON2_DOUBLE_CLICKED       : constant := 256;
+   BUTTON2_TRIPLE_CLICKED       : constant := 512;
+   all_events_button_2          : constant := 992;
+   BUTTON3_RELEASED             : constant := 1024;
+   BUTTON3_PRESSED              : constant := 2048;
+   BUTTON3_CLICKED              : constant := 4096;
+   BUTTON3_DOUBLE_CLICKED       : constant := 8192;
+   BUTTON3_TRIPLE_CLICKED       : constant := 16384;
+   all_events_button_3          : constant := 31744;
+   BUTTON4_RELEASED             : constant := 32768;
+   BUTTON4_PRESSED              : constant := 65536;
+   BUTTON4_CLICKED              : constant := 131072;
+   BUTTON4_DOUBLE_CLICKED       : constant := 262144;
+   BUTTON4_TRIPLE_CLICKED       : constant := 524288;
+   all_events_button_4          : constant := 1015808;
+   BUTTON_CTRL                  : constant := 33554432;
+   BUTTON_SHIFT                 : constant := 67108864;
+   BUTTON_ALT                   : constant := 134217728;
+   REPORT_MOUSE_POSITION        : constant := 268435456;
+   ALL_MOUSE_EVENTS             : constant := 268435455;
 
-   --  trace selection from trace(3NCURSES)
+   --  trace selection from trace(3NCURSES)
 
-   TRACE_TIMES_First            : constant := 0;
-   TRACE_TIMES_Last             : constant := 0;
-   TRACE_TPUTS_First            : constant := 1;
-   TRACE_TPUTS_Last             : constant := 1;
-   TRACE_UPDATE_First           : constant := 2;
-   TRACE_UPDATE_Last            : constant := 2;
-   TRACE_MOVE_First             : constant := 3;
-   TRACE_MOVE_Last              : constant := 3;
-   TRACE_CHARPUT_First          : constant := 4;
-   TRACE_CHARPUT_Last           : constant := 4;
-   TRACE_CALLS_First            : constant := 5;
-   TRACE_CALLS_Last             : constant := 5;
-   TRACE_VIRTPUT_First          : constant := 6;
-   TRACE_VIRTPUT_Last           : constant := 6;
-   TRACE_IEVENT_First           : constant := 7;
-   TRACE_IEVENT_Last            : constant := 7;
-   TRACE_BITS_First             : constant := 8;
-   TRACE_BITS_Last              : constant := 8;
-   TRACE_ICALLS_First           : constant := 9;
-   TRACE_ICALLS_Last            : constant := 9;
-   TRACE_CCALLS_First           : constant := 10;
-   TRACE_CCALLS_Last            : constant := 10;
-   TRACE_DATABASE_First         : constant := 11;
-   TRACE_DATABASE_Last          : constant := 11;
-   TRACE_ATTRS_First            : constant := 12;
-   TRACE_ATTRS_Last             : constant := 12;
-   Trace_Size                   : constant := 32;
-end Terminal_Interface.Curses_Constants;
-
+ TRACE_TIMES_First : constant := 0; + TRACE_TIMES_Last : constant := 0; + TRACE_TPUTS_First : constant := 1; + TRACE_TPUTS_Last : constant := 1; + TRACE_UPDATE_First : constant := 2; + TRACE_UPDATE_Last : constant := 2; + TRACE_MOVE_First : constant := 3; + TRACE_MOVE_Last : constant := 3; + TRACE_CHARPUT_First : constant := 4; + TRACE_CHARPUT_Last : constant := 4; + TRACE_CALLS_First : constant := 5; + TRACE_CALLS_Last : constant := 5; + TRACE_VIRTPUT_First : constant := 6; + TRACE_VIRTPUT_Last : constant := 6; + TRACE_IEVENT_First : constant := 7; + TRACE_IEVENT_Last : constant := 7; + TRACE_BITS_First : constant := 8; + TRACE_BITS_Last : constant := 8; + TRACE_ICALLS_First : constant := 9; + TRACE_ICALLS_Last : constant := 9; + TRACE_CCALLS_First : constant := 10; + TRACE_CCALLS_Last : constant := 10; + TRACE_DATABASE_First : constant := 11; + TRACE_DATABASE_Last : constant := 11; + TRACE_ATTRS_First : constant := 12; + TRACE_ATTRS_Last : constant := 12; + Trace_Size : constant := 32; +end Terminal_Interface.Curses_Constants; +
diff --git a/doc/html/ada/terminal_interface__ads.htm b/doc/html/ada/terminal_interface__ads.htm index 08b3879a..6876bd0b 100644 --- a/doc/html/ada/terminal_interface__ads.htm +++ b/doc/html/ada/terminal_interface__ads.htm @@ -1,7 +1,7 @@ - - -terminal_interface.ads + + +terminal_interface.ads - - -

File : terminal_interface.ads


-
-------------------------------------------------------------------------------
---                                                                          --
---                           GNAT ncurses Binding                           --
---                                                                          --
---                            Terminal_Interface                            --
---                                                                          --
---                                 S P E C                                  --
---                                                                          --
-------------------------------------------------------------------------------
--- Copyright 2020 Thomas E. Dickey                                          --
--- Copyright 1999-2003,2006 Free Software Foundation, Inc.                  --
---                                                                          --
--- Permission is hereby granted, free of charge, to any person obtaining a  --
--- copy of this software and associated documentation files (the            --
--- "Software"), to deal in the Software without restriction, including      --
--- without limitation the rights to use, copy, modify, merge, publish,      --
--- distribute, distribute with modifications, sublicense, and/or sell       --
--- copies of the Software, and to permit persons to whom the Software is    --
--- furnished to do so, subject to the following conditions:                 --
---                                                                          --
--- The above copyright notice and this permission notice shall be included  --
--- in all copies or substantial portions of the Software.                   --
---                                                                          --
--- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
--- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
--- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
--- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
--- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
--- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
---                                                                          --
--- Except as contained in this notice, the name(s) of the above copyright   --
--- holders shall not be used in advertising or otherwise to promote the     --
--- sale, use or other dealings in this Software without prior written       --
--- authorization.                                                           --
-------------------------------------------------------------------------------
---  Author:  Juergen Pfeifer, 1996
---  Version Control:
---  @Revision: 1.15 @
---  @Date: 2020/02/02 23:34:34 @
---  Binding Version 01.00
-------------------------------------------------------------------------------
-package Terminal_Interface is
-   pragma Pure (Terminal_Interface);
---
---  Everything is in the child units
---
-end Terminal_Interface;
-
+ + +

File : terminal_interface.ads


+
+------------------------------------------------------------------------------
+--                                                                          --
+--                           GNAT ncurses Binding                           --
+--                                                                          --
+--                            Terminal_Interface                            --
+--                                                                          --
+--                                 S P E C                                  --
+--                                                                          --
+------------------------------------------------------------------------------
+-- Copyright 2020 Thomas E. Dickey                                          --
+-- Copyright 1999-2003,2006 Free Software Foundation, Inc.                  --
+--                                                                          --
+-- Permission is hereby granted, free of charge, to any person obtaining a  --
+-- copy of this software and associated documentation files (the            --
+-- "Software"), to deal in the Software without restriction, including      --
+-- without limitation the rights to use, copy, modify, merge, publish,      --
+-- distribute, distribute with modifications, sublicense, and/or sell       --
+-- copies of the Software, and to permit persons to whom the Software is    --
+-- furnished to do so, subject to the following conditions:                 --
+--                                                                          --
+-- The above copyright notice and this permission notice shall be included  --
+-- in all copies or substantial portions of the Software.                   --
+--                                                                          --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               --
+--                                                                          --
+-- Except as contained in this notice, the name(s) of the above copyright   --
+-- holders shall not be used in advertising or otherwise to promote the     --
+-- sale, use or other dealings in this Software without prior written       --
+-- authorization.                                                           --
+------------------------------------------------------------------------------
+--  Author:  Juergen Pfeifer, 1996
+--  Version Control:
+--  @Revision: 1.15 @
+--  @Date: 2020/02/02 23:34:34 @
+--  Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface is
+   pragma Pure (Terminal_Interface);
+--
+--  Everything is in the child units
+--
+end Terminal_Interface;
+
diff --git a/doc/html/man/adacurses6-config.1.html b/doc/html/man/adacurses6-config.1.html index c15a80a7..8b5ee776 100644 --- a/doc/html/man/adacurses6-config.1.html +++ b/doc/html/man/adacurses6-config.1.html @@ -126,7 +126,7 @@

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/captoinfo.1m.html b/doc/html/man/captoinfo.1m.html
index b0db730e..e5985f3f 100644
--- a/doc/html/man/captoinfo.1m.html
+++ b/doc/html/man/captoinfo.1m.html
@@ -199,7 +199,7 @@
 

SEE ALSO

        infocmp(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 

AUTHOR

diff --git a/doc/html/man/clear.1.html b/doc/html/man/clear.1.html
index b9d0b440..b107bbf1 100644
--- a/doc/html/man/clear.1.html
+++ b/doc/html/man/clear.1.html
@@ -150,7 +150,7 @@
 

SEE ALSO

        tput(1), terminfo(5), xterm(1).
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/curs_mouse.3x.html b/doc/html/man/curs_mouse.3x.html
index 3376019b..7b62650d 100644
--- a/doc/html/man/curs_mouse.3x.html
+++ b/doc/html/man/curs_mouse.3x.html
@@ -1,7 +1,7 @@
 
 
 
@@ -86,12 +86,18 @@
 
 
 

mousemask

-       To make mouse events visible, use the mousemask  function.   This  will
-       set  the  mouse events to be reported.  By default, no mouse events are
-       reported.  The function will return a mask to  indicate  which  of  the
-       specified  mouse events can be reported; on complete failure it returns
-       0.  If oldmask is non-NULL, this function fills the indicated  location
-       with the previous value of the given window's mouse event mask.
+       To make mouse events visible, use the mousemask  function.   This  sets
+       the  mouse  events to be reported.  By default, no mouse events are re-
+       ported.
+
+       o   The function returns an updated copy of newmask to  indicate  which
+           of the specified mouse events can be reported.
+
+           If the screen has not been initialized, or if the terminal does not
+           support mouse-events, this function returns 0.
+
+       o   If oldmask is non-NULL, this function fills the indicated  location
+           with the previous value of the current screen's mouse event mask.
 
        As  a  side  effect,  setting  a  zero mousemask may turn off the mouse
        pointer; setting a nonzero mask may turn it on.  Whether  this  happens
@@ -106,13 +112,13 @@
        BUTTON1_PRESSED          mouse button 1 down
        BUTTON1_RELEASED         mouse button 1 up
        BUTTON1_CLICKED          mouse button 1 clicked
+
        BUTTON1_DOUBLE_CLICKED   mouse button 1 double clicked
        BUTTON1_TRIPLE_CLICKED   mouse button 1 triple clicked
        ---------------------------------------------------------------------
        BUTTON2_PRESSED          mouse button 2 down
        BUTTON2_RELEASED         mouse button 2 up
        BUTTON2_CLICKED          mouse button 2 clicked
-
        BUTTON2_DOUBLE_CLICKED   mouse button 2 double clicked
        BUTTON2_TRIPLE_CLICKED   mouse button 2 triple clicked
        ---------------------------------------------------------------------
@@ -231,6 +237,9 @@
           o   If  no mouse driver was initialized, or if the mask parameter is
               zero,
 
+          o   It returns an error if a mouse event was detected which did  not
+              match the current mousemask.
+
           o   It also returns an error if no more events remain in the queue.
 
           ungetmouse
@@ -238,8 +247,8 @@
 
        mousemask returns the mask of reportable events.
 
-       mouseinterval returns the previous interval value, unless the  terminal
-       was  not  initialized.   In  that case, it returns the maximum interval
+       mouseinterval  returns the previous interval value, unless the terminal
+       was not initialized.  In that case, it  returns  the  maximum  interval
        value (166).
 
        wenclose and wmouse_trafo are boolean functions returning TRUE or FALSE
@@ -247,13 +256,13 @@
 
 
 

PORTABILITY

-       These  calls  were  designed for ncurses(3x), and are not found in SVr4
+       These calls were designed for ncurses(3x), and are not  found  in  SVr4
        curses, 4.4BSD curses, or any other previous version of curses.
 
-       SVr4 curses had support for the mouse in a variant of xterm(1).  It  is
+       SVr4  curses had support for the mouse in a variant of xterm(1).  It is
        mentioned in a few places, but with no supporting documentation:
 
-       o   the  "libcurses" manual page lists functions for this feature which
+       o   the "libcurses" manual page lists functions for this feature  which
            are prototyped in curses.h:
 
                extern int mouse_set(long int);
@@ -272,40 +281,40 @@
                mouse_info        minfo   Mi       Mouse status information
                req_mouse_pos     reqmp   RQ       Request mouse position report
 
-       o   the interface made assumptions (as does ncurses) about  the  escape
+       o   the  interface  made assumptions (as does ncurses) about the escape
            sequences sent to and received from the terminal.
 
-           For  instance the SVr4 curses library used the get_mouse capability
-           to tell the terminal which mouse  button  events  it  should  send,
-           passing  the mouse-button bit-mask to the terminal.  Also, it could
-           ask the terminal where the mouse was using the req_mouse_pos  capa-
+           For instance the SVr4 curses library used the get_mouse  capability
+           to  tell  the  terminal  which  mouse button events it should send,
+           passing the mouse-button bit-mask to the terminal.  Also, it  could
+           ask  the terminal where the mouse was using the req_mouse_pos capa-
            bility.
 
-           Those  features required a terminal which had been modified to work
+           Those features required a terminal which had been modified to  work
            with curses.  They were not part of the X Consortium's xterm.
 
-       When developing the xterm mouse support for ncurses in September  1995,
-       Eric  Raymond  was  uninterested in using the same interface due to its
+       When  developing the xterm mouse support for ncurses in September 1995,
+       Eric Raymond was uninterested in using the same interface  due  to  its
        lack of documentation.  Later, in 1998, Mark Hesseling provided support
-       in  PDCurses 2.3 using the SVr4 interface.  PDCurses, however, does not
-       use video terminals, making it unnecessary to be concerned  about  com-
+       in PDCurses 2.3 using the SVr4 interface.  PDCurses, however, does  not
+       use  video  terminals, making it unnecessary to be concerned about com-
        patibility with the escape sequences.
 
        The feature macro NCURSES_MOUSE_VERSION is provided so the preprocessor
-       can be used to test whether these features are present.  If the  inter-
-       face  is changed, the value of NCURSES_MOUSE_VERSION will be increment-
-       ed.  These values for NCURSES_MOUSE_VERSION may be specified when  con-
+       can  be used to test whether these features are present.  If the inter-
+       face is changed, the value of NCURSES_MOUSE_VERSION will be  increment-
+       ed.   These values for NCURSES_MOUSE_VERSION may be specified when con-
        figuring ncurses:
 
           1  has definitions for reserved events.  The mask uses 28 bits.
 
-          2  adds  definitions  for  button 5, removes the definitions for re-
+          2  adds definitions for button 5, removes the  definitions  for  re-
              served events.  The mask uses 29 bits.
 
        The order of the MEVENT structure members is not guaranteed.  Addition-
        al fields may be added to the structure in the future.
 
-       Under  ncurses(3x),  these  calls  are implemented using either xterm's
+       Under ncurses(3x), these calls are  implemented  using  either  xterm's
        built-in mouse-tracking API or platform-specific drivers including
 
           o   Alessandro Rubini's gpm server
@@ -315,12 +324,12 @@
           o   OS/2 EMX
 
        If you are using an unsupported configuration, mouse events will not be
-       visible  to  ncurses(3x) (and the mousemask function will always return
+       visible to ncurses(3x) (and the mousemask function will  always  return
        0).
 
-       If the terminfo entry contains a XM string, this is used in  the  xterm
-       mouse  driver  to control the way the terminal is initialized for mouse
-       operation.  The default, if XM is not  found,  corresponds  to  private
+       If  the  terminfo entry contains a XM string, this is used in the xterm
+       mouse driver to control the way the terminal is initialized  for  mouse
+       operation.   The  default,  if  XM is not found, corresponds to private
        mode 1000 of xterm:
 
           \E[?1000%?%p1%{1}%=%th%el%;
@@ -329,39 +338,40 @@
 
           \E[?1006;1000%?%p1%{1}%=%th%el%;
 
-       The  z  member in the event structure is not presently used.  It is in-
-       tended for use with touch screens (which may be pressure-sensitive)  or
+       The z member in the event structure is not presently used.  It  is  in-
+       tended  for use with touch screens (which may be pressure-sensitive) or
        with 3D-mice/trackballs/power gloves.
 
-       The  ALL_MOUSE_EVENTS  class  does  not  include REPORT_MOUSE_POSITION.
-       They are distinct.  For example, in xterm,  wheel/scrolling  mice  send
-       position  reports  as  a  sequence of presses of buttons 4 or 5 without
+       The ALL_MOUSE_EVENTS  class  does  not  include  REPORT_MOUSE_POSITION.
+       They  are  distinct.   For example, in xterm, wheel/scrolling mice send
+       position reports as a sequence of presses of buttons  4  or  5  without
        matching button-releases.
 
 
 

BUGS

-       Mouse events under xterm will not in  fact  be  ignored  during  cooked
+       Mouse  events  under  xterm  will  not in fact be ignored during cooked
        mode, if they have been enabled by mousemask.  Instead, the xterm mouse
        report sequence will appear in the string read.
 
-       Mouse events under xterm will not be detected  correctly  in  a  window
-       with  its  keypad  bit  off, since they are interpreted as a variety of
-       function key.  Your terminfo  description  should  have  kmous  set  to
-       "\E[M"  (the  beginning  of  the response from xterm for mouse clicks).
-       Other values for kmous are permitted, but under  the  same  assumption,
+       Mouse  events  under  xterm  will not be detected correctly in a window
+       with its keypad bit off, since they are interpreted  as  a  variety  of
+       function  key.   Your  terminfo  description  should  have kmous set to
+       "\E[M" (the beginning of the response from  xterm  for  mouse  clicks).
+       Other  values  for  kmous are permitted, but under the same assumption,
        i.e., it is the beginning of the response.
 
-       Because  there  are  no standard terminal responses that would serve to
-       identify terminals which support the xterm mouse protocol, ncurses  as-
-       sumes  that  if kmous is defined in the terminal description, or if the
-       terminal description's primary  name  or  aliases  contain  the  string
+       Because there are no standard terminal responses that  would  serve  to
+       identify  terminals which support the xterm mouse protocol, ncurses as-
+       sumes that if kmous is defined in the terminal description, or  if  the
+       terminal  description's  primary  name  or  aliases  contain the string
        "xterm", then the terminal may send mouse events.  The kmous capability
-       is checked first, allowing the use of newer xterm mouse protocols  such
+       is  checked first, allowing the use of newer xterm mouse protocols such
        as xterm's private mode 1006.
 
 
 

SEE ALSO

-       curses(3x), curs_kernel(3x), curs_slk(3x), curs_variables(3x).
+       curses(3x), curs_inopts(3x), curs_kernel(3x), curs_slk(3x),  curs_vari-
+       ables(3x).
 
 
 
diff --git a/doc/html/man/form.3x.html b/doc/html/man/form.3x.html
index 95319cd1..4bfdf734 100644
--- a/doc/html/man/form.3x.html
+++ b/doc/html/man/form.3x.html
@@ -248,7 +248,7 @@
        curses(3x) and related pages whose names  begin  "form_"  for  detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/infocmp.1m.html b/doc/html/man/infocmp.1m.html
index 04a1d283..055fa3fc 100644
--- a/doc/html/man/infocmp.1m.html
+++ b/doc/html/man/infocmp.1m.html
@@ -514,7 +514,7 @@
 
        https://invisible-island.net/ncurses/tctest.html
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 

AUTHOR

diff --git a/doc/html/man/infotocap.1m.html b/doc/html/man/infotocap.1m.html
index 5baee2cb..78864721 100644
--- a/doc/html/man/infotocap.1m.html
+++ b/doc/html/man/infotocap.1m.html
@@ -91,7 +91,7 @@
 

SEE ALSO

        infocmp(1m), tic(1m), curses(3x), terminfo(5)
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 

AUTHOR

diff --git a/doc/html/man/menu.3x.html b/doc/html/man/menu.3x.html
index 969e7373..4ae5af9d 100644
--- a/doc/html/man/menu.3x.html
+++ b/doc/html/man/menu.3x.html
@@ -223,7 +223,7 @@
        curses(3x) and related pages whose names  begin  "menu_"  for  detailed
        descriptions of the entry points.
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/ncurses.3x.html b/doc/html/man/ncurses.3x.html
index 1ca2d0be..0ef550f5 100644
--- a/doc/html/man/ncurses.3x.html
+++ b/doc/html/man/ncurses.3x.html
@@ -60,7 +60,7 @@
        method of updating  character  screens  with  reasonable  optimization.
        This  implementation  is  "new  curses"  (ncurses)  and is the approved
        replacement for 4.4BSD classic curses,  which  has  been  discontinued.
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
        The  ncurses  library emulates the curses library of System V Release 4
        UNIX, and XPG4 (X/Open Portability Guide) curses  (also  known  as  XSI
diff --git a/doc/html/man/ncurses6-config.1.html b/doc/html/man/ncurses6-config.1.html
index 732f689c..243784b7 100644
--- a/doc/html/man/ncurses6-config.1.html
+++ b/doc/html/man/ncurses6-config.1.html
@@ -113,7 +113,7 @@
 

SEE ALSO

        curses(3x)
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html
index 093769bb..dca5f6e9 100644
--- a/doc/html/man/panel.3x.html
+++ b/doc/html/man/panel.3x.html
@@ -281,7 +281,7 @@
 

SEE ALSO

        curses(3x), curs_variables(3x),
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 

AUTHOR

diff --git a/doc/html/man/tabs.1.html b/doc/html/man/tabs.1.html
index cfcc7590..58a3bf4e 100644
--- a/doc/html/man/tabs.1.html
+++ b/doc/html/man/tabs.1.html
@@ -252,7 +252,7 @@
 

SEE ALSO

        infocmp(1m), tset(1), curses(3x), terminfo(5).
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/terminfo.5.html b/doc/html/man/terminfo.5.html
index 696163ab..6e636ca4 100644
--- a/doc/html/man/terminfo.5.html
+++ b/doc/html/man/terminfo.5.html
@@ -106,7 +106,7 @@
        have, by specifying how to perform screen operations, and by specifying
        padding requirements and initialization sequences.
 
-       This manual describes ncurses version 6.3 (patch 20220101).
+       This manual describes ncurses version 6.3 (patch 20220115).
 
 
 

Terminfo Entry Syntax

diff --git a/doc/html/man/tic.1m.html b/doc/html/man/tic.1m.html
index 009e514f..7ac201b3 100644
--- a/doc/html/man/tic.1m.html
+++ b/doc/html/man/tic.1m.html
@@ -461,7 +461,7 @@
        captoinfo(1m),   infocmp(1m),   infotocap(1m),   toe(1m),   curses(3x),
        term(5).  terminfo(5).  user_caps(5).
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 

AUTHOR

diff --git a/doc/html/man/toe.1m.html b/doc/html/man/toe.1m.html
index eaa8a54b..52e4f80a 100644
--- a/doc/html/man/toe.1m.html
+++ b/doc/html/man/toe.1m.html
@@ -171,7 +171,7 @@
        captoinfo(1m),   infocmp(1m),   infotocap(1m),   tic(1m),   curses(3x),
        terminfo(5).
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html
index 211bf5f9..56776874 100644
--- a/doc/html/man/tput.1.html
+++ b/doc/html/man/tput.1.html
@@ -545,7 +545,7 @@
 

SEE ALSO

        clear(1), stty(1), tabs(1), tset(1), curs_termcap(3x), terminfo(5).
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html
index 7435e283..6d74ef47 100644
--- a/doc/html/man/tset.1.html
+++ b/doc/html/man/tset.1.html
@@ -391,7 +391,7 @@
        csh(1),   sh(1),   stty(1),   curs_terminfo(3x),  tty(4),  terminfo(5),
        ttys(5), environ(7)
 
-       This describes ncurses version 6.3 (patch 20220101).
+       This describes ncurses version 6.3 (patch 20220115).
 
 
 
diff --git a/man/curs_mouse.3x b/man/curs_mouse.3x
index 19795ca7..9571648f 100644
--- a/man/curs_mouse.3x
+++ b/man/curs_mouse.3x
@@ -1,6 +1,6 @@
 '\" t
 .\"***************************************************************************
-.\" Copyright 2018-2020,2021 Thomas E. Dickey                                *
+.\" Copyright 2018-2021,2022 Thomas E. Dickey                                *
 .\" Copyright 1998-2015,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -28,7 +28,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: curs_mouse.3x,v 1.57 2021/12/25 21:49:32 tom Exp $
+.\" $Id: curs_mouse.3x,v 1.58 2022/01/16 01:40:48 tom Exp $
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
 .ie \n(.g .ds '' \(rq
@@ -100,14 +100,19 @@ pseudo-key values in the \fBwgetch\fP(3X) input stream.
 .SS mousemask
 .PP
 To make mouse events visible, use the \fBmousemask\fP function.
-This will set
-the mouse events to be reported.
+This sets the mouse events to be reported.
 By default, no mouse events are reported.
-The function will return a mask to indicate which of the specified mouse events
-can be reported; on complete failure it returns 0.
-If oldmask is non-NULL,
-this function fills the indicated location with the previous value of the given
-window's mouse event mask.
+.bP
+The function returns an updated copy of \fInewmask\fP
+to indicate which of the specified mouse events can be reported.
+.IP
+If the screen has not been initialized,
+or if the terminal does not support mouse-events,
+this function returns 0.
+.bP
+If \fIoldmask\fP is non-NULL,
+this function fills the indicated location with the previous value of the
+current screen's mouse event mask.
 .PP
 As a side effect, setting a zero mousemask may turn off the mouse pointer;
 setting a nonzero mask may turn it on.
@@ -255,6 +260,9 @@ returns an error.
 If no mouse driver was initialized, or
 if the mask parameter is zero,
 .bP
+It returns an error if a mouse event was detected which did not match the
+current \fImousemask\fP.
+.bP
 It also returns an error if no more events remain in the queue.
 .TP 5
 \fBungetmouse\fP
@@ -411,6 +419,7 @@ allowing the use of newer xterm mouse protocols
 such as xterm's private mode 1006.
 .SH SEE ALSO
 \fBcurses\fP(3X),
+\fBcurs_inopts\fP(3X),
 \fBcurs_kernel\fP(3X),
 \fBcurs_slk\fP(3X),
 \fBcurs_variables\fP(3X).
diff --git a/ncurses/base/lib_mouse.c b/ncurses/base/lib_mouse.c
index 2fb261df..b2330c02 100644
--- a/ncurses/base/lib_mouse.c
+++ b/ncurses/base/lib_mouse.c
@@ -1,5 +1,5 @@
 /****************************************************************************
- * Copyright 2018-2020,2021 Thomas E. Dickey                                *
+ * Copyright 2018-2021,2022 Thomas E. Dickey                                *
  * Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
@@ -85,7 +85,7 @@
 #define CUR SP_TERMTYPE
 #endif
 
-MODULE_ID("$Id: lib_mouse.c,v 1.193 2021/03/20 12:56:32 tom Exp $")
+MODULE_ID("$Id: lib_mouse.c,v 1.194 2022/01/16 01:15:47 tom Exp $")
 
 #include 
 
@@ -1569,7 +1569,7 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
 		if (changed) {
 		    merge = FALSE;
 		    for (b = 1; b <= MAX_BUTTONS; ++b) {
-			if ((sp->_mouse_mask & MASK_CLICK(b))
+			if ((sp->_mouse_mask2 & MASK_CLICK(b))
 			    && (ep->bstate & MASK_PRESS(b))) {
 			    next->bstate &= ~MASK_RELEASE(b);
 			    next->bstate |= MASK_CLICK(b);
@@ -1650,7 +1650,7 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
 		&& (next->bstate & BUTTON_CLICKED)) {
 		merge = FALSE;
 		for (b = 1; b <= MAX_BUTTONS; ++b) {
-		    if ((sp->_mouse_mask & MASK_DOUBLE_CLICK(b))
+		    if ((sp->_mouse_mask2 & MASK_DOUBLE_CLICK(b))
 			&& (ep->bstate & MASK_CLICK(b))
 			&& (next->bstate & MASK_CLICK(b))) {
 			next->bstate &= ~MASK_CLICK(b);
@@ -1668,7 +1668,7 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
 		&& (next->bstate & BUTTON_CLICKED)) {
 		merge = FALSE;
 		for (b = 1; b <= MAX_BUTTONS; ++b) {
-		    if ((sp->_mouse_mask & MASK_TRIPLE_CLICK(b))
+		    if ((sp->_mouse_mask2 & MASK_TRIPLE_CLICK(b))
 			&& (ep->bstate & MASK_DOUBLE_CLICK(b))
 			&& (next->bstate & MASK_CLICK(b))) {
 			next->bstate &= ~MASK_CLICK(b);
@@ -1728,7 +1728,8 @@ _nc_mouse_parse(SCREEN *sp, int runcount)
 #endif /* TRACE */
 
     /* after all this, do we have a valid event? */
-    return ValidEvent(PREV(first_invalid));
+    ep = PREV(first_invalid);
+    return ValidEvent(ep) && ((ep->bstate & sp->_mouse_mask) != 0);
 }
 
 static void
diff --git a/package/debian-mingw/changelog b/package/debian-mingw/changelog
index 49b6895b..fe0a86fc 100644
--- a/package/debian-mingw/changelog
+++ b/package/debian-mingw/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20220101) unstable; urgency=low
+ncurses6 (6.3+20220115) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 01 Jan 2022 06:46:49 -0500
+ -- Thomas E. Dickey   Sat, 15 Jan 2022 09:00:23 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian-mingw64/changelog b/package/debian-mingw64/changelog
index 49b6895b..fe0a86fc 100644
--- a/package/debian-mingw64/changelog
+++ b/package/debian-mingw64/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20220101) unstable; urgency=low
+ncurses6 (6.3+20220115) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 01 Jan 2022 06:46:49 -0500
+ -- Thomas E. Dickey   Sat, 15 Jan 2022 09:00:23 -0500
 
 ncurses6 (5.9-20131005) unstable; urgency=low
 
diff --git a/package/debian/changelog b/package/debian/changelog
index dc60ce44..544bcdb1 100644
--- a/package/debian/changelog
+++ b/package/debian/changelog
@@ -1,8 +1,8 @@
-ncurses6 (6.3+20220101) unstable; urgency=low
+ncurses6 (6.3+20220115) unstable; urgency=low
 
   * latest weekly patch
 
- -- Thomas E. Dickey   Sat, 01 Jan 2022 06:46:49 -0500
+ -- Thomas E. Dickey   Sat, 15 Jan 2022 09:00:23 -0500
 
 ncurses6 (5.9-20120608) unstable; urgency=low
 
diff --git a/package/mingw-ncurses.nsi b/package/mingw-ncurses.nsi
index 23f6e2fc..9f32f25e 100644
--- a/package/mingw-ncurses.nsi
+++ b/package/mingw-ncurses.nsi
@@ -1,4 +1,4 @@
-; $Id: mingw-ncurses.nsi,v 1.500 2022/01/01 11:46:49 tom Exp $
+; $Id: mingw-ncurses.nsi,v 1.502 2022/01/15 14:00:23 tom Exp $
 
 ; TODO add examples
 ; TODO bump ABI to 6
@@ -10,7 +10,7 @@
 !define VERSION_MAJOR "6"
 !define VERSION_MINOR "3"
 !define VERSION_YYYY  "2022"
-!define VERSION_MMDD  "0101"
+!define VERSION_MMDD  "0115"
 !define VERSION_PATCH ${VERSION_YYYY}${VERSION_MMDD}
 
 !define MY_ABI   "5"
diff --git a/package/mingw-ncurses.spec b/package/mingw-ncurses.spec
index 86eaa6ef..49a2883c 100644
--- a/package/mingw-ncurses.spec
+++ b/package/mingw-ncurses.spec
@@ -3,7 +3,7 @@
 Summary: shared libraries for terminal handling
 Name: mingw32-ncurses6
 Version: 6.3
-Release: 20220101
+Release: 20220115
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncurses.spec b/package/ncurses.spec
index 86538e33..6d2c9ae5 100644
--- a/package/ncurses.spec
+++ b/package/ncurses.spec
@@ -1,7 +1,7 @@
 Summary: shared libraries for terminal handling
 Name: ncurses6
 Version: 6.3
-Release: 20220101
+Release: 20220115
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
diff --git a/package/ncursest.spec b/package/ncursest.spec
index f6eb2608..6dd8b48f 100644
--- a/package/ncursest.spec
+++ b/package/ncursest.spec
@@ -1,7 +1,7 @@
 Summary: Curses library with POSIX thread support.
 Name: ncursest6
 Version: 6.3
-Release: 20220101
+Release: 20220115
 License: X11
 Group: Development/Libraries
 Source: ncurses-%{version}-%{release}.tgz
-- 
2.44.0